nvidia-smi 结果中如何定义 GPU 和内存利用率?
Posted
技术标签:
【中文标题】nvidia-smi 结果中如何定义 GPU 和内存利用率?【英文标题】:How is GPU and memory utilization defined in nvidia-smi results? 【发布时间】:2011-07-02 11:45:59 【问题描述】:我目前正在使用 nvidia 的驱动程序“nvidia-smi”附带的工具在 GPU 上进行性能监控。当我们使用'nvidia-smi -a'时,它会给出当前GPU信息的信息,包括GPU核心和内存使用情况,温度等等:
==============NVSMI LOG==============
时间戳:星期二
2011 年 2 月 22 日 22:39:09
驱动程序版本: 260.19.26
GPU 0:
Product Name : GeForce 8800 GTX PCI Device/Vendor ID : 19110de PCI Location ID : 0:4:0 Board Serial : 211561763875 Display : Connected Temperature : 55 C Fan Speed : 47% Utilization GPU : 1% Memory : 0%
我很好奇 GPU 和内存利用率是如何定义的?例如,GPU 核心的利用率为 47%。这意味着有 47% 的 SM 积极工作?或者所有的 GPU 核心在 47% 的时间内都处于忙碌状态,而在其他 53% 的时间里处于空闲状态?对于内存来说,利用率是指当前带宽与最大带宽的比值,还是上一个时间单位的繁忙时间比?
【问题讨论】:
【参考方案1】:post by a moderator on the NVIDIA forums 表示 GPU 利用率和内存利用率数据基于上一秒的活动:
GPU 忙碌实际上是上一秒 SM 忙碌的时间百分比,而内存利用率实际上是最后一秒内使用的带宽百分比。下一个版本会提供完整的内存消耗统计信息。
【讨论】:
更具体地说:GPU繁忙是上一秒任何个SM繁忙的时间百分比,而内存利用率实际上是内存控制器的时间在最后一秒内很忙。您只需在单个 SM 上运行内核并通过 PCI-E 来回传输 1 个字节,就可以将利用率计数保持在 100% 附近。利用率不是“您使用资源的情况”统计数据,而是“是否使用资源”。 @PrzemyslawZych 那么我怎样才能获得真正的 GPU 使用情况,例如活动 SM 的数量与 SM 的总数相比? @diccza 然后我们不是在谈论监控,而是在分析,为此我建议从例如开始。 NVIDIA 视觉分析器。【参考方案2】:你可以参考这个API官方文档:http://docs.nvidia.com/deploy/nvml-api/structnvmlUtilization__t.html#structnvmlUtilization__t
它说:“在过去的采样周期中,一个或多个内核在 GPU 上执行的时间百分比。”
【讨论】:
以上是关于nvidia-smi 结果中如何定义 GPU 和内存利用率?的主要内容,如果未能解决你的问题,请参考以下文章