我试图监控一个使用CUDA和MPI的进程,有没有办法我可以做到这一点,像命令“顶部”,但也监控GPU ?


当前回答

这可能不够优雅,但你可以尝试一下

while true; do sleep 2; nvidia-smi; done

我也尝试了@Edric的方法,它很有效,但我更喜欢nvidia-smi的原始布局。

其他回答

我不知道有什么东西可以结合这些信息,但你可以使用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 %

只需使用watch nvidia-smi,它将默认以2s间隔输出消息。

例如,如下图:

你也可以使用watch -n 5 nvidia-smi (-n 5 by 5s interval)。

你可以使用nvidia-smi pmon -i 0来监控GPU 0中的每个进程。 包括计算模式、sm使用情况、内存使用情况、编码器使用情况、解码器使用情况。

使用参数"——query-compute-apps="

nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv

如需进一步帮助,请关注

nvidia-smi --help-query-compute-app

您可以尝试nvtop,它类似于广泛使用的htop工具,但用于NVIDIA gpu。下面是nvtop的截图。