Intel HD4000が最大クロック速度で動作するのをどのように停止しますか?

Intel HD4000が最大クロック速度で動作するのをどのように停止しますか?

電力を節約するために、Intel HD4000 iGPUをより低いクロック速度で実行するのに問題があります。

私が今まで試したこと:

  • 「固定」されているように見えますが、テストの結果、実際の効果はありません。

    echo 350 > /sys/kernel/debug/dri/0/i915_max_freq
    
  • 使用https://github.com/jmechnich/intel-power-controlクロック速度を制御します。 iGPUに負荷がない場合は、最大クロック速度を350MHzに設定することができますが、一部のグラフィック集中型ワークロード(ブラウザのWebGLデモなど)をロードすると、現在のクロック速度はすぐに1250MHzに上がります。しかし、最小値と最大値は依然として350MHzと報告されています。 編集:プロジェクトマネージャはこの問題を解決し、時計を変更できるようになりました。

  • intel-gpu-overlay(パッケージの一部intel-gpu-tools)を使用してiGPU負荷を監視すると、アイドル状態のワークロードでクロック速度は350 MHzですが、すべての負荷は1250 MHzまで短いバーストを引き起こすか、長くて重い負荷では一定の1250 MHz負荷を引き起こします。

dGPUなしでArch Linux、カーネル4.13.11-1-ARCH、Intel i7-3820QM CPU、およびIntel HD4000を搭載したThinkpad T430でテストされました。

ここで何か抜けましたか? iGPUのクロックが350MHzを超えないようにするには、何を試すことができますか?

答え1

正しい方法は、次の2つのコマンドを使用することです。

echo 350 | sudo tee /sys/class/drm/card0/gt_boost_freq_mhz
echo 350 | sudo tee /sys/class/drm/card0/gt_max_freq_mhz

350はi​​GPUがサポートする最低周波数です。

gt_boost_freq_mhzブーストクロック制御(基本1250MHz)

gt_max_freq_mhz公称最大クロック速度制御(デフォルトは650MHz)

注:最大クロックとブーストクロックはモデルによって異なる場合があります。サポートされているブースト、最大、および最小クロックレートを見つけるには、次のようにします。

cat /sys/class/drm/card0/gt_RP0_freq_mhzブーストクロック用

cat /sys/class/drm/card0/gt_RP1_freq_mhz最大クロックの場合

cat /sys/class/drm/card0/gt_RPn_freq_mhz分時計用

ブーストクロックが最大クロック速度より高い場合、GPUはブーストクロック速度(デフォルトは1250MHz)で実行される可能性が高くなります。

以下は、ブーストと最大クロックを800MHzに設定し、一定期間ロードして350MHzに設定する例です。オーバーレイの左下に周波数と消費電力が大幅に減少します。 Intel GPUオーバーレイ結果

これは他のGPU(Intel HD 3000以降)でも機能しますが、テストが必要です。

源泉:

ユーザーqgnoxによるRedditの投稿

関連情報