amdgpu 从不设置最低 P 状态

amdgpu 从不设置最低 P 状态

我正在为我的 RX 580 使用带有 5.8 内核和 amdgpu 驱动程序的 Ubuntu 20.04。

# lspci | grep VGA
2d:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] (rev e7)

但是,有一个小问题:P 状态从未设置为最低,因此我在进行一些随意的浏览时可以听到轻微的线圈呜呜声 :( 电压和功耗对于空闲状态来说也太高了,1.09V/42W 无论如何都行不通。

不过,Windows 上一切都很好,在 3D 应用之外也能保持适当的 300Mhz 模式(最低模式)。也没有线圈噪音(不在游戏中时 :))。

两个系统上的显示器均通过 DP 运行 4K@60Hz 200% 缩放。

这是 GPU 的传感器输出

amdgpu-pci-2d00
Adapter: PCI adapter
vddgfx:        1.09 V  
fan1:         758 RPM  (min =    0 RPM, max = 3700 RPM)
edge:         +39.0°C  (crit = +94.0°C, hyst = -273.1°C)
power1:       42.02 W  (cap = 145.00 W)

我尝试调整 SCLK 设置,但没有成功:

root@abyss:/sys/class/drm/card0/device# cat power_dpm_force_performance_level
auto
root@abyss:/sys/class/drm/card0/device# echo profile_min_sclk > power_dpm_force_performance_level 
root@abyss:/sys/class/drm/card0/device# sensors
iwlwifi_1-virtual-0
Adapter: Virtual device
temp1:        +34.0°C  

nvme-pci-0100
Adapter: PCI adapter
Composite:    +34.9°C  (low  = -273.1°C, high = +84.8°C)
                       (crit = +84.8°C)
Sensor 1:     +34.9°C  (low  = -273.1°C, high = +65261.8°C)
Sensor 2:     +39.9°C  (low  = -273.1°C, high = +65261.8°C)

amdgpu-pci-2d00
Adapter: PCI adapter
vddgfx:        1.09 V  
fan1:         760 RPM  (min =    0 RPM, max = 3700 RPM)
edge:         +46.0°C  (crit = +94.0°C, hyst = -273.1°C)
power1:       75.14 W  (cap = 145.00 W)

k10temp-pci-00c3
Adapter: PCI adapter
temp1:         +0.0°C  (high = +70.0°C)

root@abyss:/sys/class/drm/card0/device# cat power_dpm_force_performance_level
profile_min_sclk
root@abyss:/sys/class/drm/card0/device# cat pp_dpm_sclk
0: 300Mhz 
1: 600Mhz 
2: 900Mhz 
3: 1145Mhz 
4: 1215Mhz 
5: 1257Mhz 
6: 1300Mhz *
7: 1365Mhz 

与手册相同:

root@abyss:/sys/class/drm/card0/device# echo manual > power_dpm_force_performance_level 
root@abyss:/sys/class/drm/card0/device# cat pp_dpm_sclk
0: 300Mhz 
1: 600Mhz 
2: 900Mhz 
3: 1145Mhz 
4: 1215Mhz 
5: 1257Mhz 
6: 1300Mhz *
7: 1365Mhz 
root@abyss:/sys/class/drm/card0/device# echo 0 > pp_dpm_sclk
root@abyss:/sys/class/drm/card0/device# cat pp_dpm_sclk
0: 300Mhz 
1: 600Mhz 
2: 900Mhz 
3: 1145Mhz 
4: 1215Mhz 
5: 1257Mhz 
6: 1300Mhz *
7: 1365Mhz 

我还能做些什么才能最终让它以尽可能低的电压切换到 300Mhz?1.09V 对于空闲来说太高了。

答案1

我遇到了与您同样的问题,但运行的是 AMD RX570。

我从来没有尝试过自己通过终端更改这些值,而是使用 CoreCTRL 来(https://gitlab.com/corectrl/corectrl)。我在那里将“性能模式”更改为“高级”,将“电源配置文件”更改为“省电”。(请注意,默认情况下它设置为省电,但似乎没有正确使用,因此我必须先来回切换到其他一些配置文件,然后才能正常工作)。现在,在桌面上和进行简单浏览时,显卡会进入最低 p 状态。玩游戏会将其提升到高 p 状态,并为我提供我在游戏中期望的 fps。

相关内容