Ubuntu 22.04におけるPコアとEコアの挙動について

さる2022/4/21にUbuntuの最新のLTSであるUbuntu 22.04がリリースされました。

弊社でもUbuntu 22.04の動作検証を行っていましたが、その中でこれまで見られなかった現象が確認されましたのでお伝えいたします。

弊社内には検証作業用のコンピュータとして、CPUにCore i9-12900Kを搭載したマシンを使用していました。
すでにご存じの方も多いかと思いますが、この第12世代Coreシリーズの一部製品から、Intel CPUのコア構成は大きく変更されています。これまで同一のコアがモデルに従って複数搭載されていましたが、この世代の該当モデルから、クロックなどのパフォーマンスを重視した”Pコア“と、省電力性能を重視した”Eコア“という、2種の異なるコアが同一パッケージ上に共存するようになりました。

PコアとEコアは、コンピュータ (上のソフトウェア) の稼働状況や実行中のスレッドの性質を基に、OS (カーネル) が割り当てを管理することになっていますが、これにはOSがPコアとEコアを別個に認識できることが必要です。

弊社が検証したUbuntu 22.04の初期カーネルバージョンは5.15となりますが、このバージョンのカーネルが動作するOS上で、複数スレッドで高負荷が生じる計算テストを行ったところ、

・実行するたびに利用されるコアが異なる
・Pコアで実行されていたスレッドがEコアに再割り当てされているように見られる

といった挙動が確認されました。
Pコアの稼働に余力がある状態でこのような挙動が発生すると、本来利用できるより高性能なPコアのリソースが活用されず、CPUの本来のパフォーマンスが発揮できない懸念が生じます。
これはバージョン5.15のUbuntuカーネルの第12世代Coreシリーズへのサポートが完全ではないことに起因していると考えられます。
Ubuntu 22.04はLTSのため、カーネルも安定版の採用が優先されます。そのため、第12世代Coreシリーズのリリース以前のバージョンが採用されている可能性があります。

Ubuntu公式では5.16以降のバージョンで第12世代Coreシリーズへの対応が正式になされており、2022/6/5現在、バージョン5.17のカーネルをUbuntu公式のリポジトリから導入が可能です。バージョン5.17カーネルを導入後に同じテストを行ったところ、スレッド数に余裕がある状況では優先的にPコアが利用されるよう、挙動が変化したとことを確認しております。

Ubuntu 22.04をインストールした第12世代Coreシリーズをご利用の上で思うように計算速度が短縮されないという場合は、カーネルを更新版に入れ替えることで、挙動が改善する場合がございます。
なお、カーネルの変更は特別な理由がなければ行うものではございませんので、お試しの際はご自身の責任にてお願いいたします。弊社にご注文いただいたコンピュータに上記処置を行って出荷することも可能ですので、コンピュータご購入の際にお申し付けいただければと存じます。