オススメ機能
Twitter
お気に入り
記事履歴
ランキング
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
「Windows 10のスケジューラに問題はない」。AMDが「Ryzenに関するいくつかの憶測」に公式回答
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2017/03/14 13:50

ニュース

「Windows 10のスケジューラに問題はない」。AMDが「Ryzenに関するいくつかの憶測」に公式回答

Robert Hallock氏(Head of Global Technical Marketing,AMD)。画像は2016年のオンラインイベントより
画像集 No.002のサムネイル画像 / 「Windows 10のスケジューラに問題はない」。AMDが「Ryzenに関するいくつかの憶測」に公式回答
 北米時間2017年3月13日,AMDは同社公式blogで,Ryzenに関する追加情報を明らかにした。
 「AMD Ryzen Community Update」という題でblogポストを行ったのは技術面の広報担当であるRobert Hallock(ロバート・ハロック)氏。Ryzenの最上位シリーズである「Ryzen 7」は,4Gamerのレビューでも明らかになっているとおり,おおむね期待どおりの性能を発揮できているが,同時に,いくつか不思議な点もあり,これがユーザーの間で疑問や疑惑となっていろいろ噂されていた。Hallock氏による今回の投稿は,AMDがそんな疑問や疑惑に回答するものとなる。
 本稿ではその概要をまとめてみたい。

AMD公式blogの投稿「AMD Ryzen Community Update」(英語)



「Windows 10のスケジューラに問題はない」


 「ユーザーの間から出ていたRyzenに関する疑問」で最も大きなものは「Windows 10のスケジューラは,Ryzenを物理8コア,論理16スレッドのSMTと正しく認識していないのではないか?」というものだ。OSのスケジューラは,実行中のスレッドを優先順位に応じ正しく実行すると同時に,CPUに割り当てるOSの中核を担う部分である。

画像集 No.004のサムネイル画像 / 「Windows 10のスケジューラに問題はない」。AMDが「Ryzenに関するいくつかの憶測」に公式回答
 Zenマイクロアーキテクチャでは,1基あたり容量512KBのL2キャッシュを持ち,2スレッドのSMT(Simultaneous Multi-threading,Intelが言うところの「Hyper-Threading」とほぼ同じもの)に対応するCPUコアを4基と,これらCPUコアで共有する容量8MBのL3キャッシュをまとめてCPUモジュール「CPU Complex」(公式略称「CCX」,以下略称表記)を構成する仕様だ。Ryzen 7ではこのCCXを2基組み合わせ,8コアで最大16スレッドを同時実行できるため,Windowsに対しては16コアCPUとして振る舞うことになる。

 1基の物理コアで2つのスレッドを実行する場合,物理コア内のリソースを2つのスレッドで共用するため,そのままだとスレッドあたりの性能は大きく低下してしまう。そこで,歴代WindowsのスケジューラはCPUの物理コアと論理コアのペアを把握し,できるだけ空いている物理コアに実行するスレッドを割り振る仕組みを採用してきた。
 さらに今日(こんにち)のスケジューラだと,「CPUのキャッシュを含めた共有リソースを判断してCPUへのスレッドの割り当てを制御する」という,かなり複雑な動作を行うようにすらなっている。エンドユーザーの間で上がっていた疑問は,この最新世代のスケジューラがRyzenを正しく認識せず,ほかの物理CPUコアが空いている状況でも2つのスレッドを1つの物理CPUコアに割り当ててしまう状況が発生し,Ryzen 7の性能を発揮できなくしているのではないかというものだったわけだ。

 その点についてHallock氏は,「Windows 10のスケジューラに問題はない」と断言している(※)。

※正確を期すと,氏は「We have investigated reports alleging incorrect thread scheduling on the AMD Ryzen processor. Based on our findings, AMD believes that the Windows 10 thread scheduler is operating properly for “Zen,” and we do not presently believe there is an issue with the scheduler adversely utilizing the logical and physical configurations of the architecture.」と述べている。「Windows 10のスケジューラに問題はない」は筆者による意訳だ。

 氏によれば,「Windows 10がRyzenを物理8コア論理16コアのSMTと正しく認識していない」という疑問の出所になったのは,Microsoftが開発者向けに配布している「Coreinfo」ユーティリティだが,Coreinfoの古いバージョンでは出力に問題があったそうだ。ただそれも,Version 3.31以降で解決しており,Ryzen 7を正しく8コア16スレッドのSMTと報告するとのこと。つまり古いCoreinfoが間違っていただけで,OSのスケジューラに問題はないというわけである。

 ちなみにこの“SMT問題”に関連して,一部ユーザーの間では「Windows 10よりもWindows 7のほうがRyzen 7で高い性能が得られる」という声も上がっていたのだが,Hallock氏はこれも否定している。実際に調査研究したAMDとしては,「Ryzenを前にしたとき,Windows 10とWindows 7のスケジューラ間に,性能を左右するような動作の違いがあるとは考えていない」(同氏)とのことだ。

 ではなぜ「Ryzen 7のSMTで十分な性能が出ていない」という声が上がったのか。Hallock氏は考えられる理由として,Ryzenに対するアプリケーション側の最適化が進んでいないためと述べている。AMDは開発キットを配布し,ソフトウェアデベロッパ側にRyzenへの最適化を働きかけている最中という。


