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 和内存利用率?的主要内容,如果未能解决你的问题,请参考以下文章

nvidia-smi GPU性能测量没有意义

nvidia-smi 命令解读

nvidia-smi GPU 性能测量没有意义

GPU显卡驱动问题

GPU显卡驱动问题

如何查询某个PID的NVIDIA GPU参数?