如何仅降低辅助显示器的刷新率?(减少 GPU 使用率)

如何仅降低辅助显示器的刷新率?(减少 GPU 使用率)

我想将辅助显示器的刷新率降低到非常低的水平,这样我的 GPU 就不必做太多工作了。但在默认的“显示”设置中没有选项可以更改辅助显示器的刷新率。它似乎固定在 60 Hz。

我怎样才能将第二台显示器的刷新率限制为每秒 10 帧?...释放我的 GPU 上的一些资源。


这是我的显示设置:

显示器

我也没有在 NVIDIA X 服务器设置中找到选项: nvidia x 服务器设置

nvidia显示器

的输出xrandr

Screen 0: minimum 8 x 8, current 3440 x 2520, maximum 16384 x 16384
DVI-I-0 connected 1920x1080+854+1440 (normal left inverted right x axis y axis) 477mm x 268mm
   1920x1080     60.00*+
   1680x1050     59.95  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   1280x720      60.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   640x480       75.00    59.94  
DVI-I-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 connected primary 3440x1440+0+0 (normal left inverted right x axis y axis) 819mm x 346mm
   3440x1440     59.97 +  99.98* 
   3840x2160     59.94    50.00    29.97    25.00    23.98  
   2560x1080    100.00    59.94  
   1920x1080    100.00    60.00    59.94    50.00    29.97    25.00    23.98    60.00    50.04  
   1680x1050     59.95  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   1280x720      60.00    59.94    50.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
DVI-D-0 disconnected (normal left inverted right x axis y axis)

答案1

就像声明的那样这里您可以使用cvtxrandr来更改显示器的刷新率。但在您的情况下,的参数cvt必须是3840x2160 24限制第二台显示器的刷新率,同时保持其分辨率。

但 :

显示器刷新率与 GPU 利用率无关。事实上帧缓冲区例如,每秒被显示器读取 60 次60赫兹显示器,你的 GPU 是否以 240fps 渲染,或者是否完全闲置的据我所知,监视器读取帧缓冲区的方法称为直接内存访问甚至不需要 CPU 周期来执行 I/O 操作。

如果你想降低 GPU 的负载,你可以:

  • 通过上述方法限制第二台显示器的分辨率,但这有点荒谬,因为你不能充分利用显示器的潜力

  • 将需要更高渲染的窗口(例如游戏和视频播放器,但不是文件管理器的实体窗口,甚至只是实体壁纸)移动到具有较低分辨率的显示器。

  • 禁用一些可能使用 GPU 的扩展和功能

  • nvidia-smi查看哪些进程通过或nvidia-settings(即你发布的屏幕截图所属的程序)对你的 GPU 造成很大压力,并限制中央处理器使用它们通过cputool如下(您必须cputool先安装该包):

cputool -p pid_of_the_hungry_process -c maximum_cpu_usage

限制 CPU 使用率也会限制OpenGL调用一个进程在时间单位内发出的指令,因此它也可以限制 GPU 的使用。我不知道有任何工具(甚至nvidia-smi)可以直接限制 GPU 的使用(如果有人知道,我很高兴听到)。

没有任何程序会在 GPU 中开始执行。所有程序都从 CPU 开始,然后通过以下方式向 GPU 驱动程序发出调用:OpenGL通用计算架构或者OpenCL仅举几例。因此我认为限制 CPU 使用率是合理的。

请注意,maximum_cpu_usage对于 16 线程 CPU,上述命令中的 一直从01600。这是该系统上的进程可以使用的最大 CPU 量(如果它有 16 个执行线程)。

例如,在我的系统中,将KWin窗口管理器限制为,10可以将 GPU 的使用率从几乎32%到周围15%在整个屏幕上快速移动终端窗口时。但是移动窗口时可能会导致一些故障。

去做:如果有人知道如何限制 Gnome-shell 或类似 DE 的帧速率,我很高兴听到。

希望能帮助到你。

相关内容