ことの始まりはCinebench R15でシングルスレッドの性能を測ろうと思い立ったこと。
Core i9-9900Kの時もシングルスレッド性能は大手メディアさんのレビュー記事通りに出ませんでした。
よって今回もそうなるかなと予想していました。
今回、自分で測る前に検索して大手メディアさんの記事にて確認しておきました。
それによると
AMD Ryzen 9 3950XのCinebench R15スコア
シングル 218cb
マルチ 4089cb
となっています。
こちらはimpressさんのPC Watchの記事から引用しています。
元の記事はこちらから
ちなみに今回の場合、ベンチマークを取る時でもUEFIにておかしなOC設定は一切しませんでした。
メモリがDDR4-3600のOCメモリですので、その設定を行い、PBOの設定を自動から有効へ、PBOのOC幅を200MHzにした他は、すべて「自動」にしてあります。
テスト環境
CPU | AMD Ryzen 9 3950X |
メモリ | DDR4 32GB 16GBX2 |
SSD | CFD販売 CSSD-M2B1TPG3VNF |
HDD | Seagate ST4000LM024 + AGI256G16AI198 ※ StoreMIを構築 |
マザーボード | ROG STRIX X570-I Gaming |
電源 | SFX電源750W Corsair SF750 |
CPUクーラー(水冷) | 280mm簡易水冷 Thermaltake Floe Riing 280 |
ケース | Sliger SM580 |
今回Cinebench R15を用いたのは終了までの速度が速いためで、プログラムの挙動の傾向はCinebench R20でも大体同じです。
こういう記事を書くのは実は現代のOSで完全なシングルスレッド(シングルコア)動作をチェックするのはかなり難しいからです。
OSがマルチスレッド前提のため、裏で動いているサービスなどは適当に空いているコアに自動的に割り振られてしまいます。
こちらはユーザーではコントロール不能です。
※ クリックすると別Window・タブで開きます。
上の画像では、2番目のコアにベンチマークが割り振られていますが、1番目のコアも稼働しています。その他はSleepになっています。
Cinebench R15の場合、稼働最初に一度全部のコアにタスクを割り振ってから、一番速度の出そうなコアにタスクを割り振るようです。
その後、タスクが進んでいくと、時々タスクを割り振るコアが変更になることがあります。
私のRyzen9 3950Xは一つ目のCCXの一番目と二番目に一番優秀なコアと二番目に優秀なコアが割り振られているのですが、ベンチマーク実行中にシングルスレッドタスクを割り振られるコアが変更されることがありました。
今回の測定機材のソフト環境の場合、追加でサービスをインストールするVMWareと人によっては使わないBluetooth、サービスの中では重めである無線LANのコントロールサービスが稼働していたため、デフォルトでは2-3のコアが稼働状態になってしまいました。
結論から書くとこの環境ですと、Cinebench R15のシングルスレッドテストで完全なシングルスレッド動作になりません。
以下のコマンドでベンチマーク採取に不要と思われるサービスを停止してから測定しています。
SC STOP BthAvctpSvc
SC STOP BTAGService
SC STOP bthserv
SC STOP BluetoothUserService_60453
SC STOP DiagTrack
SC STOP PimIndexMaintenanceSvc_60453
SC STOP DeviceAssociationService
SC STOP DPS
SC STOP WdiServiceHost
SC STOP TrkWks
SC STOP DtsApo4Service
SC STOP "EaseUS Agent"
SC STOP lfsvc
SC STOP "Intel(R) PROSet Monitoring Service"
SC STOP NahimicService
SC STOP NcbService
SC STOP PcaSvc
SC STOP RasMan
SC STOP LanmanServer
SC STOP SSDPSRV
SC STOP TabletInputService
SC STOP WlanSvc
SC STOP VMAuthdService
SC STOP VMnetDHCP
SC STOP "VMware NAT Service"
SC STOP VMUSBArbService
これらのサービスは単に停止しているだけなので再起動すればもとに戻ります。
「ベンチマークを取るのに不要な」サービスであって、普通に普段使いで使うサービスを停止すると影響が出ますので削除まではしていません。
なお、これらのサービスは人によってないものもありますので、自分で判断できない場合は実行しないほうが無難です。
その他の設定
TechpowerupからRyzen用の電源プランをダウンロードして適用してあります。
参考記事:AMDカスタム電源プランにより、Ryzen 3000 CPUのターボ速度が250MHz向上し、Ryzen 9 3900Xでは最大4.6GHzが可能になりました!
また、ツイッターでフォロワーさんに相談し、以下の答えをいただきましたので、こちらも設定してあります。
これをお試しあれ‥ pic.twitter.com/V4LDruVGm8
— かも (@R3000C) February 11, 2020
実はこの設定にたどり着くまでにはかなりの情報収集を行い紆余曲折を経たのですが、ここでは結果だけ報告します。
「かも」さんにありがとうございました。この場を借りて御礼申し上げます。
これらの設定を行った後、Ryzen Masterで全コアを監視すると、起動後しばらくしてから、全コアが「Sleep」状態に入りました。
この状態からシングルスレッドのテストを行うと、途中で何度か複数のコアにタスクを投げることがあるもののほぼ1個のコアだけを使うシングルスレッドのテスト環境になりました。
これらの設定をかける前に測定したシングルスレッドのスコアは
210cb
でした。
この数値ですと、大手メディアさんで行っているベンチマークテストと比較しても低すぎると思います。
しかし、上に書いたような設定を行ってから測定すると最終的に
216cb
まで数値が上がりました。
218cbまではいきませんが、まあまあの速度になったと思います。
そのあといろいろ調べてみたのですが、Ryzen 9 3950Xのシングルスレッド時の平均動作クロックは4.45GHzとのこと。
こちらは海外のAnandtechの記事にありました。4.7GHzというのは「最高動作クロック」であり、平均の動作クロックとは違うようです。
標準のOS環境からBluetoothや無線LANを使い、追加のサービスをインストールするソフトをインストールすると、1-2のコアが常に稼働状態になり、完全なシングルスレッド動作とはいいがたい状態になります。
このような挙動になったのは、Fall Creator Update以降Windows10が重くなったことも関係しているのではないかと思います。
※ クリックすると別Window・タブで開きます。
上の画像では1番のコアにベンチマークのタスクが割り振られて、その他はSleepになっています。コアのクロックは4610MHz(4.61GHz)まで上がりました。
今回、この「完全なシングルスレッド動作ではない状態」でも4.45GHzは出ていましたので、それで正しかったのですが、ベンチマークの実行に必要のないサービスを停止して測ったところ、4.61GHzまで動作クロックが上がり、平均の動作クロックも4.45GHzよりは上になりました。
私はMini-ITXのマザーボードを使用しています。
ここまでくると、マザーボードや冷却システム、電源などによっても違いが出そうです。
218cbというのはかなり優秀な数字です。
ATXマザーと優秀な冷却システムと余裕のある電源を使うとこのくらい行くのかもしれません。
しかし、普段使いの環境でこの数字が出るかと言ったらまず不可能といってもよいです。
今はintelとAMDが激しく争っており、マーケティング上のイメージ戦略として過剰に数字を盛っていますが、平均動作クロックでターボクロックを表すならば、4.45GHzであり、4.7GHzではありません。
少なくとも普通に使う環境で測定した場合、ほぼ4.7GHzは出ないと思っておいたほうが良いです。
このような振る舞いですと、3950Xを購入したユーザーさんの大部分は「シングルスレッド動作で4.7GHzにならない」と悩まれると思いますので記事としてまとめてみました。
人によっては「詐欺」と感じる方もいそうな問題のある表記方法だと思います。
私も極論すれば、実験室のような特殊な環境でなければ表記通りの性能を発揮できないのは適正なのかと訝しく思います。
マルチコアCPUのコアというのはコアごとに微妙に動作クロックは違います。同じダイのコア同士でも微妙な出来の善し悪しがあるからです。
その中で、一番できの良いコアの最高速度クロックをターボクロックとして表記するというギリギリのマーケティング的振る舞いはあまり適正ではないと私は感じました。
正直言ってRyzen Masterに最高動作クロックを表記するエリアを作ってきちんと4.7GHz動作している旨を確認できれば良いと思うのですが、この辺の気の利いて無さがAMDらしいところです。
AMDは画期的な製品を出して大躍進しても本質はやはりどこか要領の悪い昔のAMDのままで少し安心しました。(笑
私はAMDのファンですので「馬鹿な子ほど可愛い」的な好意的な解釈をしていますが、世の中、万人がそのような解釈をするとは限りません。
無用なトラブルを避ける意味でも平均動作クロックで表記すべきではないかと思います。
結局、わたくしの環境での最も良い結果は
シングルスレッド 216cb
マルチスレッド 4183cb
となりました。
シングルスレッド性能は著名メディアさんのベンチマークより上がりませんでしたが、マルチスレッド性能は上回っていました。
ケースのエアフロー・電源などの環境によっても結果が大きく違ってきそうな危うさがあると思います。
今回紹介した商品
AMD Ryzen 9 3950X, without cooler 3.8GHz 16コア / 32スレッド 70MB 105W【国内正規代理店品】100-100000051WOF
Ryzen 9 3950XにはCPUクーラーが付属しません。メーカーでは280mm以上の水冷クーラーを推奨しています。