注意
本文方案仅适用于NVIDIA显卡,对于Intel显卡和AMD显卡本文暂不做讨论。毕竟NVIDIA的显卡才是训练神经网络的大众之选。
方案1
使用nvidia-smi
命令,输出为:
如果想要不间断持续刷新GPU的状态,使用:
nvidia-smi -l seconds
nvidia-smi --loop=seconds
上述命令任选其一,注意把seconds
换成你想刷新的时间间隔(秒)。命令运行的效果就是持续输出上图中的内容(注意不是在原有输出上进行刷新,而是持续输出新的信息)。按Ctrl+C
停止刷新。
方案2
有人写了个小工具gpustat
把nvidia-smi
封装了起来,用起来很爽很方便,推荐给大家。
首先安装:
pip install gpustat
然后使用:
gpustat -cp
输出为:
注意-c
选项为显示进程名,-p
选项为显示进程PID。如果想要不间断持续输出,请使用:
gpustat -cp -i 1
输出为:
注意这个命令会打开一个新界面,然后在这个界面里持续刷新数据(这是跟nvidia-smi
不同的地方)。-i
选项表示interval
的意思,即刷新间隔,上面的命令里设置为1秒。同样按Ctrl+C
停止刷新。
如果因为root权限之类的问题安装不成功,或者想了解其他选项,请查看gpustat
的github
官方页面。
References
补一下其他命令
查看CPU信息
cat /proc/cpuinfo
或者
less /proc/cpuinfo
cat
命令会显示整个文件,如果文件内容过大,翻页比较费劲;less
更方便一点儿,一点点加载,移动光标的快捷键同vim
命令。
查看内存信息
free -h
-h
即--human
,以人类可读的格式输出信息。输出内容举例:
各项内容的含义:
total
Your total, physical (assuming no virtualization) memoryused
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 bufferscached
Memory used for cache
buffers
和cached
是内核预留空间,不会被分配给任何用户进程;系统会根据内存的使用情况来动态增加或者减少(甚至减少至0)这两项。如果你的应用需要使用更多的内存,那么系统便会缩小这两项的预留空间,这里就是free
的概念,即这些空间可以被释放掉(free)来满足用户的内存需求。
参考:https://unix.stackexchange.com/questions/33541/free-output-format