Cuda 测量nvidia gpu的利用率

Cuda 测量nvidia gpu的利用率,cuda,gpu,nvidia,utilization,Cuda,Gpu,Nvidia,Utilization,我正在寻找方法来记录GPU级别的利用率。我对利用率有两个定义,乐观地说,我希望能够同时计算这两个定义: GPU在同一时间实例上运行/使用的cuda内核数 峰值效率每秒的触发器数 我知道有一些工具,但它们都不提供任何信息。例如: 无论有多少内核和执行速度如何,Nvidia smi的利用率显示内核的时间百分比,对于nvtop和gpustat等工具也是如此 诸如Tensor Flow Profiler和nvprof之类的探查器显示了在触发器方面的效率,但是在内核/程序级别,并且不管并行运行多个处理

我正在寻找方法来记录GPU级别的利用率。我对利用率有两个定义,乐观地说,我希望能够同时计算这两个定义:

  • GPU在同一时间实例上运行/使用的cuda内核数
  • 峰值效率每秒的触发器数
  • 我知道有一些工具,但它们都不提供任何信息。例如:

    • 无论有多少内核和执行速度如何,Nvidia smi的利用率显示内核的时间百分比,对于nvtop和gpustat等工具也是如此

    • 诸如
      Tensor Flow Profiler
      nvprof
      之类的探查器显示了在触发器方面的效率,但是在内核/程序级别,并且不管并行运行多个处理器的效果如何


    我对工具和基于代码的解决方案都持开放态度。

    我可能错了,但我相信nvprof可以向您展示这些细节。您必须针对时间线和指标运行它

    nvprof --export-profile timeline.prof <your_bin>
    nvprof --metrics all --export-profile metrics.prof <your_bin> 
    
    nvprof——导出配置文件时间线.prof
    nvprof--所有指标--导出配置文件指标.prof
    

    然后,您可以将文件(在本例中为timeline.prof和metrics.prof)导入nvdia可视探查器,该探查器可以使用
    nvvp

    打开,nvprof仅显示最高效率。但这不是监视GPU本身的状态,而是分析编写的代码。无论有多少应用程序/线程正在运行,我都需要在GPU级别监控这些变量。