我试图监控一个使用CUDA和MPI的进程,有没有办法我可以做到这一点,像命令“顶部”,但也监控GPU ?
当前回答
只需使用watch nvidia-smi,它将默认以2s间隔输出消息。
例如,如下图:
你也可以使用watch -n 5 nvidia-smi (-n 5 by 5s interval)。
其他回答
只需使用watch nvidia-smi,它将默认以2s间隔输出消息。
例如,如下图:
你也可以使用watch -n 5 nvidia-smi (-n 5 by 5s interval)。
我在一台windows机器上用下面的代码创建了一个批处理文件来监视每一秒。这对我很管用。
:loop
cls
"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi"
timeout /T 1
goto loop
如果你只想运行一次命令,NVIDIA -smi exe通常位于“C:\Program Files\NVIDIA Corporation”。
从这里下载并安装最新的稳定CUDA驱动程序(4.2)。在linux上,nVidia-smi 295.41给你你想要的。使用nvidia-smi:
[root@localhost release]# nvidia-smi
Wed Sep 26 23:16:16 2012
+------------------------------------------------------+
| NVIDIA-SMI 3.295.41 Driver Version: 295.41 |
|-------------------------------+----------------------+----------------------+
| Nb. Name | Bus Id Disp. | Volatile ECC SB / DB |
| Fan Temp Power Usage /Cap | Memory Usage | GPU Util. Compute M. |
|===============================+======================+======================|
| 0. Tesla C2050 | 0000:05:00.0 On | 0 0 |
| 30% 62 C P0 N/A / N/A | 3% 70MB / 2687MB | 44% Default |
|-------------------------------+----------------------+----------------------|
| Compute processes: GPU Memory |
| GPU PID Process name Usage |
|=============================================================================|
| 0. 7336 ./align 61MB |
+-----------------------------------------------------------------------------+
编辑:在最新的NVIDIA驱动程序中,此支持仅限于特斯拉卡。
在Linux Mint和Ubuntu中,你可以尝试"nvidia-smi——loop=1"
这可能不够优雅,但你可以尝试一下
while true; do sleep 2; nvidia-smi; done
我也尝试了@Edric的方法,它很有效,但我更喜欢nvidia-smi的原始布局。