電力を節約するために、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はiGPUがサポートする最低周波数です。
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に設定する例です。オーバーレイの左下に周波数と消費電力が大幅に減少します。
これは他のGPU(Intel HD 3000以降)でも機能しますが、テストが必要です。
源泉: