周波数スケーリングガバナがコア数が多すぎる

周波数スケーリングガバナがコア数が多すぎる

同じOS、同じコア、同じCPU周波数を実行する2台のコンピュータがあります。スケールドライブ、と同じCPU周波数スケーリングレギュレータです。

プロセスが1つのコアを固定すると、すべてのコア周波数が増加します。

コアを固定するプロセスがある場合は、1つの物理コアのみが昇格されます。

マシンA

CPU: Intel(R) Xeon(R) W-2140B CPU @ 3.20GHz
Scaling driver: intel_pstate
Scaling governor: powersave
OS: Ubuntu 21.10
Kernel: 5.13.0-22-generic

マシンB

CPU: 11th Gen Intel(R) Core(TM) i5-11600K @ 3.90GHz
Scaling driver: intel_pstate
Scaling governor: powersave
OS: Ubuntu 21.10
Kernel: 5.13.0-22-generic

次の例を観察してください。

マシンAに2つのコアを固定します。 (このマシンにはハイパースレッディングがあるため、利用可能な16の仮想コアのうち4つを拡張できます。)

ここに画像の説明を入力してください。

マシンBに2つのコアを固定します。 (このマシンにはHTを含む6つのコアがあり、12の仮想コアすべてに拡張されます。)

ここに画像の説明を入力してください。

スクリーンショットは周波数トップ、私が自分で書いたオープンソースの周波数モニタです。オレンジ色のチェックマークは、サイクル全体(ユーザー+カーネル+アイドル)に対するユーザー+カーネルサイクルの割合として定義された各コアの負荷を示します。

コアが1つしか必要ないにもかかわらず、i5-11600K CPUがすべてのコアを調整するのはなぜですか?

修正する:マシン間で見つかった1つの違いはpstateの数です。

Xeonは/sys/devices/system/cpu/intel_pstate33に設定され、corei5は42に設定されているためです。これのポイントが何なのかよくわかりません。

答え1

Intel CPUには、コア制限を処理するいくつかの方法があります。これらすべてを学ぶことは非常に技術的です。ほとんどの人は自分が使用しているCPUについてのみ知っています。しかし、これらの他の結果を提供することは、ファームウェア(BIOS、UEFI)および/またはプロセッサの内部構造によって許容される制御レベルであると確信しています。

Debian Bullseye を実行しますが、プロセッサが異なる 2 台のコンピュータで同じ現象が発生します。時には$ powertop真実が明らかになることがあります。その目的はノートパソコンの消費電力を調整することですが、デスクトップに表示される情報はさまざまな理由で興味深いものです。

カーネルがターボモードで実行されているか、どのくらい調整されているかなどを確認するためにpowertopを使用しました。 AMDでも動作します。

そのモニターについてはすでに文を書いているので、おそらくこのテーマについては私よりもっと知っているようですね。

このフォーラムは、材料が広すぎて技術的であるため、多くの詳細を議論するのには適していません。これが役に立つことを願っています。

答え2

私はcorei5システムをより適切に動作させることができ、実際に作業しているコアの周波数だけを上げることができました。

これを行うには、 intel_pstate ドライバモードを切り替える必要があることがわかりました。

あなたは/sys/devices/system/cpu/intel_pstate/status間を切り替えることができますポジティブそして受動的モデル。

アクティブモード: このモードでは、ドライバはCPUFreqのスケーリングレギュレータレイヤをバイパスし、P状態を選択するためのセルフスケーリングアルゴリズムを提供します。

パッシブモード: ...ドライバは通常のCPUFreqスケーリングドライバのように動作します。つまり、汎用スケーリングレギュレータは、CPUのP状態を変更するためにハードウェアと通信する必要があるときにそれを呼び出します。

もし私がこれを読んでくださいそうですね。アクティブモードでは、CPUはOS自体からフィードバックを受け取らないようです。 CPUがすべてのコアを調整する必要があると誤って推測したようです。

まだ説明されていないのは、Xeon CPUが次に非常に優れたパフォーマンスを発揮することです。ポジティブ移動には同じ intel_pstate ドライバを使用します。しかし、これは単なる推測であり、すべてのCPUが同じではありません。あるいは、pstateを正しく実行できない疑わしいマザーボードまたはBIOSです。

関連情報