我正在寻找记录 GPU 级别利用率的方法。我有两个利用率的定义,乐观地我希望能够计算这两个:
我知道有一些工具,但它们都不提供任何信息。例如:
Nvidia-smi
的利用率显示了内核时间的百分比,无论有多少个内核以及执行的速度,对于nvtop和gpustat等工具也是如此。
诸如
Tensor-Flow Profiler
和 nvprof
之类的分析器显示了 FLOP 方面的效率,但在内核/程序级别上,并且不考虑并行运行多个并行运行的影响。
我对工具和基于代码的解决方案持开放态度。
我可能是错的,但我相信 nvprof 可以向您展示这些细节。您必须针对时间线和指标运行它
nvprof --export-profile timeline.prof <your_bin>
nvprof --metrics all --export-profile metrics.prof <your_bin>
然后,您可以将文件(在本例中为时间线.prof 和指标.prof)导入到 nvdia 可视化分析器中,该分析器可以使用
nvvp
打开。
GPU Metrics 使用 NVIDIA Nsight Systems 进行跟踪可以记录 Turing+ GPU 上系统中所有进程随时间的 SM 利用率(以及其他几个利用率指标)。