使用nvidia-smi查看显卡使用状态

问题介绍

为了更好的查看显卡的使用状态,这里使用NVIDIA提供的小工具来进行监控。

解决方案

  1. # 连续观察 0.1s刷新一次
  2. watch -n -9 nvidia-smi
  3. # 表示运行test.py文件时, 使用编号为0的GPU卡
  4. export CUDA_VISIBLE_DEVICES=0 python test.py
  5. # 表示运行test.py文件时, 使用编号为0和2的GPU卡
  6. export CUDA_VISIBLE_DEVICES=0,2 python test.py

使用nvidia-smi查看显卡使用状态 - 图1

上面的表格中:

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

显存占用和GPU占用是两个不一样的东西, 显卡是由GPU和显存等组成的, 显存和GPU的关系有点类似于内存和CPU的关系.

参考链接