pbm*_*pbm 328 monitoring gpu
我在我的电脑上安装了 CUDA 工具包,并在 GPU 上启动了 BOINC 项目。在 BOINC 中,我可以看到它在 GPU 上运行,但是有没有一种工具可以向我显示有关在 GPU 上运行的内容的更多详细信息 - GPU 使用情况和内存使用情况?
pbm*_*pbm 380
对于 Nvidia GPU,有一个工具nvidia-smi可以显示 GPU 的内存使用情况、GPU 利用率和温度。还有一个计算进程列表和更多选项,但不完全支持我的图形卡 (GeForce 9600 GT)。
Sun May 13 20:02:49 2012
+------------------------------------------------------+
| NVIDIA-SMI 3.295.40 Driver Version: 295.40 |
|-------------------------------+----------------------+----------------------+
| Nb. Name | Bus Id Disp. | Volatile ECC SB / DB |
| Fan Temp Power Usage /Cap | Memory Usage | GPU Util. Compute M. |
|===============================+======================+======================|
| 0. GeForce 9600 GT | 0000:01:00.0 N/A | N/A N/A |
| 0% 51 C N/A N/A / N/A | 90% 459MB / 511MB | N/A Default |
|-------------------------------+----------------------+----------------------|
| Compute processes: GPU Memory |
| GPU PID Process name Usage |
|=============================================================================|
| 0. Not Supported |
+-----------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
qed*_*qed 115
对于 linux,usenvidia-smi -l 1将不断为您提供 gpu 使用信息,刷新间隔为 1 秒。
Jon*_*hoi 108
最近我编写了一个简单的命令行实用程序,称为gpustat(它是 的包装器nvidia-smi):请查看https://github.com/wookayin/gpustat。

jip*_*pie 67
对于英特尔 GPU,存在intel-gpu-tools来自http://intellinuxgraphics.org/ 的项目,它带来了命令intel_gpu_top(除其他外)。它类似于top和htop,但专门用于 Intel GPU。
render busy: 18%: ???? render space: 39/131072
bitstream busy: 0%: bitstream space: 0/131072
blitter busy: 28%: ?????? blitter space: 28/131072
task percent busy
GAM: 33%: ??????? vert fetch: 0 (0/sec)
GAFS: 3%: ? prim fetch: 0 (0/sec)
VS: 0%: VS invocations: 559188 (150/sec)
SF: 0%: GS invocations: 0 (0/sec)
VF: 0%: GS prims: 0 (0/sec)
DS: 0%: CL invocations: 186396 (50/sec)
CL: 0%: CL prims: 186396 (50/sec)
SOL: 0%: PS invocations: 8191776208 (38576436/sec)
GS: 0%: PS depth pass: 8158502721 (38487525/sec)
HS: 0%:
TE: 0%:
GAFM: 0%:
SVG: 0%:
Run Code Online (Sandbox Code Playgroud)
小智 41
nvidia-smi在某些 linux 机器上不起作用(对于许多属性返回 N/A)。你可以nvidia-settings改用(这也是 mat kelcey 在他的 python 脚本中使用的)。
nvidia-settings -q GPUUtilization -q useddedicatedgpumemory
Run Code Online (Sandbox Code Playgroud)
您还可以使用:
watch -n0.1 "nvidia-settings -q GPUUtilization -q useddedicatedgpumemory"
Run Code Online (Sandbox Code Playgroud)
用于持续监测。
小智 21
我有一个 GeForce 1060 GTX 视频卡,我发现以下命令提供了有关卡利用率、温度、风扇速度和功耗的信息:
$ nvidia-smi --format=csv --query-gpu=power.draw,utilization.gpu,fan.speed,temperature.gpu
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式查看所有查询选项的列表:
$ nvidia-smi --help-query-gpu
Run Code Online (Sandbox Code Playgroud)
Kev*_*vin 17
为完整起见,AMD 有两个选项:
fglrx(闭源驱动程序)。
$ aticonfig --odgc --odgt
Run Code Online (Sandbox Code Playgroud)mesa(开源驱动程序),你可以使用RadeonTop。
查看您的 GPU 利用率,包括总活动百分比和单个块。
最近,我写了一个名为监控工具nvitop,在互动NVIDIA 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。
注意:nvitop是在GPLv3 许可下发布的。请随意将其用作您自己项目的包或依赖项。但是,如果您想添加或修改 的某些功能nvitop,或将 的某些源代码复制nvitop到您自己的代码中,则源代码也应在 GPLv3 许可下发布。
我已经让进程终止(可能被终止或崩溃)并继续使用资源,但未在nvidia-smi. 通常这些进程只占用 GPU 内存。
如果您认为您有一个进程正在使用 GPU 上的资源,并且它没有显示在 中nvidia-smi,您可以尝试运行此命令来仔细检查。它将显示哪些进程正在使用您的 GPU。
sudo fuser -v /dev/nvidia*
Run Code Online (Sandbox Code Playgroud)
这适用于 EL7、Ubuntu 或其他发行版,它们的 nvidia 设备可能会列在另一个名称/位置下。