登入服务器后,输入命令(注意中间无空格):

nvidia-smi

或者可以使用命令(可以自动实时刷新GPU的使用情况):

nvidia-smi -l

如果要周期性地输出显卡的使用情况,可以用watch指令实现(命令行参数-n,后边跟的是执行命令的周期,以s为单位。所以下面的命令表示,每10s刷新一下显示):

watch -n 10 nvidia-smi

上图显示的显卡信息,第一行是版本信息,第二行是标题栏,第三行是具体的显卡信息。如果有多个显卡,就会有多行对应标题栏的信息。例如我上面显示了共0~4号,共5个卡。

  • GPU:显卡编号,从0开始。
  • Fan:风扇转速,在0~100%之间变动。这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能就不会显示具体转速值。有的设备不会返回转速,因为它不依赖风扇冷却,而是通过其他外设保持低温,比如我们实验室的服务器是常年放在空掉房间里面的。
  • Name:显卡名,以上都是Tesla。
  • Temp:显卡内部的温度,以上分别是54、49、46、50、39摄氏度。
  • Perf:性能状态,从P0到P12,P0性能最大,P12最小 。
  • Persistence-M:持续模式的状态开关,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少。以上都是Off的状态。
  • Pwr:能耗表示。
  • Bus-Id:涉及GPU总线的相关信息。
  • Disp.A:是Display Active的意思,表示GPU的显示是否初始化。
  • Memory-Usage:显存的使用率
  • GPU-Util:GPU的利用率
  • Compute M.:计算模式。
  • 下面的Process显示每块GPU上每个进程所使用的显存情况。

显卡占用和GPU占用是两个不一样的东西,显卡是由GPU和显卡等组成的,显卡和GPU的关系有点类似于内存和CPU的关系,两个指标的占用率不一定是互相对应的。例如跑tensorflow代码的时候,可能显存占得多,GPU占得少。

 

我使用该命令,主要是看 Memory-Usage 信息,避免使用了其他伙伴已经占用的显卡,然后在代码中就可以指定空闲的GPU。例如上图服务器显示前4个卡都在用,我就在我的tensorflow代码中 指定使用第5个卡好了。

import os
os.environ["CUDA_VISIBLE_DEVICES"] = '4'  # 指定使用第5块GPU

 

补充

查看内存使用情况:

free -m

查看CPU使用情况:

top

 

参考:https://blog.csdn.net/Cloudox_/article/details/78651637

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