如何衡量GPU使用情况?

使用终端中的top命令列出进程,按CPU使用情况排序(您可以将其更改为按其他参数排序)

GPU有同等效力吗?

这家伙正在询问GPU使用的RAM

  • 对于Nvidia GPU,有一个工具nvidia-smi可以显示内存使用情况,GPU利用率和GPU温度。
  • 对于Intel GPU,您可以使用intel-gpu-tools 。
  • AMD有两种选择

    1. fglrx(闭源驱动程序):

       aticonfig --odgc --odgt 
    2. 对于mesa(开源驱动程序),您可以使用RadeonTop 通过软件中心安装

来源: GPU使用情况监控

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. 

供参考:

  • 如何记录GPU加载?
  • 使用nvidia-smi时,GPU利用率为N / A.

您可以使用gpustat ,它是一个简单的命令行脚本(nvidia-smi的包装器),用于查询和监视GPU状态:

在此处输入图像描述

您可以使用监控程序扫视其GPU监控插件:

  • 开源
  • 安装: sudo apt-get install -y python-pip; sudo pip install glances[gpu] sudo apt-get install -y python-pip; sudo pip install glances[gpu]
  • 推出: sudo glances

在此处输入图像描述

它还监视CPU,磁盘IO,磁盘空间,网络和其他一些事情:

在此处输入图像描述

对于英特尔:

  1. 安装intel-gpu-tools(可能已经安装了它们)

     sudo apt-get install intel-gpu-tools 
  2. 像实用工具一样启动top

     sudo intel_gpu_top 
  3. 检查统计信息,然后按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的实时监视器。

英特尔i7-6700HQ iGPU HD 530

在这种情况下,我使用集成GPU而不是nVidia GTX 970M启动:

英特尔GPU.gif

根据是否使用prime-select intelprime-select nvidia启动,适应的代码会适应:

nVidia GPU GTX 970M

在这个例子中,我使用nVidia GTX 970M而不是集成GPU启动:

nVidia GPU.GIF


坚定的代码

最近修改了令人厌恶的代码以自动感知GPU。 现在,重启到不同的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}