80
AMD: いいえ、WindowsスケジューラはブーストするRyzen 3000コアを間違って選択していません

AMD Ryzen 3000シリーズ

(画像提供:AMD)

ここ2週間、AMDのRyzen MasterがAMDのRyzen 3000シリーズCPUのコア数評価に誤りがある可能性があるという様々な報告が見られてきました。同時に、Windows 10ではCPPCの誤った情報が原因で間違ったCPUコアがブーストされているという、反対意見の報告も見られましたが、これら2つは同じ問題の一部に過ぎません。一方、AMD自身もこの問題について調査を進めており、今朝、声明を発表しました。

当然ながら、これは少し複雑になりますが、この動作には十分な理由があります。Windows のスケジューラは、シングルスレッドタスクを2つのコアに分割して、2つのコア間でタスクをジャンプさせることで、熱やその他の変数を管理し、各コアが可能な限り高いブースト性能を発揮できるようにしたいのです。選択される2つのコアは同じ CCX 上になければなりません。そうでない場合、離れた2つのコア間でタスクをジャンプさせる際の遅延によってパフォーマンスに大きなペナルティが発生し、結果としてコアジャンプ動作から得られるメリットが相殺されてしまうからです。

残る疑問は、なぜWindowsはタスクを切り替えて実行するために、同じCCX上で最速のコアと2番目に速いコアを選択しないのかということです。この点については、AMDの例を挙げましょう。

仮に16コアのAMD CPUを例に挙げ、いくつかのコアを取り上げてみましょう。最初のダイの最初のCCXにあるCore 0とCore 1は、それぞれ2.2GHzと2.15GHzまでブーストでき、平均周波数は2.175GHzになります。もう一方のダイの2番目のCCXにあるCore 13とCore 15は、それぞれ2.25GHzと2.05GHzまでブーストでき、平均周波数は2.150GHzになります。WindowsではCore 0とCore 1がCPPC推奨コアですが、Ryzen MasterではCore 13に金星が与えられます。Core 13はチップ内で最速のコアかもしれませんが、自動ブーストでは全体的に最速の選択肢ではないことがわかります。理論上は平均周波数が最も高いCore 13とCore 0を組み合わせると、CCXの境界を越えることによって周波数が相殺される可能性があります。

上記の動作は、Windows 2019年5月アップデート以降で標準的に採用されているものであり、AMDによる最適なパフォーマンスを得るための推奨事項は、この新しい情報を受けても変更されていません。AMDは、ユーザーに以下の基準を満たすことを推奨しています。

  • グローバルCステートとCPPC設定は、UEFIで「自動オン」または強制的にオンに設定されます。
  • Windows 10のインストールで2019年5月のアップデート以降を実行する
  • AGESA 1.0.0.2 以降のマイクロコードを搭載した BIOS ファームウェアを使用します。
  • 2019年7月以降のAMD X570チップセットドライバーを使用してください

チェックリストがかなり長いように思えるかもしれませんが、AGESA 1.0.0.2 が Ryzen 3000 CPU と共に 7 月にリリースされ、X570 マザーボードとそれに伴うチップセットドライバも 7 月にリリースされたことを考えると、既にこれらの基準を満たしている可能性が高いでしょう。また、2019 年 5 月の Windows アップデートを既に適用している可能性が高いため、残っているのは UEFI CPPC 設定が有効になっていることを確認するだけです。そのため、AMD の Ryzen Master が推奨する最適なコアに基づいてブーストコアの選択を判断しない限り、正しいスケジューリング動作が確認できるはずです。

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

さらなる混乱を解決するために、AMD は CPPC2 データに一致する情報を表示する Ryzen Master のアップデートに取り組んでいます。

Niels BroekhuijsenはTom's Hardware USの寄稿ライターです。ケース、水冷システム、PCの組み立てレビューを担当しています。