ニュース

AMD次世代CPUコア「Zen 6」公開!Zen 5の最適化版で効くのはL3キャッシュ

Zen 6のアーキテクチャ概要(出典:“Zen 6” Architectural Advancements、AMD)

 AMDは11月10日(現地時間、日本時間11月11日未明)に報道発表を行ない、同社の次世代データセンター向けCPU「第6世代EPYC」(開発コードネーム:Venice、ヴェニス)の詳細を公表するとともに、最初の製品となる「Venice SP7」の出荷を開始したと明らかにした。AMDは7月に開催した「Advancing AI」でVeniceの概要を発表しており、今回はさらに技術的な詳細に踏み込んだ。

 その中でAMDは、VeniceのCPUアーキテクチャとなる「Zen 6」(ゼンシックス)の技術的な詳細を公開した。Zen 6には、通常版のZen 6と効率重視のZen 6cの2つのバリエーションが用意されている。

 前者は汎用向けで、高い周波数と高いシングルスレッド性能に最適化されている。後者は密度重視の設計で、多数のコアによるマルチスレッド性能に最適化されている。

基本的にはZen 5マイクロアーキテクチャの最適化版となるZen 6

Zen 6マイクロアーキテクチャ(出典:“Zen 6” Architectural Advancements、AMD)

 AMDが発表したZen 6のアーキテクチャ概要を読み解くと、Zen 6は基本的にZen 5の改良版となる。以下の表は、AMDの資料をもとにまとめたZen 4、Zen 5、Zen 6のマイクロアーキテクチャ(ハードウェアの仕様)上の違いだ。

【表1】Zen 4、Zen 5、Zen 6(AMDの資料より筆者作成)
Zen 4Zen 5Zen 6
L1命令/コア32KB/8way32KB/8way、32Bフェッチ×232KB/8way、32Bフェッチ×2
分岐予測2テイクン2テイクン、2アヘッド、TAGE2テイクン、2アヘッド、TAGE
デコード4ワイド4ワイド×24ワイド×2
Opキャッシュー6K Ops(インスト/フューズ)、6ワイド×26.75K Ops、9ワイド×2
ディスパッチ6ワイド8ワイド8ワイド
整数演算リネームー8ワイド8ワイド
整数演算スケジューラ42(統合型)6(6×24エントリー)
整数演算GPレジスタ224エントリー64b/240エントリー64b/352エントリー
整数演算ALU(Mul)/AGU4ALU/3AGU6ALU(3Mul)/4AGU6ALU(2Mul)/4AGU
FPU/NSQ64エントリー96エントリー96エントリー
FPU/リネーム4ワイド6ワイド6ワイド
FPU/スケジューラ23×32エントリー3×60エントリー
FPU/レジスタ256b/192エントリー512b/384エントリー512b/384エントリー
FPU/演算器2ADD/2Mul/2ST2ADD/2Mul/2ST2ADD/2Mul/2ST
L1データ/コア32KB/8way48KB/12way、4リード/2ライト、64B フィル/64Bヴィクティム48KB/12way、4リード/2ライト、64B フィル/64Bヴィクティム
L2/コア1MB/8way1MB/16way1MB/16way
プロセスノードTSMC 5nmTSMC 4/3nmTSMC 2nm
Zen 6のフロントエンド(出典:“Zen 6” Architectural Advancements、AMD)

 これを見れば明らかなように、Zen 6は基本的にZen 5のアップデート版になる。Zen 4からZen 5への移行では、Micro-Opsキューのディスパッチが6ワイドから8ワイドに拡張され、整数演算の演算器も増えた(ALUが4から6に、AGUが3から4に)。浮動小数点演算器(FPU)もレジスタが256bitから512bitに強化され、AVX-512の演算を1クロックサイクルで行なえるようになった。さらに、データのロード/ストア性能に大きく影響するL1データキャッシュが32KBから48KBに増えるなど大きな強化点があり、アーキテクチャ的には大きなジャンプだった。

整数演算器(出典:“Zen 6” Architectural Advancements、AMD)
バックエンド(出典:“Zen 6” Architectural Advancements、AMD)

 それに対して、Zen 5とZen 6のマイクロアーキテクチャを比べると、細かな調整は入っているものの、基本的な演算器の構成は同じだ。Micro-Opsキューのディスパッチは8ワイドのままで、整数演算のリネーム、ALU/AGUなどのユニット数も変わらない。浮動小数点演算器のリネームや演算器などはZen 5とまったく同じだ。

 改良点としては、フロントエンドのOpキャッシュがZen 5の6K Ops/6ワイド×2から、Zen 6では6.75K Ops/9ワイド×2に強化されている。また、整数演算器のスケジューラは、Zen 5ではZen 4の4基から2基に減らされていたが(ユニット数は減ったものの統合が進み、性能は上がっていた)、Zen 6では24エントリーのスケジューラが6基に増やされている。

 Zen 5のスケジューラのエントリー数が不明なため比較はできないが、エントリー数の多い2基よりも、1基あたりのエントリー数は少なくても基数の多いほうが有利と判断されたと考えられる。同様に、浮動小数点ユニットのスケジューラは3基で変わらないが、エントリー数は32から60に増やされている。

 このように、Zen 6のマイクロアーキテクチャは基本的にZen 5の最適化版だといえる。

