当前位置: 首页 > news >正文

如何快速测试GPU的推理速度

importtorchimporttime# 1. 设置设备iftorch.cuda.is_available(): device=torch.device("cuda")print(f"检测到设备: {torch.cuda.get_device_name(0)}")else: device=torch.device("cpu")print("使用 CPU")# 2. 增加矩阵尺寸,让 GPU 有事可做 (比如 4000x4000 或 8000x8000)# 1000x1000 对高端卡来说太小了size=4000print(f"正在初始化矩阵 (Size: {size}x{size})...")A=torch.randn(size, size,device=device)B=torch.randn(size, size,device=device)# --- 关键步骤:GPU 预热 (Warm-up) ---print("正在进行 GPU 预热 (第一次运行通常很慢)...")# 跑几次空运算,触发库加载和初始化for_inrange(5): _=torch.mm(A, B)torch.cuda.synchronize()print("预热完成,开始正式计时!")# ------------------------------------# 3. 正式计时 GPUtorch.cuda.synchronize()start_time=time.time()# 循环多次取平均值更准确loop_times=10for_inrange(loop_times): C=torch.mm(A, B)torch.cuda.synchronize()# 等待所有计算完成end_time=time.time()avg_gpu_time=(end_time - start_time)/ loop_times print(f"GPU 平均运行时间: {avg_gpu_time:.5f} 秒")# 4. 对比 CPU (如果尺寸太大,CPU可能会非常慢,建议 CPU 测试时如果太慢就减少 loop)iftorch.cuda.is_available(): print("正在准备 CPU 数据 (这可能需要一点时间)...")A_cpu=A.cpu()B_cpu=B.cpu()start_time_cpu=time.time()# CPU 一般不需要像 GPU 那样严格预热,但跑一次也没坏处# 注意:如果 size 是 4000,CPU 跑这 10 次可能会很慢cpu_loops=2# 减少 CPU 循环次数以免等太久for_inrange(cpu_loops): C_cpu=torch.mm(A_cpu, B_cpu)end_time_cpu=time.time()avg_cpu_time=(end_time_cpu - start_time_cpu)/ cpu_loops print(f"CPU 平均运行时间: {avg_cpu_time:.5f} 秒")# 修正加速比公式:CPU时间 / GPU时间speedup=avg_cpu_time / avg_gpu_time print(f"---")print(f"真实性能对比: GPU 比 CPU 快 {speedup:.2f} 倍")
http://www.cnnetsun.cn/news/25346.html

相关文章:

  • 75、深入理解与运用SELinux:保障Linux系统安全
  • JetBrains Maple Mono终极指南:免费开源编程字体的完美选择
  • 兴顺物流管理系统(11451)
  • 2025年智能家居完整指南:掌握Home Assistant核心功能
  • Notion + Miro二合一?我用3分钟零成本搭了个私有知识库,太爽了!
  • Codeforces Round 1070 (Div. 2) A~D F
  • 【上海交通大学主办 | 连续6年IEEE出版 | 连续5届快速检索-往届会后3个月EI, Scopus检索 | 设优秀评选】第六届IEEE信息科学与教育国际学术会议(ICISE-IE 2025)
  • 区块链核心知识点梳理(8)-钱包与账户体系
  • 如何快速开展中小学AI教育:完整的AI通识课程指南
  • LeetCode 6. Z 字形变换 | 详细题解(附 C++ 代码)
  • 22、Linux 系统基础管理入门指南
  • 2026年大模型应用开发学习路线:四阶段转型指南,抓住未来3年的职业发展机遇!转AI大模型开发学习顺序真的很重要!
  • 26、Linux文件系统管理全攻略
  • 27、Linux 系统文件管理与共享全攻略
  • 33、网络安全测试与Shell脚本编程入门
  • Reverse Engineer‘s Toolkit:一体化逆向工程解决方案
  • STC宏晶 STC8H8K64U-45I-LQFP64/烧录 LQFP64 单片机
  • 微信支付PHP SDK终极指南:快速集成APIv3和APIv2的完整解决方案
  • 将MacBook刘海变身为高效文件传输中心
  • 苹果App Store应用程序上架方式全面指南
  • Hikari-LLVM15终极指南:5分钟掌握代码混淆核心技术
  • 教你使用服务器搭建 Next.js 电商独立站方案 Your Next Store 完整教程
  • 1、掌握 AWS Lambda:构建无服务器应用的全面指南
  • 二.AI知识科普
  • 面向水工、市政与环保工程的渗流控制:有限元方法、程序修改与参数化分析
  • 9、AWS Lambda:事件驱动模型与外部服务集成实践
  • radix_tree_node(约 7.3 GB)
  • 互联网大厂Java求职面试深度指导——场景、问答及代码案例解析
  • OpCore Simplify:终极Hackintosh配置解决方案
  • PolarDB - PostgreSQL