おすすめ第3世代Ryzenシリーズ(Matisse)のベンチマーク性能比較レビュー フラッグシップモデルのRyzen 9 3950XですらIntel Core i3 9350KFに敗北

本記事では、第2019年~2020年に発売された第3世代Ryzenプロセッサについて総合的にまとめています。

第3世代Ryzenの各プロセッサの詳細なベンチマーク結果へのリンクも掲載しています。

また、第3世代Ryzenで採用されたZen2マイクロアーキテクチャについても論評しています。Zen2マイクロアーキテクチャの理解は、第3世代Ryzenを第2世代Ryzen(Zen+マイクロアーキテクチャ)と比較し、「改善された点」「解決せず残された問題」「改悪された点」を知る上でとても有用です。

事前の予測よりかなり低スペックとなった第3世代Ryzen 3000シリーズ(Matisse family)

事前に予測されていた第3世代Ryzenのスペックは2018年末に海外のAdoredTVから「リーク」として報道されたものが基礎となっており、2019年に正式発表されるまでの半年間に渡ってAMDユーザーの大方の予測はすべてそのリークを情報源・前提にしていました。

AMDユーザーの間では「5GHzの大台達成は堅い」というコンセンサスが存在

特にこのリークでは最高峰のフラッグシップモデルは最大クロック5.1GHzとされていたため、AMDユーザーの間では「5.1GHzは無理としても5GHzの大台達成は堅い」というコンセンサスがあったくらいです。

16コアになるはずだった3800Xはまさかの8コア しかも動作クロックが相当低い

海外AdoredTVからの「リーク」を根拠として事前予測されていたのは、3800Xが16コアになるというものでした。しかし実際でてきた3800Xは予想の半分の8コア。しかも最大動作クロックが予測では4.7GHzだったのが実際は4.5GHzでした。

AdoredTVのスペックは明らかに過大だとは私も思っていましたが、実際出てきた実物がまさかここまで低いスペックだとは思いませんでした。

事前予測では最高峰がRyzen 9 3850Xで16コア
実際はそれより上のナンバーであるRyzen 9 3900Xが振られたにも関わらず12コア

それよりもAMDユーザーにとってショックだったのは、リークを根拠とした事前予測で最高峰だとみられていたRyzen 9 3850Xのナンバリングを上回るRyzen 9 3900Xのナンバーが使われてしまったことです。

今回の12コア製品をRyzen 7 3700X程度のナンバーに留めておけば、「AMDは3900Xを持ち出すまでもなく3700Xですら12コア達成」というアピールも可能になるところでした。

2019年発売の第3世代Ryzenが2018年発売の第9世代Intel Coreに負けてしまった理由 TSMC7nmでようやくIntel14nmプロセスルールに追いつけた程度だから

第3世代RyzenはTSMC7nmプロセスルールを採用しながらも全コア同時の最大クロックが4.0GHz~4.2GHzしかありません。一方で第9世代Intel Coreは14nmプロセスルールで全コア同時4.7GHzを達成しています。もし第3世代RyzenがTSMC7nmプロセスで低消費電力化に成功してるなら、4.7GHzの全コア同時最大クロックを達成しつつTDP65Wも余裕なはずです。それが実現できていないのは、実はTSMC7nmプロセスルールはようやくIntel14nmプロセスルールに追いついたレベルだからです。

>「7nmの半導体」に7nmの箇所はどこにもない

>2019年7月19日の日経新聞の「経済教室」に、東京大学生産技術研究所の平本俊郎教授が執筆した『データ駆動社会の展望(中) 半導体、設計思想の変革を』という解説記事が掲載された。

>東大の平本先生は明快に、「実は7ナノメートルプロセスのチップ上に7ナノメートルサイズの箇所はどこにもない」と書いている。

https://news.livedoor.com/article/detail/17044867/

東大生産研の教授の見解を根拠にした極めて学術的な記事です。要はTSMC7nmは全くシュリンクしていないと理屈で指摘しているものです。AMD愛好家にとっては非常に読むのが苦痛な嫌な記事でしょう。

しかし、この記事を読まなくとも、普通に考えれば第3世代Ryzenは全コア同時最大クロックが4.0GHz~4.2GHzしかないのにTDP105Wもあるのはおかしいとわかります。

本当にトランジスタ回路が14nmから7nmまで半分のスケールにシュリンクしていれば同一性能で消費電力は半分、もしくは同一消費電力で性能は2倍になるにもかかわらず、7nmプロセスのRyzen 7 3800Xが全8コア稼働時に4.2GHzが最大、他方14nmプロセスのIntel Coreが8コア同時で4.7GHzを達成というのは、むしろ7nmプロセスのRyzen 7 3800Xが劣っていることを意味しています。実は第3世代Ryzenは第9世代Intel Coreのみならず第8世代Intel Coreにも敗北してしまっています。第3世代Ryzenはようやく第7世代Intel Coreと第8世代Intel Coreの間に追いついたレベルだということになります。

