既報の通り、AMDは3D V-Cache搭載のEPYC(コード名:Milan-X)と、Radeon Instinct MI200シリーズを発表したが、この発表の最後でLisa Su CEOによる“One More Thing”、それとMicrosoftによるMilan-Xの詳細なベンチマークが公開されたので、こちらを補足の意味でご紹介したい。

スケーラビリティに重点を置いたZen4c

説明そのものはこちらから視聴が出来るが、Radeon Instinctの説明が終わった後で、では「今後のロードマップをご紹介しよう」と示したのがZen 4コアを利用する「Genoa」の話である(Photo01)。

  • Zen 4c

    Photo01:時間で言えば丁度32分のところ

このGENOAはTSMCの5nmプロセスで製造されるが、その5nmプロセスは7nmプロセスの製品と比較して2倍のトランジスタ密度、2倍の性能/消費電力比、そして1.25倍の性能を発揮する、としている(Photo02)。

  • Zen 4c

    Photo02:ここで言う“Multiple Products in Development”が色々意味深である

現状のEPYC同様に、複数のCCDと1つのIODから構成される構図に変わりは無い様だ(Photo03)。

  • Zen 4c

    Photo03:GENOAでは3つのダイが一塊になり、これが4グループ(合計12ダイ)搭載される。ダイあたり8コアと考えれば96コアなのでPhoto04と辻褄が合う

最大96コア構成で、DDR5メモリとPCIe 5.0/CXLに対応、さらにEnhanced Security Featureを搭載するといったあたりはまぁ想定の範囲であるが、やや想定外だったのはすでに特定顧客へのサンプル出荷を開始していたことで、量産および出荷は2022年を予定しているという話であった(Photo04)。

  • Zen 4c

    Photo04:もちろんTSMCは2020年からN5の量産を開始しているから、サンプル出荷が始まっても不思議ではないのだが。量産がやや遅めなのは検証の時間が必要なのと、当初のN5はAppleなどで殆ど生産枠が埋まっていたという事情もあってのことと思われる

もっと想定外だったのがZen 4cの発表である。Zen 4cはZen 4の派生型の様で、よりスケーラビリティに重点を置いたものになっているという(Photo05)。

  • Zen 4c

    Photo05:絶対性能よりも性能/消費電力比を改善とか、キャッシュをDensity-Optimized(つまり速度を犠牲にして容量を増加)というあたりは、Neoverseと完全に狙いが一緒だ

  • Zen 4c

    Photo06:コア数の関係までNeoverseそっくりである

このZen 4cコアは「BERGAMO」というコード名であるが、命令セットとソケットは完全に同一で、ただしこちらは最大128コアの製品が投入されるとしている。CCXそのものは8コアのままで16ダイを搭載か、それともCCXそのものを16コアに拡張して8ダイ構成なのかは現状不明だが(筆者としては後者を取りたいところ)、こちらも2022年中に投入されるようだ(Photo07)。

  • Zen 4c

    Photo07:多分最初はEl Captain向けなどもある関係でGENOAベースの製品が投入され、後追いでCloud Provider向けにBERGAMOベースの製品が追加される格好だろう

さてこのGENOAとBERGAMOの関係だが、要するにArmのNeoverse V1&N2の関係にそっくりである。HPC向けには高いIPC性能を持つコアが欲しいところだが、こちらは当然プロセッサコアそのもののエリアサイズが大きくなるし、キャッシュサブシステムも広帯域/低レイテンシの優先度が高くなるから、どうしても容量的にはそれほど大きくできない。対してCloud Service向けには、個々のコアの性能よりもスケーラビリティが重視され、また性能/消費電力比に対する要求が厳しい。これまでAMDは、HPC向けには有効コア数を減らし、その分動作周波数を引き上げたSKU(例えばEPYC 75F3)を、Cloud Serverには動作周波数を抑えて、その分全コアを有効にしたSKU(例えばEPYC 7763)を提供する、という形で用途別に提供してきていた。

