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

しかし、これらの価値は私にとってまだ謎です。意味は...

関連情報