Ryzen 9 3950XとIntel Coreプロセッサのベンチマーク性能比較

型番Ryzen 9 3950X (Zen2 第3世代AMD)
コア数16コア32スレッド
基本動作周波数3.5GHz
最大動作周波数4.7GHz
全コア同時最大周波数3.9GHz
発売日2019年12月
セキュアブート非対応
AMD Pro(AMD版vPro)非対応
同時マルチスレッディング有効
定格外オーバークロック対応
TDP(≒消費電力)105W
L1キャッシュ1MB
L2キャッシュ8MB
L3キャッシュ64MB
最大メモリサイズ128GB
メモリタイプDDR4-3200
メモリチャネル2
メモリ帯域幅47.68GB毎秒
コードネームMatisse
コンピュータの形態デスクトップ
グラフィクス(iGPU)非搭載
iGPU最大画面数0
iGPU最大ビデオメモリ0GB
iGPU基本周波数0Hz
iGPU最大周波数0Hz
iGPU CU数0基
iGPU単精度コア数0個
iGPU単精度性能0 FLOPS
ソケットSocket AM4
アーキテクチャZen 2
プロセスルールTSMC7nm
SIMD拡張命令Intel AVX2, SSE
SIMD演算器256bit FMA×2
SIMD倍精度演算性能16 FLOPs/cycle
AI(深層学習)拡張命令非搭載

Ryzen 9 3950Xは第3世代Ryzenシリーズの中でフラッグシップモデルです。

待ちに待ったZen2マイクロアーキテクチャが採用された第3世代Ryzenの中でも最高の性能を誇ることから、数ある第3世代Ryzenプロセッサの中でも「真打ち」に相当するのがRyzen 9 3950Xです。

特にAMDファンやRyzenファンにとって、Ryzen 9 3950Xは精神的支柱とも言うべき存在です。

しかしそのRyzen 9 3950Xは、1年以上前に発売されたCore i9 9900Kどころか、Core i3 9350KFにすら敗北してしまいました。

Ryzen 9 3950XとIntel Coreプロセッサとのベンチマーク性能比較の結果はこちらに掲載しています。

Ryzen 9 3900XとIntel Coreプロセッサのベンチマーク性能比較

型番Ryzen 9 3900X (Zen2 第3世代AMD)
コア数12コア24スレッド
基本動作周波数3.8GHz
最大動作周波数4.6GHz
全コア同時最大周波数4.1GHz
発売日2019年7月
セキュアブート非対応
AMD Pro(AMD版vPro)非対応
同時マルチスレッディング有効
定格外オーバークロック対応
TDP(≒消費電力)105W
L1キャッシュ768KB
L2キャッシュ6MB
L3キャッシュ64MB
最大メモリサイズ128GB
メモリタイプDDR4-3200
メモリチャネル2
メモリ帯域幅47.68GB毎秒
コードネームMatisse
コンピュータの形態デスクトップ
グラフィクス(iGPU)非搭載
iGPU最大画面数0
iGPU最大ビデオメモリ0GB
iGPU基本周波数0Hz
iGPU最大周波数0Hz
iGPU CU数0基
iGPU単精度コア数0個
iGPU単精度性能0 FLOPS
ソケットSocket AM4
アーキテクチャZen 2
プロセスルールTSMC7nm
SIMD拡張命令Intel AVX2, SSE
SIMD演算器256bit FMA×2
SIMD倍精度演算性能16 FLOPs/cycle
AI(深層学習)拡張命令非搭載

2020年発売の第10世代Intel Coreを使うまでもなく、2018年~2019年発売の第9世代Intel Coreでも十分Ryzen 9 3900Xに勝ててしまったことがポイントです。

Ryzen 9 3900XとIntel Coreプロセッサとのベンチマーク性能比較の結果はこちらに掲載しています。

Ryzen 7 3800XとIntel Coreプロセッサのベンチマーク性能比較

型番Ryzen 7 3800X (Zen2 第3世代AMD)
コア数8コア16スレッド
基本動作周波数3.9GHz
最大動作周波数4.5GHz
全コア同時最大周波数4.1GHz
発売日2019年7月
セキュアブート非対応
AMD Pro(AMD版vPro)非対応
同時マルチスレッディング有効
定格外オーバークロック対応
TDP(≒消費電力)105W
L1キャッシュ512KB
L2キャッシュ4MB
L3キャッシュ32MB
最大メモリサイズ128GB
メモリタイプDDR4-3200
メモリチャネル2
メモリ帯域幅47.68GB毎秒
コードネームMatisse
コンピュータの形態デスクトップ
グラフィクス(iGPU)非搭載
iGPU最大画面数0
iGPU最大ビデオメモリ0GB
iGPU基本周波数0Hz
iGPU最大周波数0Hz
iGPU CU数0基
iGPU単精度コア数0個
iGPU単精度性能0 FLOPS
ソケットSocket AM4
アーキテクチャZen 2
プロセスルールTSMC7nm
SIMD拡張命令Intel AVX2, SSE
SIMD演算器256bit FMA×2
SIMD倍精度演算性能16 FLOPs/cycle
AI(深層学習)拡張命令非搭載

