第3世代RyzenとNAVIを完全検証【Deep Dive編】

性能評価記事からちょっと時間が空いてしまったが、Zen 2アーキテクチャを採用した第3世代Ryzenについて、Architecture Deep Diveをお届けしたいと思う。

というわけで本稿【Deep Dive編】だが、元々Next Horizon Gamingの記事はダイジェストであまり細かい話をしなかったので、こちらで紹介された内部構造と、それに相当するベンチマークデータを対にしてご紹介する形で説明して行きたいと思う。

>>【CPU編】の記事はこちら
「Ryzen 9 3900X」と「Ryzen 7 3700X」を試す - 第3世代Ryzen+NAVI徹底攻略
https://news.mynavi.jp/article/20190707-854576/
>>【GPU編】の記事はこちら
「Radeon RX5700」と「Radeon RX5700XT」を試す - 第3世代Ryzen+NAVI徹底攻略
https://news.mynavi.jp/article/20190707-855531/

余談であるが、利用したベンチマークは、性能評価記事の消費電力の所でちょっとだけ紹介したSandra Titanium SP4c(最新版は7月18日に発表されたSandra 20/20であるが、その直前バージョン)と、懐かしのRMMA(RightMark Memory Analyzer) 3.8である。実はRMMA、Windows 10でこれまで実行が不可能だった。というのはタイミング測定に利用していたRTCore64.sysが署名なしのために、どうやってもWindows 10でロードできなかったためだ。これをロードするツールも、Windows 7までは動作したのだがWindows 10では稼働しなかった。

ところが今回ちょっと閃いてて、Windows 10をテストモードに切り替えた上で、管理者権限で行ったところRTCore64.sysが問題なくロード可能になり、また同じく管理者権限で実行することでRMMAも無事に動作可能になった。ちなみにテストモードというのは特にデバイスドライバなどの開発者のために標準で用意されているもので、管理者権限でコマンドプロンプトを立ち上げ、

bcdedit /set TESTSIGNING ON

を実行するとリブートなしでテストモードに切り替わり、署名なしドライバのロードが可能になる。テストモードではデスクトップ右下にこんな表示(Photo01)が登場してテストモードであることを示す。ちなみにもう一度管理者権限でコマンドプロンプトを立ち上げ、

bcdedit /set TESTSIGNING OFF

を実行するとこのテストモードは終了、通常の動作となる。ということで、無事RMMAも実行可能になった。

ただしRMMAの実行の際にはちょっと動作を変更している。具体的には動作周波数を変化させると、正しくタイミング測定が出来なくなる。なので

・CPU動作周波数:Base Clockで固定
・Intelの場合はTurbo Boost/SpeedStep無効、AMDの場合はPerformance Enhancer/Core Performance Boost/Precision Boost Overdrive無効

をBIOS Setupで実施している。またメモリクロックは

Core i9-9900K/Ryzen 7 2700X:DDR4-2666
Ryzen 9 3900X:DDR4-3200

とした。ただ実はRMMAは最大でも32MB程度までしかバッファ容量を扱えず、この結果として第3世代Ryzenの場合は全てL2+L3 Hitになりかねない(実際はそうでもなかったのだが)ため、メモリアクセスに関して正しく測定が出来ないという問題もある。これについては、RMMAの測定はキャッシュ周りまでにとどめる事にして、メモリアクセス周りの測定はSandraを利用するという方針にした。

テスト環境そのものはこちらの記事の表1そのままである(Sandraは、なので6パターン取得している)。ただRMMAはCore i9-9900K/Ryzen 7 2700X/Ryzen 9 3900Xの3パターンのみ取得した。

  • Photo01: ちなみに一応テストモードに入る/出る際には再起動が必要な筈なのだが、筆者が試した時には再起動無しでRMMAが利用できた。