私のラップトップには、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
しかし、これらの価値は私にとってまだ謎です。意味は...