2018年発売のCore i7 9700Kに+12%の大差を付けられて、2019年7月発売のRyzen 7 3800Xは打ち負かされてしまいました。さらに2019年発売のCore i3 9350KFにもRyzen 7 3800Xは勝てていない結果となっています。

Ryzen 7 3800XとIntel Coreプロセッサとのベンチマーク性能比較の結果はこちらに掲載しています。

Ryzen 7 3700XとIntel Coreプロセッサのベンチマーク性能比較

型番Ryzen 7 3700X (Zen2 第3世代AMD)
コア数8コア16スレッド
基本動作周波数3.6GHz
最大動作周波数4.4GHz
全コア同時最大周波数3.9GHz
発売日2019年7月
セキュアブート非対応
AMD Pro(AMD版vPro)非対応
同時マルチスレッディング有効
定格外オーバークロック対応
TDP(≒消費電力)65W
L1キャッシュ512KB
L2キャッシュ4MB
L3キャッシュ32MB
最大メモリサイズ128GB
メモリタイプDDR4-3200
メモリチャネル2
メモリ帯域幅47.68GB毎秒
コードネームMatisse
コンピュータの形態デスクトップ
グラフィクス(iGPU)非搭載
iGPU最大画面数0
iGPU最大ビデオメモリ0GB
iGPU基本周波数0Hz
iGPU最大周波数0Hz
iGPU CU数0基
iGPU単精度コア数0個
iGPU単精度性能0 FLOPS
ソケットSocket AM4
アーキテクチャZen 2
プロセスルールTSMC7nm
SIMD拡張命令Intel AVX2, SSE
SIMD演算器256bit FMA×2
SIMD倍精度演算性能16 FLOPs/cycle
AI(深層学習)拡張命令非搭載

Ryzen 7 3700Xは8コアであり、1グレード上位のRyzen 7 3800X(8コア)の性能を落とした廉価版です。2019年7月発売のRyzen 7 3700Xは2018年発売のCore i7 9700Kに打ち負かされたのみならず、Ryzen 7 3700XはCore i5 9400と互角の性能という結果になっています。

Ryzen 7 3700XとIntel Coreプロセッサとのベンチマーク性能比較の結果はこちらに掲載しています。

Ryzen 5 3600XとIntel Coreプロセッサのベンチマーク性能比較

型番Ryzen 5 3600X (Zen2 第3世代AMD)
コア数6コア12スレッド
基本動作周波数3.8GHz
最大動作周波数4.4GHz
全コア同時最大周波数4.1GHz
発売日2019年7月
セキュアブート非対応
AMD Pro(AMD版vPro)非対応
同時マルチスレッディング有効
定格外オーバークロック対応
TDP(≒消費電力)95W
L1キャッシュ384KB
L2キャッシュ3MB
L3キャッシュ32MB
最大メモリサイズ128GB
メモリタイプDDR4-3200
メモリチャネル2
メモリ帯域幅47.68GB毎秒
コードネームMatisse
コンピュータの形態デスクトップ
グラフィクス(iGPU)非搭載
iGPU最大画面数0
iGPU最大ビデオメモリ0GB
iGPU基本周波数0Hz
iGPU最大周波数0Hz
iGPU CU数0基
iGPU単精度コア数0個
iGPU単精度性能0 FLOPS
ソケットSocket AM4
アーキテクチャZen 2
プロセスルールTSMC7nm
SIMD拡張命令Intel AVX2, SSE
SIMD演算器256bit FMA×2
SIMD倍精度演算性能16 FLOPs/cycle
AI(深層学習)拡張命令非搭載

Ryzen 5 3600Xは2019年7月7日に発売された第3世代Ryzenプロセッサの6コア製品の中では最高峰だったモデルです。その後、Ryzen 5 3600Xの焼き直し版であるRyzen 5 3600XTが2020年7月に発売されたため、6コアの第3世代Ryzenの中ではRyzen 5 3600XTが最高峰となりましたが、所詮焼き直し版であるため既にRyzen 5 3600Xを購入したユーザからすると、Ryzen愛好家でも無い限りあえてRyzen 5 3600XTに買い換えるメリットが無いのが現状です。

Ryzen 5 3600XとIntel Coreプロセッサとのベンチマーク性能比較の結果はこちらに掲載しています。

Ryzen 5 3600とIntel Coreプロセッサのベンチマーク性能比較