SMTがゲームのパフォーマンスを低下させる?


画像集 No.003のサムネイル画像 / 「Windows 10のスケジューラに問題はない」。AMDが「Ryzenに関するいくつかの憶測」に公式回答
 上記に関連して,ゲームではRyzenのSMTを無効化することによって性能が上がるという指摘に対しても,Hallock氏はコメントしている。いわく「SMTはゲームに対してポジティブか中立の影響を与える」。つまりSMTそれ自体がゲームの性能を低下させることはないというわけだ。
 実際,AMDは,以下に挙げる多数のタイトルでSMTがポジティブもしくは中立の影響を与えることを確認済みとしている。

  • Arma 3
  • Battlefield 1
  • For Honor
  • Hitman
  • Mafia III
  • Mirror’s Edge Catalyst
  • Sid Meier’s Civilization VI
  • Tom Clancy’s The Division
  • Watch Dogs 2

 ただ,SMTを無効化することによりフレームレートが上がるタイトルがあること自体はAMDも認識しているそうだ。Hallock氏はその点について「SMTによって性能が下がるタイトルは,Ryzenのコアやキャッシュの構成を正しく把握していない」と述べている。
 氏によると,AMDはRyzenと一部タイトルの間で生じる性能問題を把握しており,改善に向けた努力を行っているという。その成果は追ってAMDから報告があるとのことなので,期待したい。

 ちなみに,CPUのコアやキャッシュの構成についてはGDC 2017のセッションでも話題に挙がっていた。その意味ではゲーム開発者への働きかけが始まっていると言っていいだろうと思う。



「RyzenのCPU温度」は2種類ある!?


 これまで多くのCPUが,半導体内部のジャンクション温度(半導体のP-N接合温度,t-Junction)をCPU温度制御のデータとして利用してきた。それに対してRyzenでは「t-Control」略して「tCTL」というセンサーを利用するように変わったということも,Hallock氏はblogポストの中で述べている。

 tCTLは,「ヒートスプレッダとシリコンダイとの接合部における温度」をレポートする新しいセンサーだそうだ。AM4プラットフォーム向けのCPUやAPUでは,仮にtCTLの最大値が同等であっても,ジャンクション温度とtCTLの温度との関係が異なるケースがあり,氏は,それが原因で,メディアやエンドユーザーの間に若干の混乱を呼んでいるとしている。
 とくに混乱の原因となっているのは,「Ryzen 7 1800X」および「Ryzen 7 1700X」の2製品と,「Ryzen 7 1700」では,tCTLがレポートする温度に違いがあることだそうだ。

 具体的には,Ryzen 7 1800XおよびRyzen 7 1700Xだと,ジャンクション温度よりtCTLの温度のほうが20℃高い。それに対してRyzen 7 1700のtCTL温度は,ジャンクション温度と違いがないとのこと。これは推測だが,接尾辞「X」付きで,より高クロックでの動作が期待される上位2モデルでは,冷却特性を変える意図で,tCTLがレポートする温度を変えている可能性がありそうだ。

 Hallock氏はそのため,「Ryzen 7 1800XとRyzen 7 1700Xでは,tCTLから20引いた値をジャンクション温度として解釈することも可能」だと述べている。「ただ,将来的にtCTLの報告する温度がジャンクション温度に代わって普及するので,このような手法は一時的なものになるだろう」(同氏)。


Ryzenに最適化した電源プランを提供予定


 AMDのブログではWindowsの電源プランの設定についても触れている。Windowsの電源プランについてAMDはこれまで一貫して,「『バランス』にすると大きめの遅延が発生するため,『高パフォーマンス』にせよ」という立場を取っているが,Hallock氏はblogポストでもあらためて「CPUに高い性能を要求するゲームなどのアプリケーションを実行するときは,電源プランを『高パフォーマンス』にするよう推奨する」と述べていた。

 なお氏はそれに続けて,AMDとして,「Ryzenに最適化した電源プラン設定」を提供する計画があることも明らかにしている。最適化された電源プランが提供されれば,高い性能とより低い消費電力をWindows上で両立できるようになるだろう。Ryzenユーザーはこちらも期待大だ。

AMD公式blogの投稿「AMD Ryzen Community Update」(英語)

  • 関連タイトル:

    Ryzen(Zen,Zen+)

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:03月18日〜03月19日