내 노트북에는 amdgpu 및 mesa 20.3.1을 사용하여 Manjaro를 실행하는 AMD RX 580이 있습니다. 터미널에서 실행 하면 cat /sys/class/drm/card0/device/pp_power_profile_mode
다음과 같은 결과가 나타납니다.
NUM MODE_NAME SCLK_UP_HYST SCLK_DOWN_HYST SCLK_ACTIVE_LEVEL MCLK_UP_HYST MCLK_DOWN_HYST MCLK_ACTIVE_LEVEL
0 BOOTUP_DEFAULT: - - - - - -
1 3D_FULL_SCREEN: 0 100 30 0 100 10
2 POWER_SAVING *: 10 0 30 0 100 10
3 VIDEO: - - - 10 16 31
4 VR: 0 11 50 0 100 10
5 COMPUTE: 0 5 30 - - -
6 CUSTOM: - - - - - -
미리 정의된 다양한 모드가 표시되지만 값이 설정되지 않은 "사용자 정의" 모드도 있습니다.
내가 찾은https://dri.freedesktop.org/docs/drm/gpu/amdgpu.html#pp-power-profile-mode이에 대한 설명은 다음과 같습니다.
프로필을 선택하거나 사용자 정의 프로필을 생성하려면 먼저 power_dpm_force_performance_level을 사용하여 수동을 선택하세요. pp_power_profile_mode에 미리 정의된 프로필 수를 기록하면 이러한 휴리스틱이 활성화됩니다. 사용자 정의 추론 세트를 생성하려면 사용자 정의 구성 파일의 번호와 각 추론 매개변수에 대한 설정으로 시작하여 숫자 문자열을 파일에 작성합니다. ASIC 제품군 간의 차이로 인해 경험적 매개변수는 제품군마다 다릅니다.
현재 모드를 "POWER_SAVING"으로 변경하기 위해 실행할 수 있지만 문서를 읽어 보면 "CUSTOM" 모드를 설정하기 위해 echo "2" > /sys/class/drm/card0/device/pp_power_profile_mode
실행할 수 있어야 한다고 생각합니다 . echo "6 10 0 30 0 100 10" > /sys/class/drm/card0/device/pp_power_profile_mode
그래도 보상을 받을 뿐입니다 bash: echo: write error: Invalid argument
.
여기서 "CUSTOM" 모드를 재정의할 수 있습니까?
답변1
내 pp_power_profile_mode
RX 470은 RX 580(두 Polaris 카드 모두)과 동일한 것으로 보이며 다음을 CUSTOM
수행하여 프로필을 변경하고 활성화할 수 있었습니다.
echo "6 1 50 250 20 1 250 250 20" > /sys/class/drm/card0/device/pp_power_profile_mode
매개변수는 (순서대로) 다음과 같습니다.
NUM
사용자 정의를 위한 모드 선택6
.ENABLE_SCLK
여기에 설정된 코어 클럭 매개변수를 적용해야 하는지 여부입니다.SCLK_UP_HYST
코어 클럭이 상승하기 전 지연 시간(밀리초)입니다.SCLK_DOWN_HYST
코어 클럭이 떨어지기 전의 지연 시간(밀리초)입니다.SCLK_ACTIVE_LEVEL
코어 클럭을 높이는 데 필요한 코어 로드입니다.ENABLE_MCLK
여기에서 설정된 메모리 클럭 매개변수를 적용할지 여부입니다.MCLK_UP_HYST
메모리 클럭이 상승하기 전의 지연 시간(밀리초)입니다.MCLK_DOWN_HYST
메모리 클럭이 떨어지기 전의 지연 시간(밀리초)입니다.MCLK_ACTIVE_LEVEL
메모리 클럭에 필요한 메모리 로드를 늘립니다.
매개변수 ENABLE
2와 6은 1
(활성화) 또는 0
(비활성화)될 수 있습니다. 매개변수 3, 4, 7, 8은 ms 또는 (무한대) HYST
일 수 있습니다 . 이러한 매개변수는 활동 수준(부하) 의 백분율 일 수 있습니다 .0
254
255
ACTIVE_LEVEL
0
100
기본 3D_FULL_SCREEN
프로필에는 코어 설정 0 100 30
과 메모리 설정이 있습니다 0 100 10
. 내 목표는 게임을 할 때는 높은 성능을 발휘하지만 게임을 하지 않을 때는 전력 소비를 줄이는 것입니다. 따라서 상승 속도와 하강 속도가 느리지만 코어 부하에 더욱 민감한 코어 클럭을 설정했습니다( 0 100 30
→ 50 250 20
). 천천히 상승 및 하강하고 메모리 로드에 너무 민감하지 않은( 0 100 10
→ ) 메모리 클럭을 설정하여 250 250 20
전압이 항상 800mV에서 1000+mV로 점프하지 않도록 합니다(이는 메모리 클럭이 증가할 때 발생합니다. 코어 클럭은 300MHz에 불과합니다.
답변2
내 5700XT의 /sys/class/drm/card0/device/pp_power_profile_mode
모습은 다음과 같습니다.
PROFILE_INDEX(NAME) CLOCK_TYPE(NAME) FPS MinFreqType MinActiveFreqType MinActiveFreq BoosterFreqType BoosterFreq PD_Data_limit_c PD_Data_error_coeff PD_Data_error_rate_coeff
0 BOOTUP_DEFAULT :
0( GFXCLK) 0 5 1 0 4 800 4587520 -65536 0
1( SOCCLK) 0 5 1 0 3 800 1310720 -6553 0
2( MEMLK) 0 5 1 0 4 800 327680 -65536 0
1 3D_FULL_SCREEN :
0( GFXCLK) 0 5 1 0 4 650 3932160 -6553 -65536
1( SOCCLK) 0 5 1 850 4 800 1310720 -6553 0
2( MEMLK) 0 5 4 850 4 800 327680 -65536 0
2 POWER_SAVING*:
0( GFXCLK) 0 5 1 0 3 0 5898240 -65536 0
1( SOCCLK) 0 5 1 0 3 0 1310720 -6553 0
2( MEMLK) 0 5 1 0 3 0 1966080 -65536 0
3 VIDEO :
0( GFXCLK) 0 5 1 0 4 500 4587520 -65536 0
1( SOCCLK) 0 5 1 0 4 500 1310720 -6553 0
2( MEMLK) 0 5 1 0 4 500 1966080 -65536 0
4 VR :
0( GFXCLK) 0 5 4 1000 4 800 4587520 -65536 0
1( SOCCLK) 0 5 1 0 4 800 327680 -65536 0
2( MEMLK) 0 5 1 0 4 800 327680 -65536 0
5 COMPUTE :
0( GFXCLK) 0 5 4 1000 3 0 3932160 -65536 -65536
1( SOCCLK) 0 5 4 850 3 0 327680 -65536 -32768
2( MEMLK) 0 5 4 850 3 0 327680 -65536 -32768
6 CUSTOM :
0( GFXCLK) 0 5 1 0 4 800 4587520 -65536 0
1( SOCCLK) 0 5 1 0 3 800 1310720 -6553 0
2( MEMLK) 0 5 1 0 4 800 327680 -65536 0
여기에는 다음과 같은 경우 전력 수준(설정 가능)만 변경하는 pp_od_clk_voltage
경험적 방법이 포함되어 있습니다.manual
모드가 선택되었습니다power_dpm_force_performance_level
문서에 따르면.
CUSTOM
다음과 같이 프로필(idx 6) 및 구성 요소( GFXCLK
=0, =1, =2)에 대한 SOCCLK
사용자 정의 값을 설정할 수 있습니다.MEMLK
echo '6 0 1 2 3 4 5 6 7 8 9' | sudo tee /sys/class/drm/card0/device/pp_power_profile_mode
파일에는 다음이 포함됩니다.
6 CUSTOM*:
0( GFXCLK) 1 2 3 4 5 6 7 8 9
1( SOCCLK) 0 5 1 0 3 800 1310720 -6553 0
2( MEMLK) 0 5 1 0 4 800 327680 -65536 0
그러나 이러한 가치는 나에게 여전히 미스터리이다.의미는...