型番Ryzen 5 3600 (Zen2 第3世代AMD)
コア数6コア12スレッド
基本動作周波数3.6GHz
最大動作周波数4.2GHz
全コア同時最大周波数3.9GHz
発売日2019年7月
セキュアブート非対応
AMD Pro(AMD版vPro)非対応
同時マルチスレッディング有効
定格外オーバークロック対応
TDP(≒消費電力)65W
L1キャッシュ384KB
L2キャッシュ3MB
L3キャッシュ32MB
最大メモリサイズ128GB
メモリタイプDDR4-3200
メモリチャネル2
メモリ帯域幅47.68GB毎秒
コードネームMatisse
コンピュータの形態デスクトップ
グラフィクス(iGPU)非搭載
iGPU最大画面数0
iGPU最大ビデオメモリ0GB
iGPU基本周波数0Hz
iGPU最大周波数0Hz
iGPU CU数0基
iGPU単精度コア数0個
iGPU単精度性能0 FLOPS
ソケットSocket AM4
アーキテクチャZen 2
プロセスルールTSMC7nm
SIMD拡張命令Intel AVX2, SSE
SIMD演算器256bit FMA×2
SIMD倍精度演算性能16 FLOPs/cycle
AI(深層学習)拡張命令非搭載

Ryzen 5 3600は2019年7月に発売された第3世代Ryzenプロセッサの6コアモデルの中で、Ryzen 5 3600Xより下位で、Ryzen 5 3500Xより上位の位置づけのCPUです。2020年7月のRyzen 5 3600XT発売と同時にRyzen 5 3600が品薄になっているので、Ryzen 5 3600XTはRyzen 5 3600XのみならずRyzen 5 3600を置き換えるAMD側の意図があります。Ryzen 5 3600が品薄で入手性が悪い場合、並行輸入品を選ぶくらいなら国内正規品のRyzen 5 3600XTを選んだほうがいいでしょう。

Ryzen 5 3600とIntel Coreプロセッサとのベンチマーク性能比較の結果はこちらに掲載しています。

Ryzen 5 3500XとIntel Coreプロセッサのベンチマーク性能比較

型番Ryzen 5 3500X (Zen2 第3世代AMD)
コア数6コア6スレッド
基本動作周波数3.6GHz
最大動作周波数4.1GHz
全コア同時最大周波数3.9GHz
発売日2019年11月
セキュアブート非対応
AMD Pro(AMD版vPro)非対応
同時マルチスレッディング無効
定格外オーバークロック対応
TDP(≒消費電力)65W
L1キャッシュ384KB
L2キャッシュ3MB
L3キャッシュ32MB
最大メモリサイズ128GB
メモリタイプDDR4-3200
メモリチャネル2
メモリ帯域幅47.68GB毎秒
コードネームMatisse
コンピュータの形態デスクトップ
グラフィクス(iGPU)非搭載
iGPU最大画面数0
iGPU最大ビデオメモリ0GB
iGPU基本周波数0Hz
iGPU最大周波数0Hz
iGPU CU数0基
iGPU単精度コア数0個
iGPU単精度性能0 FLOPS
ソケットSocket AM4
アーキテクチャZen 2
プロセスルールTSMC7nm
SIMD拡張命令Intel AVX2, SSE
SIMD演算器256bit FMA×2
SIMD倍精度演算性能16 FLOPs/cycle
AI(深層学習)拡張命令非搭載

Ryzen 5 3500Xは2019年7月に発売された第3世代Ryzenから少し送れて2019年10月に発売されたものです。Ryzen 5 3500XはCPU単体として日本国内では正規品として販売されていないため、買うとしたら並行輸入品を選ぶことになります。Ryzen 5 3500Xは基本法人向けに納入され、メーカーがRyzen 5 3500Xを組込んで作ったPCを一般販売店に並べる形で供給されています。

Ryzen 5 3500XとIntel Coreプロセッサとのベンチマーク性能比較の結果はこちらに掲載しています。

Ryzen 5 3500とIntel Coreプロセッサのベンチマーク性能比較

型番Ryzen 5 3500 (Zen2 第3世代AMD)
コア数6コア6スレッド
基本動作周波数3.6GHz
最大動作周波数4.1GHz
全コア同時最大周波数3.9GHz
発売日2020年2月
セキュアブート非対応
AMD Pro(AMD版vPro)非対応
同時マルチスレッディング無効
定格外オーバークロック対応
TDP(≒消費電力)65W
L1キャッシュ384KB
L2キャッシュ3MB
L3キャッシュ16MB
最大メモリサイズ128GB
メモリタイプDDR4-3200
メモリチャネル2
メモリ帯域幅47.68GB毎秒
コードネームMatisse
コンピュータの形態デスクトップ
グラフィクス(iGPU)非搭載
iGPU最大画面数0
iGPU最大ビデオメモリ0GB
iGPU基本周波数0Hz
iGPU最大周波数0Hz
iGPU CU数0基
iGPU単精度コア数0個
iGPU単精度性能0 FLOPS
ソケットSocket AM4
アーキテクチャZen 2
プロセスルールTSMC7nm
SIMD拡張命令Intel AVX2, SSE
SIMD演算器256bit FMA×2
SIMD倍精度演算性能16 FLOPs/cycle
AI(深層学習)拡張命令非搭載

