nat*_*rro 96 cuda resource-monitor
我正在尝试监控使用cuda和MPI的进程,有什么方法可以做到这一点,比如命令"top"但是监视GPU呢?
Gui*_*ier 106
nvidia-smi -l 1
这将循环并每秒调用视图.
如果您不想在控制台历史记录中保留循环调用的痕迹,您还可以执行以下操作:
watch -n0.1 nvidia-smi
其中0.1是时间间隔,以秒为单位.
Edr*_*ric 80
我不知道任何结合了这些信息的东西,但你可以使用这个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 %
Run Code Online (Sandbox Code Playgroud)
Xue*_*Pan 67
最近,我编写了一个名为nvitopNVIDIA -GPU交互式进程查看器的监控工具。

它是用纯Python编写的,并且易于安装。
从 PyPI 安装:
pip3 install --upgrade nvitop
Run Code Online (Sandbox Code Playgroud)
从 GitHub 安装最新版本(推荐):
pip3 install git+https://github.com/XuehaiPan/nvitop.git#egg=nvitop
Run Code Online (Sandbox Code Playgroud)
作为资源监视器运行:
nvitop -m
Run Code Online (Sandbox Code Playgroud)
nvitop将显示 GPU 状态,nvidia-smi但带有额外的精美条形图和历史图表。
对于进程,它将用于psutil收集进程信息并显示USER、%CPU、%MEM、TIME和COMMAND字段,比 更详细nvidia-smi。此外,它在监控模式下响应用户输入。您可以中断或终止GPU 上的进程。
nvitop带有树视图屏幕和环境屏幕:


此外,还nvitop可以集成到其他应用程序中。例如,集成到 PyTorch 训练代码中:
nvitop -m
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅https://github.com/XuehaiPan/nvitop 。
注:获得GPLv3 许可证和Apache-2.0 许可证nvitop双重许可。请随意使用它作为您自己项目的依赖项。有关更多详细信息,请参阅版权声明。
All*_*leo 54
我发现gpustat非常有用.In可以安装pip install gpustat,并打印进程或用户对使用情况的细分.
las*_*gar 19
从这里下载并安装最新的稳定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 |
+-----------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
编辑:在最新的NVIDIA驱动程序中,此支持仅限于特斯拉卡.
Dee*_*pak 16
使用参数"--query-compute-apps ="
nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv
Run Code Online (Sandbox Code Playgroud)
如需进一步帮助,请关注
nvidia-smi --help-query-compute-app
Run Code Online (Sandbox Code Playgroud)
gri*_*tis 15
另一种有用的监视方法是使用ps过滤掉消耗GPU的进程.我经常使用这个:
ps f -o user,pgrp,pid,pcpu,pmem,start,time,command -p `lsof -n -w -t /dev/nvidia*`
Run Code Online (Sandbox Code Playgroud)
这将显示所有nvidia GPU利用流程和一些关于它们的统计数据.lsof ...使用当前用户拥有的nvidia GPU检索所有进程的列表,并ps -p ...显示ps这些进程的结果.ps f显示子/父进程关系/层次结构的良好格式,并-o指定自定义格式.那个类似于刚刚做的ps u但是添加了进程组ID并删除了一些其他字段.
这一点的一个优点nvidia-smi是它将显示进程分支以及使用GPU的主要进程.
但是,一个缺点是它仅限于执行命令的用户拥有的进程.要打开它的任何用户拥有的所有进程,我添加了一个sudo前lsof.
最后,我将它结合起来watch以获得持续更新.所以,最后看起来像:
watch -n 0.1 'ps f -o user,pgrp,pid,pcpu,pmem,start,time,command -p `sudo lsof -n -w -t /dev/nvidia*`'
Run Code Online (Sandbox Code Playgroud)
其输出如下:
Every 0.1s: ps f -o user,pgrp,pid,pcpu,pmem,start,time,command -p `sudo lsof -n -w -t /dev/nvi... Mon Jun 6 14:03:20 2016
USER PGRP PID %CPU %MEM STARTED TIME COMMAND
grisait+ 27294 50934 0.0 0.1 Jun 02 00:01:40 /opt/google/chrome/chrome --type=gpu-process --channel=50877.0.2015482623
grisait+ 27294 50941 0.0 0.0 Jun 02 00:00:00 \_ /opt/google/chrome/chrome --type=gpu-broker
grisait+ 53596 53596 36.6 1.1 13:47:06 00:05:57 python -u process_examples.py
grisait+ 53596 33428 6.9 0.5 14:02:09 00:00:04 \_ python -u process_examples.py
grisait+ 53596 33773 7.5 0.5 14:02:19 00:00:04 \_ python -u process_examples.py
grisait+ 53596 34174 5.0 0.5 14:02:30 00:00:02 \_ python -u process_examples.py
grisait+ 28205 28205 905 1.5 13:30:39 04:56:09 python -u train.py
grisait+ 28205 28387 5.8 0.4 13:30:49 00:01:53 \_ python -u train.py
grisait+ 28205 28388 5.3 0.4 13:30:49 00:01:45 \_ python -u train.py
grisait+ 28205 28389 4.5 0.4 13:30:49 00:01:29 \_ python -u train.py
grisait+ 28205 28390 4.5 0.4 13:30:49 00:01:28 \_ python -u train.py
grisait+ 28205 28391 4.8 0.4 13:30:49 00:01:34 \_ python -u train.py
Run Code Online (Sandbox Code Playgroud)
这可能不优雅,但你可以试试
while true; do sleep 2; nvidia-smi; done
Run Code Online (Sandbox Code Playgroud)
我也尝试过@Edric 的方法,它有效,但我更喜欢nvidia-smi.
| 归档时间: |
|
| 查看次数: |
112040 次 |
| 最近记录: |