nvidia-smi 是用来查看 GPU 使用情况的。我常用这个命令判断哪几块 GPU 空闲,但是最近的 GPU 使用状态让我很困惑,于是把 nvidia-smi 命令显示的 GPU 使用表中各个内容的具体含义解释一下。

    nvidia-smi 命令解读 - 图1

    这是服务器上特斯拉 K80 的信息。
    上面的表格中:
    第一栏的 Fan:N/A 是风扇转速,从 0 到 100% 之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的转速。有的设备不会返回转速,因为它不依赖风扇冷却而是通过其他外设保持低温(比如我们实验室的服务器是常年放在空调房间里的)。
    第二栏的 Temp:是温度,单位摄氏度。
    第三栏的 Perf:是性能状态,从 P0 到 P12,P0 表示最大性能,P12 表示状态最小性能。
    第四栏下方的 Pwr:是能耗,上方的 Persistence-M:是持续模式的状态,持续模式虽然耗能大,但是在新的 GPU 应用启动时,花费的时间更少,这里显示的是 off 的状态。
    第五栏的 Bus-Id 是涉及 GPU 总线的东西,domainnvidia-smi 命令解读 - 图2device.function
    第六栏的 Disp.A 是 Display Active,表示 GPU 的显示是否初始化。
    第五第六栏下方的 Memory Usage 是显存使用率。
    第七栏是浮动的 GPU 利用率。
    第八栏上方是关于 ECC 的东西。
    第八栏下方 Compute M 是计算模式。
    下面一张表示每个进程占用的显存使用率。

    显存占用和 GPU 占用是两个不一样的东西,显卡是由 GPU 和显存等组成的,显存和 GPU 的关系有点类似于内存和 CPU 的关系。我跑 caffe 代码的时候显存占得少,GPU 占得多,师弟跑 TensorFlow 代码的时候,显存占得多,GPU 占得少。
    https://blog.csdn.net/sallyxyl1993/article/details/62220424