Ryzen 5 3500は2020年2月に発売されたものです。Ryzen 5 3500Xと動作クロックは全く同じで、L3キャッシュサイズのみが異なります。Ryzen 5 3500よりもRyzen 5 3500Xが完全上位になるので、予算の問題がなければRyzen 5 3500Xのほうがおすすめすが、Ryzen 5 3500Xは国内正規品として販売されていないので、このRyzen 5 3500より上位を選ぶならRyzen 5 3500XではなくRyzen 5 3600がおすすめです。

Ryzen 5 3500とIntel Coreプロセッサとのベンチマーク性能比較の結果はこちらに掲載しています。

内蔵グラフィックス非搭載でグラボなしではディスプレイが映らない第3世代Ryzenが、内蔵グラフィックスを搭載していてグラボなしでディスプレイが映るIntel Coreに汎用コア性能でも負けてしまう

さらに付け加えると第3世代Ryzenは内蔵グラフィックス(iGPU)を搭載していません。内蔵グラフィックスを搭載してしまったらそれが足かせになりIntel Coreに勝てないので、内蔵グラフィックスを削り汎用コアにチップ面積を割いているのが第1世代Ryzenから第2世代RyzenでもAMDが採用している方針です。

一方でIntel Coreは内蔵グラフィックスを搭載しているのでその分だけ汎用コアに割り当てることのできる半導体数(チップ面積)はIntel Coreのほうが少ないです。それなら内蔵グラフィックスを搭載しておらずチップ全体を汎用コアに割り当てることができる第3世代Ryzenのほうが勝たないとおかしいことになりますが、結果は逆となってしまいました。

つまりゲーム用のグラボが不要な法人用途のために内蔵グラフィックスを搭載しているIntel Coreよりも、内蔵グラフィックスが搭載されておらずグラボ無しでは画面が映らない第3世代Ryzenの8コアが下回ったということは、TSMC7nmプロセス&Zen2アーキテクチャをもってしても14nmプロセスのIntel Coreにすら勝てていないことになります。

第3世代RyzenのZen2マイクロアーキテクチャ詳説
256bitFMA×2を搭載し16FLOPS/cycleを実現 一方でL3キャッシュレイテンシは40cycleまで増加 CCXあたり4コアは維持されたためL3キャッシュミス問題が残る

第2世代Ryzenで採用されたZen+アーキテクチャは第1世代Ryzenで採用されたZenアーキテクチャの焼き直しでほぼ何も進歩していませんでした。コア数を第1世代から増やさずに単にクロックを微増させただけです。

しかし、第3世代RyzenのZen2アーキテクチャでは抜本的変更となりました。中にはSIMD演算器のように大幅に強化されているものにあれば、L1命令キャッシュサイズやL3キャッシュレイテンシ等むしろ後退した部分もあります。

256bitSIMD演算器(FMA)×2搭載し倍精度16FLOPS/cycleを達成

第1世代Ryzenと第2世代RyzenではSIMD演算器がIntel Coreよりも大きく劣っていました。その要因は、SIMD演算命令の主役であるFMA命令でAMDはFMA4、IntelはFMA3を採用するという「二重仕様」状態になっていたためです。AMDとIntelでFMA命令の仕様の覇権争いをしていたのですが、結果AMDが敗北しZenアーキテクチャからFMA4命令を削除するという憂き目にあってしまい、結果的にZenアーキテクチャではSIMD演算命令の実装が非常に乏しいものになりました。

Zenアーキテクチャの次である第2世代Ryzen用のZen+アーキテクチャでもこの点は克服されることはありませんでした。そしてZen2アーキテクチャでようやくこのSIMDの劣りを克服します。

Zen、Zen+では128bitFMA×2だったのが、256bitFMA×2になりbit幅が倍増されました。これはIntel Coreと同じです。つまりSIMD演算命令のFLOPS/cycle性能は第3世代RyzenとIntel Coreで並んだことになります。

浮動小数点乗算命令のレイテンシを4サイクルから3サイクルに短縮

上述した浮動小数点演算性能の強化とつながる話ですが、浮動小数点演算の積算命令のレイテンシが従来の4サイクルから3サイクルまで短縮されました。

