问题描述
在终端中使用top
命令列出进程,按CPU使用情况排序(您可以将其更改为按其他参数排序)
GPU有同等效力吗?
This fellow is asking about RAM used by GPU
最佳解决方法
-
对于Nvidia GPU,有一个工具nvidia-smi可以显示内存使用情况,GPU利用率和GPU温度。
-
对于Intel GPU,您可以使用intel-gpu-tools。
-
AMD有两种选择
-
fglrx(闭源驱动程序):
aticonfig --odgc --odgt
-
对于mesa(开源驱动程序),您可以使用RadeonTop。
-
资料来源:GPU usage monitoring
次佳解决方法
Nvidia:要不断更新nvidia-smi
的输出,可以使用nvidia-smi --loop=1
(刷新间隔1秒)或nvidia-smi --loop-ms=1000
(刷新间隔1000毫秒)。
-l SEC, --loop=SEC
Continuously report query data at the specified interval, rather than
the default of just once. The application will sleep in-between
queries. Note that on Linux ECC error or XID error events will print
out during the sleep period if the -x flag was not specified. Pressing
Ctrl+C at any time will abort the loop, which will otherwise run indef‐
initely. If no argument is specified for the -l form a default inter‐
val of 5 seconds is used.
-lms ms, --loop-ms=ms
Same as -l,--loop but in milliseconds.
供参考:
第三种解决方法
您可以使用gpustat
,它是一个简单的命令行脚本(nvidia-smi的包装器),用于查询和监控GPU状态:
第四种方法
您可以将监控程序glances与其GPU monitoring plug-in一起使用:
-
开源
-
安装:
sudo apt-get install -y python-pip; sudo pip install glances[gpu]
-
发布:
sudo glances
它还监视CPU,磁盘IO,磁盘空间,网络和其他一些事情:
第五种方法
对于英特尔:
-
安装intel-gpu-tools(它们可能已安装)
sudo apt-get install intel-gpu-tools
-
启动
top
like实用程序sudo intel_gpu_top
-
检查您的统计数据,然后退出
Ctrl
+C
这就是你得到的:
谢谢@Mitch! 🙂
第六种方法
我使用以下命令:
nvidia-smi -l 2
它每2秒给我一次更新。
要么 :
watch -n0.1 "nvidia-settings -q GPUUtilization -q useddedicatedgpumemory"
在AMD上,使用:
aticonfig --odgc --odgt
第七种方法
Conky
我喜欢使用conky
作为CPU和GPU的real-time监视器。
英特尔i7-6700HQ iGPU HD 530
在这种情况下,我使用集成GPU而不是nVidia GTX 970M启动:
conky
代码根据使用prime-select intel
或prime-select nvidia
启动进行调整:
nVidia GPU GTX 970M
在这个例子中,我使用nVidia GTX 970M而不是集成GPU启动:
坚定的代码
最近将修改后的代码修改为GPU的auto-sense。现在,重启到不同的GPU时不必手动修改:
#------------+
# Intel iGPU |
#------------+
${color orange}${hr 1}${if_existing /sys/class/drm/card0/gt_cur_freq_mhz}
${color2}${voffset 5}Intel® Skylake GT2 HD 530 iGPU @${alignr}${color green}
${execpi .001 (cat /sys/class/drm/card0/gt_cur_freq_mhz)} MHz
${color}${goto 13}Min. Freq:${goto 120}${color green}${execpi .001 (cat /sys/class/drm/card0/gt_min_freq_mhz)} MHz${color}${goto 210}Max. Freq:${alignr}${color green}${execpi .001 (cat /sys/class/drm/card0/gt_max_freq_mhz)} MHz
${color orange}${hr 1}${else}
#------------+
# Nvidia GPU |
#------------+
#${color orange}${hr 1}${if_match "${lsmod | grep nvidia_uvm}">""}
${color2}${voffset 5}${execpi .001 (nvidia-smi --query-gpu=gpu_name --format=csv,noheader)} ${color1}@ ${color green}${execpi .001 (nvidia-smi --query-gpu=clocks.sm --format=csv,noheader)} ${alignr}${color1}Temp: ${color green}${execpi .001 (nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader)}°C
${color1}${voffset 5}Ver: ${color green}${execpi .001 (nvidia-smi --query-gpu=driver_version --format=csv,noheader)} ${color1} P-State: ${color green}${execpi .001 (nvidia-smi --query-gpu=pstate --format=csv,noheader)} ${alignr}${color1}BIOS: ${color green}${execpi .001 (nvidia-smi --query-gpu=vbios_version --format=csv,noheader)}
${color1}${voffset 5}GPU:${color green}${execpi .001 (nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader)} ${color1}Ram:${color green}${execpi .001 (nvidia-smi --query-gpu=utilization.memory --format=csv,noheader)} ${color1}Pwr:${color green}${execpi .001 (nvidia-smi --query-gpu=power.draw --format=csv,noheader)} ${alignr}${color1}Freq: ${color green}${execpi .001 (nvidia-smi --query-gpu=clocks.mem --format=csv,noheader)}
${color orange}${hr 1}${endif}