ニュース

Windows 10はAMD Ryzenの論理コアを正しく認識できず、性能が下がる?

Ryzen 7 1800X

 AMDから新アーキテクチャのCPU「Ryzen」が発表、発売され、Intelの競合製品と互角に戦える性能を出していることで大きな話題となっている。一方、海外のニュースサイトを中心に、Windows 10は、Ryzenの論理コアを正しく認識できず、それによって性能が低下しているとの話題も上っている。

 RyzenはCoreシリーズのようにSMTに対応し、1コアで2つのスレッドを同時に走らせられる。しかし、その2スレッドの内、主要スレッドは最大性能を発揮できるのに対し、追加のSMTスレッドは余剰リソースのみを利用するので、この仮想コアによる性能向上は2~3割程度に留まる。

 そういったなか、wccftechの記事によれば、Windows 10のスケジューラは、Ryzenの主要コアスレッドと仮想SMTスレッドを識別できない、つまりRyzen 7を物理コア16基搭載と認識しているため、スケジューラが本来主要コアスレッドに渡すべき処理を仮想SMTスレッドに渡してしまい、性能低下を招いているという。

 また、Windows 10は、本来Ryzen 1つで16MBある共有L3キャッシュが、コアごとに備わっていると認識しているとも指摘している。

 こういった問題から、wccftechでは、シングルスレッド処理が多いアプリ/ゲームでは、BIOSでRyzenのSMTをオフにした方が性能が上がるとしている。

 この件について、編集部でもRyzenのレビューを行なったライターの三門修太氏の協力を得て、Ryzen 7 1800Xを用いて検証してみた。

 まず、タスクマネージャーでは、コア数8、論理プロセッサ数16、L3キャッシュ16.0MBと正しく認識している。

タスクマネージャーの表示

 wmicコマンドでも、コア数は8、スレッド数は16、L3キャッシュは16,384(KB)と認識している。

wmicの実行結果

 いくつかの海外サイトでは、このツールでのL3キャッシュの認識結果がおかしかったとされているCoreInfo.exeを用いても、やはり8コアで、L3キャッシュは合計16MBと問題なく認識していた。

CoreInfo.exeの実行結果

 ただし、SMTオン/オフの場合で、いつかベンチマークを走らせたところ、SMTの効き具合はテストによってまちまちだが、ゲームの「Ashes of the Singularity」ではSMTをオフにすることで性能が向上するという結果も確認された。

CINEBENCH R15
x264 FHD Benchmark v1.0.1
HWBOT x265 Benchmark v2.0.0
Sandra 2016 SP3(22.35) - Processor Arithmetic
Sandra 2016 SP3(22.35) - Processor Multi-Media
Ashes of the Singularity Benchmark (1,920×1,080ドット)

 とは言え、IntelのHyper-Threadingでも、同技術やマルチスレッドへの最適化が不十分なアプリケーションでは同様の結果になる場合があり、この原因がWindows側にあると断定する材料とは言えない。

 三門氏は、利用したマザーボードのBIOSのバグや、Socket AM3で利用していた環境を使い回したりすると、論理コアをOSがうまく認識できなくなる可能性はあるので、そういったことが理由かもしれないとしている。

 過去には、Socket AM4対応のAPUであるA12-9800が、2コア4スレッドではなく4コア4スレッドと認識されていたこともあり(Socket AM4のAMD A12-9800を搭載するTSUKUMO「AeroStream RM5A-C81/T」を参照)、Windows 10が最新のRyzenのSMTを現時点でうまく認識できなかったとしても、不思議ではない。ただし、wccftechによれば、Windows 7ではこの問題は発生しないという。

 編集部ではAMDにも問い合わせを行なった。AMDでは、「こういう報告が上がってきていることは認識しており、現在調査中で、何か判明したら声明を出す」としており、実際にWindows 10とRyzenの間に問題があるのかはまだはっきりしない。

 編集部でも、もう少し詳しい状況が分かったら、追加で検証を行なう予定だ。