AMDのZen 6ファミリー:ビーストに餌を与える
AMD's Zen 6 Family: Feeding the Beast (chipsandcheese.com)
要約
AMDの次世代Zen 6 CPUコアファミリーに関する分析記事です。Zen 6はZen 5からの自然な進化を遂げつつも、ブランチ予測、命令フェッチ、実行エンジンのスループットが改善されています。特に、Zen 6(高クロック向け)とZen 6c(レイテンシ耐性向け)の間でアウトオブオーダーエンジンとキャッシュ階層に違いが見られ、ワークロードに応じた特化が進んでいます。性能推定では、Zen 5からの世代的な向上を示しており、両コアデザインとも有望な結果を示しています。
全文翻訳
AMDのZen 6ファミリー:ビーストに餌を与える
インターネットの皆さん、こんにちは。
今日はAMDの次世代Zen 6 CPUコアファミリーを見ていきます。Zen 5からの変更点と、Zen 6とZen 6cの違いがAMDのマイクロアーキテクチャへのアプローチについて何を教えてくれるのかを探ります。
皆さんが楽しんでくれることを願っています!
概要
鳥瞰図で見ると、Zen 6はZen 5の自然な進化であり、多くのOoO(Out-of-Order)構造の拡張と、コア全体に見られる反復的な改善が含まれています。
しかし、深く掘り下げると異なるストーリーが見えてきます。AMDはコアのいくつかの部分を大幅に再設計しており、これはZen 1からZen 2への変更を思い出させます。
[
[画像]
](https://substackcdn.com/image/fetch/$s_!R25V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff0ea2d4-ea2d-440b-ad51-1bc99a695511_2022x1382.png)
高レベルでは、AMDが整数スケジューラに行った変更が際立っており、Zen 3やZen 4を彷彿とさせるレイアウトに戻っています。
ブランチ予測
Zen 5は、私たちが測定した中で最高の方向予測器を持っており、Zen 6はその同じ方向予測器を基盤としているようです。
[
[画像]
](https://substackcdn.com/image/fetch/$s_!LKuF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91946bdf-c5e2-4c04-b8f1-b332854c24d7_1365x762.webp)
[
[画像]
](https://substackcdn.com/image/fetch/$s_!P8g0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9971593c-59b3-49bf-b0e3-37a2c468992e_1300x625.png)
私たちが確認した最も大きな違いは、方向予測器が飽和したときに何が起こるかという点です。両コアともほぼ同じ場所でその壁にぶつかり、それを超えると予測器はランダムなデータを推測することになります。そのため、ブランチごとの時間は、コアが誤った推測から回復するのにかかる時間を主に反映します。
そのプラトーは、Zen 5ではブランチごとに約3.5〜4 nsの追加時間ですが、Zen 6では約3〜3.5 nsです。したがって、Zen 6は間違ったブランチごとに支払うコストが低くなっており、これはAMDがZen 5と比較してブランチ誤予測のレイテンシを削減したことを示唆しています。
Zen 6は、コアが1サイクルあたり2つのブランチを実行する能力も向上させており、Zen 6はL1命令キャッシュ内で1サイクルあたり2つのブランチを実行できます。
[
[画像]
](https://substackcdn.com/image/fetch/$s_!oG7B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92cb7d6d-0772-42c7-9200-b5c2dd4c93bb_977x526.png)
フットプリントがL1iを超えると、BTBの残りの部分では1サイクルあたり1つのブランチに低下しますが、L2 BTBでは4サイクルあたり1つのブランチまで進む64Bテストは例外です。
Zen 6のBTBをZen 5と比較すると、Zen 6は容量を増強するよりもBTBの速度向上に焦点を当てているようです。
[
[画像]
](https://substackcdn.com/image/fetch/$s_!24kn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cac7812-c368-4eba-8911-f8e31f3e59dd_2307x917.png)
Zen 6のブランチ予測ユニットの精度はZen 5のそれと非常に似ていますが、より高速でもあります。これは、Zen 5がすでに非常に正確なブランチ予測器を持っていたことを考慮すると良いことです。
命令フェッチ
Zen 6は、Zen 5が導入したのと同じデュアルデコードクラスターアーキテクチャを引き継いでいますが、Zen 5では単一スレッドが効果的に使用できるデコードクラスターは1つだけだったのに対し、Zen 6では単一スレッドが両方のデコードクラスターを使用できるようになりました。
[
[画像]
](https://substackcdn.com/image/fetch/$s_!0X5u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F362e75a6-f958-4fde-be89-f692cabd76d0_1417x709.png)
L1iの外では、命令側のことに関しては、Zen 6はZen 5の動作と非常によく似ています。
実行エンジン
Zen 6の実行エンジンは、全体的にZen 5と非常によく似ていますが、注意すべき重要な違いがいくつかあります。
[
[画像]
](https://substackcdn.com/image/fetch/$s_!O9I-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff142a3ba-44cd-4928-a9b3-bbd87d6c2d22_1365x1184.webp)
整数側では、Zen 6はZen 4のNOPペアリング動作を復活させ、1サイクルあたり最大16個のNOPをリタイアします。Zen 6は、Zen 5の5.25に対して同じ6つのALUで1サイクルあたり5.96個の64ビット加算を維持し、単純な整数命令の理論上のピークスループットにZen 5よりも近づいています。
AMDは整数乗算ユニットの数を3から2に減らし、PDEPおよびPEXTのスループットも1サイクルあたり3命令から2命令に低下させました。AMDによると、Zen 5の3番目の整数乗算ユニットは、その面積コストに見合う価値がありませんでした。
[
[画像]
](https://substackcdn.com/image/fetch/$s_!e2zc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dfd7d9a-3bee-408d-b28d-ed8cd3be6bc9_1418x738.png)
ベクトル側では、浮動小数点ユニットは変更されておらず、Zen 6は依然として1サイクルあたり2つの512ビットFADD、FMUL、またはFMAを処理します。変更点はVNNIにあり、Zen 6はユニット数を2から4に倍増させ、512ビットVNNIテストは1.99から3.88命令/サイクルに向上し、Zen 6cもそれに匹敵します。VNNI命令は、量子化推論の内部ループの計算や、ビデオコーデックがビデオフィルターに使用する操作に役立ちます。
他の注目すべき変更点に移ると、Zen 5はすでに1サイクルあたり4つのベクトルロードを実行できましたが、私たちのテストでは、256ビットまたは512ビットロードのいずれであっても、そのうち2つしかベクトルロードにしか使用できませんでした。Zen 6は、両コアで256ビットロードを1サイクルあたり4つに引き上げ、512ビットロードは2つのままにしています。これにより、出荷されているベクトルコードのほとんどが依然としてAVX1/2をターゲットとしているため、両方の幅で同じ128バイト/サイクルに達します。
アウトオブオーダーエンジン:Zen 6とZen 6cが分岐する場所
過去には、クラシックコアとデンコアのアーキテクチャ上の違いは、実質的に機能的に同一であり、最大の変更点はCCDあたりのコア数とコアあたりのL3キャッシュ量でした。Zen 6ファミリーでは、それが変わりました。
コア内部から始めると、変更はマイクロオペレーションディスパッチの後で発生し、ロードキューの後で終わるようです。
[画像: https://cdn.discordapp.com/attachments/809099718189121536/1569617916876300339/image.png?ex=6af41c19&is=6af2ca99&hm=3d91e83676a266510651e1a2abbc89490bbe416b4b80ad11944d6f8f744ebb05&]
Zen 6とZen 6cの主な違いは、アウトオブオーダー構造の容量にあります。これらの構造のいくつかはZen 6cの方が大きく、Zen 6よりも多くの作業をインフライトで保持し、より多くのレイテンシを吸収できます。リオーダバッファは576から640エントリに、整数レジスタファイルは288から352に、ベクトルスケジューラは138から180に、ロードキューは280から330に増加します。
[
[画像]
](https://substackcdn.com/image/fetch/$s_!_Lrh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1159fcc-3ba0-4ab3-957a-b444fff2038c_2032x1382.png)
これらの違いは、AMDが2つの設計を専門化していることを示唆しています。Zen 6は高クロック向けに調整されているように見えますが、Zen 6cは比較的高いメモリレイテンシを許容する容量が多くなっています。
[
[画像]
](https://substackcdn.com/image/fetch/$s_!Tce3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631c910d-0976-4d8a-9f7c-16188456e5cc_2032x1382.png)
Zen 6とZen 6cはそれぞれ12コアおよび32コアのCCDを使用しますが、どちらもコアあたり4MBのL3キャッシュを提供します。これにより、12コアCCDは48MBのL3キャッシュ、32コアCCDは128MBのL3キャッシュを持つことになります。
[
[画像]
](https://substackcdn.com/image/fetch/$s_!naz1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33907f2-c445-46cd-b7d3-942814d9da4a_1417x768.png)
[
[画像]
](https://substackcdn.com/image/fetch/$s_!noA_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd46fd82d-44d2-426b-86fa-bc7e865729ef_1417x767.png)
L3レイテンシは、Zen 5の約47サイクルからZen 6では55サイクル、Zen 6cでは66サイクルに増加しています。より大きなキャッシュとより多くのメッシュストップがおそらくこの増加に寄与しています。ナノ秒単位では、Zen 6の高いクロックがこの増加のほとんどを隠しており、Zen 5ベースのEPYC 9355Pの10.3 nsに対して10.7 nsですが、Zen 6cの低いクロックとより大きなCCXは16.4 nsになります。
[
[画像]
](https://substackcdn.com/image/fetch/$s_!ZqTi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85e4f4a3-ad42-4e77-aa6e-6d8612854e66_1417x708.png)
[
[画像]
](https://substackcdn.com/image/fetch/$s_!AsrM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69556c91-5e6a-4b60-8a02-1b667633b8b2_1418x709.png)
帯域幅に移ると、Zen 6はZen 5の奇妙なL2帯域幅の挙動を修正していることがわかります。Zen 5では、コアはL2容量のほとんどで約42バイト/サイクルしか引き出せませんでしたが、Zen 6ではリードパスが確実に1サイクルあたり64バイトを提供します。キャッシュ階層の残りは、サイクルあたりの帯域幅に関してほとんど変更されていません。
ロード/ストア
ストア・トゥ・ロード・フォワーディングは、Zen 5から変更されていないようで、Zen 6とZen 6cの挙動が再び統一される場所です。
[
[画像]
](https://substackcdn.com/image/fetch/$s_!QoPw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e67dfc-f241-4f8f-8adc-621a4f73a3b1_1365x407.webp)
EPYC 9686F (Zen 6) STLFテスト
[
[画像]
](https://substackcdn.com/image/fetch/$s_!Cwp0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10a0e23e-f215-4434-b5be-b47e239850c3_1536x458.webp)
EPYC 9996 (Zen 6c) STLFテスト
[
[画像]
](https://substackcdn.com/image/fetch/$s_!ZGc8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb80deba-7b37-43c3-a0a8-a30c8fbc768a_2718x1321.webp)
Zen 5 STLFテスト
同じアドレスからの32ビットロードと64ビットストアは、実質的にゼロレイテンシで完了し、Zen 6は1サイクルあたり2つの依存ストア・ロードペアを処理できます。ストア内に完全に含まれるロードはアライメントに関係なく7サイクルで完了し、部分的なオーバーラップは14サイクルかかります。これはZen 5と同じです。
SPEC CPU 2026 パフォーマンス
EPYC 9686Fは、私たちの推定単一スレッドSPEC CPU 2026結果の上位に位置しています。整数レートでは前世代のAMD最高級クライアントCPUであるRyzen 9 9950X3D2にほぼ匹敵し、浮動小数点レートではそれを上回ります。4.1 GHzで比較した場合、9686Fは9950X3D2よりも整数で約4%、浮動小数点では11%リードしていますが、X3Dパーツははるかに大きなL3を持っています。
[
[画像: https://media.discordapp.net/attachments/809099718189121536/1569240935466803300/image.png?ex=6af2bd02&is=6af16b82&hm=1233642c0815dc5a6265c7be59547965aa82df42f26fcb8e10f63055f641f2d8&=&format=webp&quality=lossless&width=2616&height=1359
](https://substackcdn.com/image/fetch/$s_!GPq_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7e2762f-c9ce-4fd2-ad96-5209f2b7d9b7_1744x906.webp)
EPYC 9996も決して劣っていません。より低いクロックで動作し、コア数が4倍であるにもかかわらず、単一スレッドパフォーマンスでは前世代のEPYC 9575Fにほぼ匹敵します。また、整数ではNVIDIAのVeraをわずかに上回り、浮動小数点では約20%リードしています。
[
[画像]
](https://substackcdn.com/image/fetch/$s_!Sxqq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F876774f6-7ec0-4b2e-bedf-338b28bfd808_2302x920.png)
EPYC 9686Fはほぼすべてのサブテストでリードしており、両方のスイートでEPYC 9996よりも約18% aheadで終了しています。整数では6.20対5.25、浮動小数点では10.6対8.99を記録し、714.cpython、766.femflow、772.marianで最大のリードを示しています。
Zen 5ベースのEPYC 9575Fと比較して、9996は整数で5.25対5.13、浮動小数点では8.99対9.01を記録しており、約900 MHz低速で動作しています。9996はまた、9686Fのより高いクロックがアドバンテージにならない2つのサブテスト、721.gccと765.romsで9686Fを上回っています。
[画像: https://media.discordapp.net/attachments/1329409886676848660/1569271491009450104/image.png?ex=6af2d977&is=6af187f7&hm=0f64a15becf9976ef3796d3ab833af8658dac56c242395250dbeb23f8a041424&=&format=webp&quality=lossless&width=2997&height=612]
2つのZen 6チップのパイプラインスロットのトップダウンブレークダウンは、9686Fのリードがどこから来るかを示しています。整数レートのプロファイルは、コアバウンドなサブテストではほぼ同一に見えます。750.sealcrypto、710.omnetpp、735.gem5、753.ns3では、リタイアするスロットが両チップでほぼ同じシェアを占めており、1%未満の違いです。
メモリヘビーなサブテストでは、より大きなギャップが見られます。EPYC 9996からEPYC 9686Fへの移行では、バックエンドメモリのストールは729.abcで37.9%から50.0%に、723.llvmで19.0%から34.1%に、708.sqliteで24.8%から33.2%に増加します。リタイアするスロットのシェアはそれに応じて低下します。Zen 6cの低いクロックとより大きな共有L3キャッシュは、メモリストールシェアの低さを説明する可能性があります。
[
[画像: https://media.discordapp.net/attachments/1329409886676848660/1569271555379175535/image.png?ex=6af2d986&is=6af18806&hm=cdc4d18e51b664a0098b0958ffe6992b13c9f835fa23072ae98cc20e3f1f9375&=&format=webp&quality=lossless&width=2997&height=870
](https://substackcdn.com/image/fetch/$s_!a7Y6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b61755-8643-479d-bac2-83a81c1582e1_2997x870.webp)
浮動小数点プロファイルは、ほとんどのサブテストで同様に見えます。731.astcenc、772.marian、767.nestでのリタイアシェアは、約1%ポイント以下の差であり、709.cactusは両チップでフロントエンド帯域幅で半分以上のスロットをストールしています。
より大きなギャップは再びメモリヘビーなサブテストに現れます。EPYC 9996からEPYC 9686Fへの移行では、バックエンドメモリのストールは765.romsでスロットの42.5%から55.3%に、782.lbmで17.8%から33.8%に、749.fotonik3dで60.9%から67.6%に増加します。これらは9686Fの高いクロックが最も効果を発揮しないテストでもあります。9996に765.romsで遅れを取り、749.fotonik3dでほぼ同等、782.lbmでは約11%リードしていますが、クロックは最大約29%高いにもかかわらずです。
[
[画像]
](https://substackcdn.com/image/fetch/$s_!q4cv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a4638d3-0fca-4cbe-a9c8-6e170555a4d1_2935x863.png)
9686Fを9996に合わせるために4.1 GHzで実行すると、クロックのアドバンテージがなくなります。全体的な状況は反転します。9686Fはそのクロックで4.92と8.64を記録し、Zen 6cはクロックあたり整数で約6.7%、浮動小数点では4%上回ります。同じクロック速度では、Zen 6とZen 6cはコアバウンドな整数サブテストでほぼ同一に見えます。750.sealcryptoでは、リタイアするスロットはEPYC 9686Fで全体の67.3%を占めるのに対し、EPYC 9996では67.6%です。浮動小数点プロファイルも、マッチしたクロックでのいくつかのサブテストで同様に見えます。両チップとも、709.cactusではフロントエンド帯域幅で半分以上のパイプラインスロットをストールしています。リタイアシェアは722.palmと766.femflowで約2%ポイントの違いがあります。
9686Fは依然としてメモリでより多くのパイプラインスロットをストールしています。バックエンドメモリのストールは、765.romsで50.3%対9996の42.5%、782.lbmで24.9%対17.8%、749.fotonik3dで63.3%対60.9%を占めます。Zen 6cの128MB L3キャッシュは、Zen 6の48MBキャッシュよりもこれらのリクエストの多くに対応している可能性があり、メインメモリへのアクセスを減らしています。
最も明確な違いはフロントエンドレイテンシのストールにあり、これはコードベースが大きいサブテストで9686Fのシェアを大幅に増加させます。727.cppcheckでは、そのシェアは35.2%対9996の16.6%です。721.gccでは、25.8%対10.0%です。クロック速度が一致し、両方の設計が同じフロントエンドを共有している場合、これらのストールはキャッシュとメモリ階層の違いを最もよく反映している可能性が高いです。
[
[画像]
](https://substackcdn.com/image/fetch/$s_!l7sZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e773bb0-2977-4a0b-9a1c-ded7975bf1e8_2929x858.png)
浮動小数点プロファイルも、マッチしたクロックでのいくつかのサブテストで同様に見えます。両チップとも、709.cactusではフロントエンド帯域幅で半分以上のパイプラインスロットをストールしています。リタイアシェアは722.palmと766.femflowで約2%ポイントの違いがあります。
9686Fは依然としてメモリでより多くのパイプラインスロットをストールしています。バックエンドメモリのストールは、765.romsで50.3%対9996の42.5%、782.lbmで24.9%対17.8%、749.fotonik3dで63.3%対60.9%を占めます。Zen 6cの128MB L3キャッシュは、Zen 6の48MBキャッシュよりもこれらのリクエストの多くに対応している可能性があり、メインメモリへのアクセスを減らしています。
最終的な言葉
Zen 6ファミリーは、その前身に様々な点で改善を加えています。アップグレードされたフロントエンドにより、単一スレッドが両方のデコーダーを利用できるようになり、より高速なブランチ予測器はミスに対する寛容性を高め、すべてがより大きなOoO構造で結び付けられ、メモリのストールをより良く隠すことができます。これらすべてが組み合わさって、Zen 5からの世代的な向上をもたらします。
しかし、より興味深い変更は、Zen 6とZen 6cの間の分岐だと考えています。クラシックコアとデンコアは、アウトオブオーダーエンジン内で異なるようになり、Zen 6は高クロック向けに調整されているように見え、Zen 6cはレイテンシを吸収する容量を多く提供します。共有された基盤は依然として明確ですが、これらの違いにより、どちらを選択するかはワークロードの挙動に依存するようになります。
推定単一スレッドSPEC CPU 2026スコアによるパフォーマンス結果も有望です。EPYC 9686Fは、Zen 5ベースのEPYC 9575Fを整数で約21%、浮動小数点では18%上回っています。EPYC 9996は、約900 MHz低速で動作しているにもかかわらず、9575Fにほぼ匹敵しており、両方のコア設計にとって強力な結果です。
AMDのクラシック対デンスという問いへの答えは、かつては2つの密度で同じコアでしたが、Zen 6では、実行される場所に合わせて形状作られた2つのコアになりました。これにより、AMDがZen 7ファミリーで何をするのか、そして同じ基本的なコア設計のさらなる特化を見るのか、それとも設計の大幅な分岐を見るのか、疑問が残ります。