amdgpu에서 "사용자 정의" PowerPlay 전원 프로필을 사용하는 방법은 무엇입니까?

amdgpu에서 "사용자 정의" PowerPlay 전원 프로필을 사용하는 방법은 무엇입니까?

내 노트북에는 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_modeRX 470은 RX 580(두 Polaris 카드 모두)과 동일한 것으로 보이며 다음을 CUSTOM수행하여 프로필을 변경하고 활성화할 수 있었습니다.

echo "6 1 50 250 20 1 250 250 20" > /sys/class/drm/card0/device/pp_power_profile_mode

매개변수는 (순서대로) 다음과 같습니다.

  1. NUM사용자 정의를 위한 모드 선택 6.

  2. ENABLE_SCLK여기에 설정된 코어 클럭 매개변수를 적용해야 하는지 여부입니다.

  3. SCLK_UP_HYST코어 클럭이 상승하기 전 지연 시간(밀리초)입니다.

  4. SCLK_DOWN_HYST코어 클럭이 떨어지기 전의 지연 시간(밀리초)입니다.

  5. SCLK_ACTIVE_LEVEL코어 클럭을 높이는 데 필요한 코어 로드입니다.

  6. ENABLE_MCLK여기에서 설정된 메모리 클럭 매개변수를 적용할지 여부입니다.

  7. MCLK_UP_HYST메모리 클럭이 상승하기 전의 지연 시간(밀리초)입니다.

  8. MCLK_DOWN_HYST메모리 클럭이 떨어지기 전의 지연 시간(밀리초)입니다.

  9. MCLK_ACTIVE_LEVEL메모리 클럭에 필요한 메모리 로드를 늘립니다.

매개변수 ENABLE2와 6은 1(활성화) 또는 0(비활성화)될 수 있습니다. 매개변수 3, 4, 7, 8은 ms 또는 (무한대) HYST일 수 있습니다 . 이러한 매개변수는 활동 수준(부하) 의 백분율 일 수 있습니다 .0254255ACTIVE_LEVEL0100

기본 3D_FULL_SCREEN프로필에는 코어 설정 0 100 30과 메모리 설정이 있습니다 0 100 10. 내 목표는 게임을 할 때는 높은 성능을 발휘하지만 게임을 하지 않을 때는 전력 소비를 줄이는 것입니다. 따라서 상승 속도와 하강 속도가 느리지만 코어 부하에 더욱 민감한 코어 클럭을 설정했습니다( 0 100 3050 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

그러나 이러한 가치는 나에게 여전히 미스터리이다.의미는...

관련 정보