我想编写一个脚本来仅使用命令工具来分析我的 cuda 应用程序nvprof
。目前,我主要关注两个指标:GPU 利用率和 GPU flops32 (FP32)。
GPU 利用率是 GPU 处于活动状态的时间的一部分。GPU的活动时间可以很容易地获得nvprof --print-gpu-trace
,而应用程序的经过时间(没有开销)对我来说并不清楚。我使用视觉分析器nvvp
来可视化分析结果并计算 GPU 利用率。似乎经过的时间是第一次和最后一次 API 调用之间的间隔,包括开销时间。
GPU flops32 是 GPU 处于活动状态时每秒执行的 FP32 指令数。我遵循 Greg Smith 的建议(如何计算内核的 Gflopsnvprof
),发现生成flop_count_sp_*
指标非常慢。
所以我想问两个问题:
- 如何使用 nvprof 计算 CUDA 应用程序的运行时间(无开销)?
- 有没有更快的方法来获得 gpu flops32?
任何建议将不胜感激。
================更新=======================
对于上面的第一个问题,我的意思是没有开销的经过时间实际上是会话时间——开销时间显示在 nvvp 结果中: