我试图监控一个使用CUDA和MPI的进程,有没有办法我可以做到这一点,像命令“顶部”,但也监控GPU ?
当前回答
在Linux Mint和Ubuntu中,你可以尝试"nvidia-smi——loop=1"
其他回答
只需使用watch nvidia-smi,它将默认以2s间隔输出消息。
例如,如下图:
你也可以使用watch -n 5 nvidia-smi (-n 5 by 5s interval)。
我发现gpustat非常有用。它可以与pip install gpustat一起安装,并按进程或用户打印使用情况。
我不知道有什么东西可以结合这些信息,但你可以使用nvidia-smi工具来获取原始数据,就像这样(感谢@jmsu关于-l的提示):
$ nvidia-smi -q -g 0 -d UTILIZATION -l
==============NVSMI LOG==============
Timestamp : Tue Nov 22 11:50:05 2011
Driver Version : 275.19
Attached GPUs : 2
GPU 0:1:0
Utilization
Gpu : 0 %
Memory : 0 %
您可以使用监控程序glances及其GPU监控插件:
开源 安装方法:sudo apt-get install -y python-pip;Sudo PIP安装[gpu] 启动:sudo扫视
它还监视CPU、磁盘IO、磁盘空间、网络和其他一些东西:
如果你只是想找到运行在gpu上的进程,你可以简单地使用下面的命令:
lsof /dev/nvidia*
对我来说,nvidia-smi和watch -n 1 nvidia-smi在大多数情况下已经足够了。有时nvidia-smi显示没有进程,但gpu内存用完了,所以我需要使用上面的命令来查找进程。