実はこの乗算の3サイクルレイテンシは、Intel Coreだと2014年発売のBroadwellアーキテクチャで既に実現していたものでした。つまり第5世代Intel Coreでは既に3サイクルで浮動小数点演算の乗算を完了していたということです。今回2019年になってようやくAMDのアーキテクチャもそれに追いつきました。

L1命令キャッシュサイズが半減 引き換えに連想度を2倍

L1命令キャッシュは第2世代と比較し後退しています。それまで64KBあったL1命令キャッシュサイズが32KBまで半減しています。なぜ半減させたかというとuOP用のキャッシュサイズを2,000エントリから4,000エントリまで拡大させるためです。ダイ面積の制約のため、uOP用のキャッシュサイズを増やすためにはL1命令キャッシュサイズを減らさざるを得なかったことになります。以下の図でもわかるようにI-Cacheが32KB 8wayになっていることがわかります。

しかし単にL1命令キャッシュサイズを減らしただけだと性能低下が著しくなってしまいます。そこでその性能低下をある程度抑制するためにL1命令キャッシュの連想度を第2世代の4-wayから8-wayに倍増させました。

連想度というのはダイレクトマップの初歩的なキャッシュと、実装が難しいフルアソシアティブキャッシュの中間にあたるセットアソシアティブキャッシュの「ブロック重複数」です。

セットアソシアティブキャッシュではブロックが衝突した場合でもキャッシュできるように連想度が2以上になっています。連想度4ならブロックに入りたいライン(64B)が4つ発生しても格納することができます。今回の第3世代RyzenのZenアーキテクチャではL1命令キャッシュが8-wayになっているので連想度8です。

しかしキャッシュサイズ2倍にして連想度を半減するのと、キャッシュサイズを1/2にして連想度を2倍にするのでどちらが有利かと言えば前者です。

もしキャッシュキャッシュサイズを1/2にしても連想度を2倍にすればキャッシュの性能が落ちないと仮定してしまうと、キャッシュサイズ2KBの128-wayフルアソシアティブキャッシュと、64KBの4-wayセットアソシアティブキャッシュの性能が同程度ということになってしまいます。たとえフルアソシアティブであってもキャッシュサイズたった2KBでは不利になってしまうのは明らかです。

L3キャッシュレイテンシが40サイクルに増加 以前は35サイクル

IPC向上を狙うために今回AMDが一番注力したのがこのL3キャッシュです。L3キャッシュまわりはAMD Ryzenのコンプレックスでした。

RyzenではL3キャッシュミスが発生すると多大キャッシュミス・ペナルティが発生してしまい数百クロックのレイテンシが発生します。この間パイプラインは停止し後続のLoad命令が次のステージに進めず動作しません。Load命令が滞るとそのデータを必要とする演算命令も実行できず(データハザード)、結果的にIPCが大きく悪化します。

そこで考えだした妥協案がこの「L3キャッシュサイズ倍増」です。L3キャッシュサイズを2倍にすればL3キャッシュミスが減少しパイプラインストールも減るだろうということです。しかしこれはその場しのぎの対策であり、以上の問題を根本的に解決するには「L3キャッシュミス時の数百サイクルレベルの多大なペナルティを減らす」必要があります。これは次の項目で解説します。

L3キャッシュサイズを倍増させた引き換えとして新たに発生した問題がL3キャッシュヒット時のレイテンシが増加したことです。第1世代Ryzen(Zen),第2世代Ryzen(Zen+)では35サイクルだったレイテンシが第3世代Ryzen(Zen2)では40サイクルまで増加しました。

キャッシュサイズを大きくするとレイテンシが増加するのはAMDのみならずIntelも直面する問題です。コンピュータアーキテクチャ分野では様々な「トレードオフ」が存在しますが、このキャッシュサイズとレイテンシも有名なトレードオフのうちの一つです。メモリやキャッシュを含めた記憶装置というのは「大きいほど遅くなる」法則があります。「小さいということは高速」「大きいということは遅い」というものです。そのためコンピュータアーキテクチャでは速いものから「レジスタ」「L1キャッシュ」「L2キャッシュ」「L3キャッシュ」「メモリ(主記憶)」「ストレージ(補助記憶:SSDやHDD等)」のように重ね合わせて記憶階層を構築しています。当然ながら上にいけばいくほど小容量(高速)、下位に行けば行くほど大容量(低速)になります。

つまりL3キャッシュの容量を増やしたことでレイテンシが増加してしまうのは「変えることのできない根本的原理」です。このトレードオフがありながらもAMDは「レイテンシが増加してもL3キャッシュを増やす必要がある」と判断したことになります。

しかしIntelは同サイズのキャッシュで25サイクルのレイテンシを実現していることから、同じキャッシュサイズ同士で比べてもAMDとIntelの技術力に開きがあります。

L3キャッシュミス時のレイテンシ数100サイクルを短縮するための抜本的解決を先送り L3キャッシュ倍増でとりあえず対応

