Linux/Ubuntu 监视,实时查看GPU使用情况

注意

本文方案仅适用于NVIDIA显卡,对于Intel显卡和AMD显卡本文暂不做讨论。毕竟NVIDIA的显卡才是训练神经网络的大众之选。

方案1

使用nvidia-smi命令,输出为:
Linux/Ubuntu 监视,实时查看GPU使用情况_第1张图片
如果想要不间断持续刷新GPU的状态,使用:

nvidia-smi -l seconds
nvidia-smi --loop=seconds

上述命令任选其一,注意把seconds换成你想刷新的时间间隔(秒)。命令运行的效果就是持续输出上图中的内容(注意不是在原有输出上进行刷新,而是持续输出新的信息)。按Ctrl+C停止刷新。

方案2

有人写了个小工具gpustatnvidia-smi封装了起来,用起来很爽很方便,推荐给大家。
首先安装:

pip install gpustat

然后使用:

gpustat -cp

输出为:
在这里插入图片描述
注意-c选项为显示进程名,-p选项为显示进程PID。如果想要不间断持续输出,请使用:

gpustat -cp -i 1

输出为:
在这里插入图片描述
注意这个命令会打开一个新界面,然后在这个界面里持续刷新数据(这是跟nvidia-smi不同的地方)。-i选项表示interval的意思,即刷新间隔,上面的命令里设置为1秒。同样按Ctrl+C停止刷新。

如果因为root权限之类的问题安装不成功,或者想了解其他选项,请查看gpustatgithub官方页面。

References

  1. https://askubuntu.com/questions/387594/how-to-measure-gpu-usage
  2. https://github.com/wookayin/gpustat

补一下其他命令

查看CPU信息

cat /proc/cpuinfo

或者

less /proc/cpuinfo 

cat命令会显示整个文件,如果文件内容过大,翻页比较费劲;less更方便一点儿,一点点加载,移动光标的快捷键同vim命令。

查看内存信息

free -h

-h--human,以人类可读的格式输出信息。输出内容举例:
在这里插入图片描述
各项内容的含义:

  • total Your total, physical (assuming no virtualization) memory
  • used How much of that is currently used (by anything)
  • free How much of that is completely free (not used at all)
  • shared Memory used (mostly) by tmpfs (for Linux, kernel >= 2.6.32)
  • buffers Memory used by kernel buffers
  • cached Memory used for cache

bufferscached是内核预留空间,不会被分配给任何用户进程;系统会根据内存的使用情况来动态增加或者减少(甚至减少至0)这两项。如果你的应用需要使用更多的内存,那么系统便会缩小这两项的预留空间,这里就是free的概念,即这些空间可以被释放掉(free)来满足用户的内存需求。

参考:https://unix.stackexchange.com/questions/33541/free-output-format

你可能感兴趣的:(gpu,nvidia,ubuntu,linux,使用情况)