浮動小数点演算のISA周りでの改良で性能強化へ

浮動小数点演算の拡張(出典:“Zen 6” Architectural Advancements、AMD)

 ただし、浮動小数点演算器のソフトウェア面での改良は加えられている。たとえば、Zen 5ではFP16の演算は変換してから浮動小数点演算器に入れていたが、Zen 6ではAVX-512命令でFP16の演算を行なえるようになり、効率が大幅に改善される。ほかにも、VNNI命令でINT8を演算する場合、Zen 5では2パイプでの実行だったのがZen 6では4パイプに強化されており、演算効率が大きく向上する。

Zen 6でのISAの追加(出典:“Zen 6” Architectural Advancements、AMD)

 また、Zen 6世代ではAMD独自のISAが追加されている。前出のFP16のサポートやVNNI INT8に関する命令、BMM(Bit Matrix Multiply)命令、カーネル/仮想化向けのFRED、PML、PLZAなどの命令、Confidential Computing向けのSEV-SNPなどの拡張が行なわれているほか、メモリのプロファイラーやIBSバッファリングなどのモニタリング系の命令も追加されている。

 FP16のサポートやVNNI INT8などはAMD独自の命令となるが、仮想化やConfidential Computingなどは元々AMD独自の命令セットとして追加されていたものなので、その強化版だと考えられる。

Zen 6とZen 6cの違いはターゲット周波数のみ

Zen 6のキャッシュ階層(出典:“Zen 6” Architectural Advancements、AMD)

 AMDはZen 4世代で、末尾に「c」が付く電力効率重視版のZen 4cを導入し、データセンター向けのコア数・密度重視の製品に投入してきた。Zen 5世代でもZen 5cを導入し、データセンター向けだけでなく、Ryzen AI 300/400シリーズなどクライアントPC向けのマルチスレッド性能重視の製品にも採用している。

 「c」の付かない無印とcの違いは、基本的には2つある。最大の違いはCPUコアあたりのL3キャッシュで、無印が4MBであるのに対して、cは2MBになっている。もう1つはプロセスノードへの実装で、無印は高周波数を意識した実装になっているのに対して、cは複数のコアを1つのダイに集約するため周波数を抑え気味に調整している。

Zen 5/5cとZen 6/6cの違い(出典:“Zen 6” Architectural Advancements、AMD)

 それに対して、Zen 6世代ではCPUコアあたりのL3キャッシュが無印もcも4MBになった。つまり両者の外形上の違いはなくなり、無印もcも基本的にまったく同じマイクロアーキテクチャになっている。

 ただし、プロセスノードへの実装時に高周波数を重視するか、密度を重視して周波数を抑えるかという違いは依然として残り、Zen 6とZen 6cの違いはそこにある。

 Zen 6では、チップレットとして複数実装されるCPUダイ(CCD、Core Complex Die)1つに12コアを実装できるようになった。これはZen 5に比べて4コア多い。8つのCCDを実装できるパッケージであれば、最大96コアを1つのパッケージ上に統合できる。従来のZen 5ではパッケージあたり最大64コアだったので、32コア分増えたことになる。

 Zen 6cでは、CCD 1つあたり32コアまで詰め込める。これはZen 5cの倍で、コアあたりのL3キャッシュも4MBに増えたため、CCDあたりのL3キャッシュはZen 5cの4倍となる128MBに達する(CCDのコア数が倍、コアあたりのL3キャッシュも倍になるため)。

 ただし、CCD 1つあたりのダイサイズが大きくなるため、1つのパッケージに搭載できるダイ数は減る(Zen 5cでは最大12基、Zen 6cでは8基)。それでも、Zen 5cでは最大192コア構成だったのが、Zen 6cでは256コアとなる。

Zen 5cとZen 6cを同じクロック周波数・同じコア数で比較した性能(出典:“Zen 6” Architectural Advancements、AMD)

 AMDによれば、Zen 5cとZen 6cを同じ周波数・同じコア数(16コア)で比較した場合、大企業向けのソフトウェアで最大20%、AIワークロードで最大31%性能が向上するという。L3キャッシュの容量が増えたことが、性能強化に大きく寄与していることがうかがえる。