Intel CoreではL3キャッシュがミスしても急激にレイテンシが増加することはありません。しかし第3世代Ryzenでは16MBのL3キャッシュサイズを超えるデータを扱うとそれまで40サイクルだったレイテンシが一気に数100サイクルまで上昇してしまいます。

Intel Coreの場合、L3キャッシュにヒットするデータサイズなら25サイクル以下のレイテンシで済みます。そしてL3キャッシュに収まらないほどの大きさのデータを扱ってもレイテンシは50サイクル、75サイクルとデータサイズに比例して少しずつ増加していくだけに留まっています。急激に数100サイクルまで悪化することがないのがIntel Coreです。

本来はこの「L3キャッシュミス時の莫大なペナルティ」を解決して欲しいところでしたが、今回の第3世代Ryzen Zen2アーキテクチャでは「棚上げ」することになりました。L3キャッシュサイズを倍増させて、できるだけL3キャッシュミスが発生しない方策を採ったということです。しかしL3キャッシュ16MBに比べて一般的なメモリ容量は16GB~64GBもあります。L3キャッシュミスは頻繁に発生する事象です。根本的に上記の問題を解決するならばL3キャッシュミス時のペナルティ削減に注力すべきでしたが、それは次世代移行に先送りされました。

4コアのCCX×2構成は変更無し 8コアのCCX×1構成なら大きく性能向上できていた

そして今回のZen2アーキテクチャでも残念だったのがZen,Zen+に続いて再び4コアのCCX×2の構成になってしまったことです。

8コアのCCX×1でL3キャッシュを共有させるのがベストなのはAMDも理解していますが、技術的にそれが実現できなかったことになります。

Ryzenでは1枚のダイあたりに2つのCCXが存在します。CCXの定義は「L3キャッシュを共有する物理コアの集合」です。CCXごとにL3キャッシュが存在するため、同じダイ上に配置されたスレッドであっても別のCCXに再配置されてしまうとL3キャッシュミスになり多大なペナルティレイテンシが発生し、結果パイプラインがストールすることでIPCが悪化するのがRyzen最大の弱点でした。

つまり同じダイであっても、先程までCCX0で実行されていたスレッドがOSによる次のスケジューリングでCCX1に割当てられてしまうとキャッシュミスになってしまいます。せっかくCCX0のL3キャッシュにはデータが載っているのに無駄なレイテンシがかかります。

この点、8コアごとにキャッシュを共有しているIntel CoreよりRyzen(Zen2)が劣っています。Intel Coreだと8コアのうちどこにスレッドがスケジューリングされてもキャッシュミスにはなりません。

ただしこのRyzenの瑕疵はWindows10のスケジューリングアルゴリズムの改良である程度解消されます。本来はOS側はCPU内部のアーキテクチャを意識せずに済む透過性(transparency)があることを前提にスケジューリングするのですが、今回はあえてRyzen内部のアーキテクチャを感知(awareness)することで高速化をはかるアプローチです。

しかし1つのCCXを1つのプロセスが独占することは組込みシステムでないと難しいです。Windows10ではそのようなスケジューリングを保証(guarantee)ではなくベストエフォートで実行するので、Windows10で動いているアプリケーションが多いと同じCCXに再割当てされる確率は下がって別のCCXに割り当てられてしまう確率が上がり、結果的に従来のようにL3キャッシュミスによる性能低下が発生します。

この問題を根本的に解決するために必要なことは、ダイ上のCCXを4コア単位ではなく8コア単位にして、8コア全てで1つのL3キャッシュを共有できるようにすることです。

まとめ:第3世代Ryzenの主な敗因は動作クロックが殆ど上昇しなかったから

Zen2アーキテクチャを採用した第3世代Ryzen 3000シリーズは2019年5月27日に発表されました。

それに先立つ2018年の年末頃から海外のリークサイトから第3世代Ryzenのスペック情報が発信されていました。

その最たるものだったのは「Ryzen 9 3850Xなる16コアのCPUが存在し動作クロックは4.3GHz~5.1GHzに届く」というものです。それらは全て海外AdoredTVの偽リークをソースとしたもので、2019年6月に第3世代Ryzenが正式発表されて「実際のスペックは相当低い」ことが明らかになるまでそのリークがあたかも公式発表かのように使われ続けていました。特にブーストクロックが5.1GHzに届くというのは魅力的だったらしく、AMDユーザの間では「最大クロック5GHzの大台達成は堅い」というコンセンサスがあったくらいでした。

しかし実際に発表されたものはフラッグシップモデルのRyzen 9 3950Xですら動作クロックはたったの3.5GHz~4.7GHzでした。ベースクロックが非常に低いだけでなくブーストクロックが5GHzの大台に届かなかったのです。これは「Ryzen 7 2800Xが発売される」という情報が拡散されていた2018年よりも期待はずれのリーク報道でした。