ただ前者は、例えばEPYC 75F3だとコアの半分は無効化されているわけで効率が悪いし、後者は本来もっと高速動作出来る構成になっているものを低めに抑えて使っているわけで、これも効率が悪い。では高性能向けと高効率/高密度向けにコアを分けた方が効率が良いということで、ArmのNeoverseもまさしくこうした発想で、高性能向けにはCortex-X1をベースにしたNeoverse V1を、高効率/高密度向けにはCortex-A78由来(といってもArmv9aなのでCortex-A78そのものではないが)のNeoverse N2をそれぞれ充てるという形になっている。今回のZen 4/4cはまさしくこれと同じ発想だが、設計開始時期を考えればArmの真似をしたのではなく、同じ要求に基づいて設計したところ似たような結果になった、という事だと思う。

気になるのはDesktop向けへのZen 4cコアへの展開である。何となくかつてのBulldozer/BobcatというHi-Lo Mixを連想させるものがあるし、IntelはAlder Lakeで一歩先に製品化を行っているが、ラフに言ってZen 4cコアのエリアサイズはZen 4の半分にはならない様に思える。そもそも96コア vs 128コアという事だから、単純に言って3/4のサイズということになり、Alder Lake的に混ぜてもそれほどダイサイズが減らない割に、性能が今一つという事になりかねない。

ただAMDは別にヘテロジニアス構成をやらない、とは言っていない。2019年12月に出願し、2021年6月に登録された“METHOD OF TASK TRANSITION BETWEEN HETEROGENOUS PROCESSORS”という特許を見ると、Little ProcessorとBig Processorの間でTaskをやり取りする方式に関するものであり(Photo08)、一応ちゃんと研究していることが伺える。

  • Zen 4c

    Photo08:Core Complexと書かれているのがBig coreの事

すでにWindows 11ではヘテロジニアス構成のサポートがあり、他のOSも現在サポートに向けて作業をしている事を考えれば、将来AMDがヘテロジニアス構成のDesktop向け製品を出しても不思議ではないと思う。ただそれがZen 4cベースなのかどうかは正直怪しいと筆者は考える。

Microsoftが公開したMilan-Xのベンチマーク

この発表の直後、Microsoftは“Performance & Scalability of HBv3 VMs with Milan-X CPUs”というBlogエントリを公開した

まだMilan-Xについてはラインナップや型番が明らかにされていないが、MicrosoftはすでにEPYC 7V73Xというコアを入手しており、これを利用したHBv3 InstanceのPreview Accessを開始している。今回はこのHBv3を利用しての性能がいくつか示された。

まずはMilanとMilan-XのNUMAを跨いだアクセスのLatencyを測定するMicrobenchmarkであるが、Milanに比べて42~51% Latencyが削減できているとしている。

実アプリケーションとしては、まずAnsys Fluent 2021 R1の例である。具体的には、

の4つのケースが示されている。

どのケースでもMilan-XベースのHBv3が最速であるが、少ないケースではMilan比で7%弱(Combustor_830mを8VMで実施)ながら、大きいケースでは77%強(fa_racecar_140mを64VMで実施)までその差はまちまちである。とはいえ、平均で30%程度の性能改善があるとされる。

OpenFOAM v.1912を使った例でも、Milan比で12%(32VM)~64%(4VM)と振れ幅が大きいが、平均41%程の改善である。

Siemens Simcenter Star-CCM+ v.16.04.002の例ではちょっと差は低めであるが、Milan比で平均12%ほどの向上がみられる。

WRF v.4.1.5はMilan vs Milan-Xであるが、8%~24%までこちらもばらつくものの、平均17%程の改善が行われている。

最後がNAMD v.2.15で、こちらはあまりドラスティックな数字では無いが、平均3%弱の改善がみられるといった具合だ。

当然どんなアプリケーションを使うかで改善具合は変わってくるが、メモリアクセスの頻度が多いほど、3D V-Cacheの効果が大きくなる。なのでVMが多くなると相対的に効果が薄れて性能差が減るし、逆にVMの数が少ないと、3D V-Cache無しでもL3が足りたりするので、これもまた性能差が減るという傾向はほぼすべてのアプリケーションに共通であり、適切なアプリケーションとVMの数を選ぶ事が重要、という結果になった。

現時点ではMilan-XのSKUなどがまだ明らかではないが、このあたりは来年早々に発表されることになると思われる。