经常会用到nvidia-smi
命令来查看gpu的使用情况,
具体的命令释义为:
参考教程1,
第一行为机器的当前时间,
第二行为驱动的版本号,
第三行是GPU名字,持续模式,Bus-Id,Disp.A,
第四行是具体的使用情况,
1)Fan:N/A是风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的转速。有的设备不会返回转速,因为它不依赖风扇冷却而是通过其他外设保持低温(比如我们实验室的服务器是常年放在空调房间里的)。
2)Temp:是温度,单位摄氏度。
3)Perf:是性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能。
4)Pwr:是能耗,上方的Persistence-M:是持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态。
5)Bus-Id是涉及GPU总线的东西,domain:bus:device.function
6)Disp.A是Display Active,表示GPU的显示是否初始化。
第五第六栏下方的Memory Usage是显存使用率。
第七栏是浮动的GPU利用率。
第八栏上方是关于ECC的东西。
第八栏下方Compute M是计算模式。
下面一张表示每个进程占用的显存使用率。
显存占用和GPU占用是两个不一样的东西,显卡是由GPU和显存等组成的,显存和GPU的关系有点类似于内存和CPU的关系。听说跑caffe代码的时候显存占得少,GPU占得多;跑TensorFlow代码的时候,显存占得多,GPU占得少。
执行nvidia-smi -h > log.txt
将帮助信息导出到log.txt
中,
NVIDIA System Management Interface -- v375.39
NVSMI provides monitoring information for Tesla and select Quadro devices.
The data is presented in either a plain text or an XML format, via stdout or a file.
NVSMI also provides several management operations for changing the device state.
Note that the functionality of NVSMI is exposed through the NVML C-based
library. See the NVIDIA developer website for more information about NVML.
Python wrappers to NVML are also available. The output of NVSMI is
not guaranteed to be backwards compatible; NVML and the bindings are backwards
compatible.
http://developer.nvidia.com/nvidia-management-library-nvml/
http://pypi.python.org/pypi/nvidia-ml-py/
Supported products:
- Full Support
- All Tesla products, starting with the Fermi architecture
- All Quadro products, starting with the Fermi architecture
- All GRID products, starting with the Kepler architecture
- GeForce Titan products, starting