Ryzen 9 3950Xは台湾TSMC社が製造し、7nmプロセスを採用したチップです。これは第1世代Ryzenで採用されたGlobalFoundries14nmの「2倍」の集積度を持つことになります。

まず重要なことは、Intelの14nmとAMDの14nmでカタログスペックでは同じ「14nm」でも、Intelの14nmプロセスのほうが高い集積度を達成しているという事実です。14nmプロセス時点でも既にIntelとAMD(GlobalFoundries)で集積度に差がついていたことが、1コアあたりの性能でRyzenが負けている上にRyzenは内蔵グラフィックス(iGPU)を削ってチップ面積を確保しなければならない要因でした。それにより、Intelでは14nmプロセスで内蔵グラフィクスを搭載しながらも8コアを実現していますが、Ryzenは14nmプロセスで内蔵グラフィクスを削って8コアを実現しなければならない結果となりました。

さらには少し微細化が進んでGlobalFoundries12nmプロセスを採用した第2世代Ryzen 7 2700Xでも最大で8コアしか搭載できませんでした。しかも第1世代と同じように内蔵グラフィックス(iGPU)を搭載するスペースを作れず、iGPU非搭載品です。

一方でIntel14nmプロセスを採用したCore i9 9900K,Core i7 9700Kは8コアを搭載しつつもiGPUを搭載するスペースを確保し、グラボなしでも4K@60fpsトリプルディスプレイ出力を可能にしています。つまりAMD12nmプロセスと、Intel14nmプロセスの時点でも、AMDの集積度はIntelよりも劣っていたということです。

第3世代Ryzen最高峰のRyzen 9 3950Xでも最大動作クロックはたったの4.7GHzに

Ryzenを買ってしまったユーザがひたすら気にしていたのは、「RyzenはIntel Coreよりも動作クロックが低く1コアあたりの性能が低い」というものです。

2017年に第1世代Ryzenがリリースされたのとほぼ同時にPUBGというFPSゲームが不幸にも大流行し、PUBGでは1コアあたりの性能の高さがフレームレートを伸ばす上で重要なため、1コアあたりの性能が低いRyzenではフレームレートが低くなることが明らかになってしまいました。

そのためゲームのフレームレート性能を重視するプロゲーマーの間でRyzenは全くといっていいほど採用されてきませんでした。

プロゲーマーではなくTwitchやYouTubeで配信する著名ストリーマーからも採用されませんでした。ゲームと配信を同時に1台のPCで実施するならコア数が多いRyzenが有利になるはずですが、コア数の多さが有利になるのはあくまでも動画エンコード部分だけであって、肝心のゲーム本体のフレームレートが伸びなくては意味がないのでRyzenが採用されないという憂き目に遭ってきました。

そして2019年6月に第3世代Ryzenが正式発表されるまでの間、「次の第3世代Ryzenでは最大動作クロックが5.1GHzになって1コアあたりの性能が上がる」といった報道が海外のAdoredTVでリークされ、国内のAMDユーザもそれを心待ちにしていました。

しかし実際に正式発表された第3世代Ryzen 9 3950Xでさえ動作クロック上限4.7GHzであり既にIntel Coreが2018年の時点でも達成していた5.0GHzを達成できませんでした。Ryzenユーザは「10nmプロセスのIntel Coreは動作クロックが伸びないだろう」と予測をしていましたが、それがまさかのブーメランとなって「7nmプロセスのAMD Ryzenでは動作クロックが伸びない」という結果になってしまったわけです。

しかもコア数が少ない6コアのRyzen 5 3600X、8コアのRyzen 9 3800Xでもベースクロック4GHzに届かなかったのは残念なところです。

8コア16スレッドのRyzen 7 3800Xでも動作クロック最大4.5GHz止まり

第3世代Ryzenで8コアの製品は2つラインナップされています。そのうちより高性能なのはRyzen 7 3800Xであり、動作クロックは3.9GHz~4.6GHzです。2019年発売のCPUでもその程度になってしまいました。

一方で2018年発売のCore i9 9900Kは全コア同時動作でも4.7GHzまで動作クロックが定格で上がるようになっています。これはオーバークロックを手動でやらなくても定格範囲内で自動的に8コア全てが同時に4.7GHzになります。

仮にRyzen 7 3800Xが全コア同時4.6GHzに対応しているとしても、1年も前に発売されたIntel Coreよりも低い動作クロックになってしまったことを意味します。

しかも実際はRyzen 7 3800Xの最高4.6GHzという動作クロックは全コア同時ではなく一部のコアだけが4.6GHzに届くというだけです。

以上のような事情から、フラッグシップモデルであるRyzen 9 3950Xをもってしても、第10世代Intel Coreどころか第9世代Intel Coreにすら打ち負かされてしまったことになります。