GDDR・HBM
GDDR6XはやはりMicronとNVIDIAだけの独自製品に終わってしまい、GDDR6がそのGDDR6Xを上回るスピードを出したりしたのだが、業界的にはGDDR7への移行準備が整い始めた。Samsungは2023年7月にGDDR7の開発完了を発表。Micronは今年中旬からGDDR7の供給を開始するロードマップを公開している。SK Hynixは今のところ公式にはアナウンスを行っていないが、同社が手掛けない理由もないので、当然今年中に量産を開始すると思われる。ターゲットは先にGPUの所で出て来たAMDのRDNA 4とかNVIDIAのGB102やその下位製品向けであるが、以前と異なりGDDR6世代からAI ProcessorにもGDDRが広く使われ始めている事を考えると、マーケットそのものは以前より広がってきていると言える。ただ2024年中にどの程度出て来るか? というのは微妙なところで、なにしろ肝心のGPUの新製品が2024年末とかいう状況だから、2024年中の出荷数はそれほど多くなく、本格的に出荷されるのは2025年に入ってからとみられる。
HBMの方も、既にHBM3やHBM3e(MicronのみHBM3 Gen2とか称している)が量産出荷を開始しており、AMDのInstinct MI300A/XやNVIDIAのGH200などに既に採用されている。ただ面白いのは、まだHBM3/HBM3eの性能をフルに生かした製品が少ない事だ。例えばInstinct MI300A/XはHBM3を搭載しているから最大で6.4bps/pinの転送が可能なのに対し、実際は5.2Gbps/pinに留まっている。あるいはNVIDIAのGH200はHBM3モデルが4000GB/sec、HBM3eモデルが4800GB/secの帯域を持つとされるが、信号速度はそれぞれ5.3Gbps/pinと6.4Gbps/pinで、HBM3の6.4Gbps/pinとかHBM3eの9.6Gbps/pinには遠い。というか、そもそも何でGH200のHBM3eモデルはHBM3eを使ったのか(6.4Gbps/pinならHBM3でもカタログスペック上は間に合う)という事を考えると、公称値はともかく実効性能はまだフルに生かせないという事なのか、それともHBM3を6.4Gbps/pinで使おうとすると消費電力が過大になりすぎるのでHBM3eを選んだのか、そのあたりの理由は定かではない。
このHBM3e世代は既にSamsung/SK Hynix/Micron共に製品出荷を行っており、GPUだけでなくAIのTraining向けチップなどにも多く採用されている。CPUへの搭載は今のところ富士通のA64fxとIntelのXeon Maxくらいのもので、これに続く汎用CPUの話は今のところ全く聞こえてこない。
HBM4に関しても水面下では動いているが、業界的には2026年頃の導入を想定している。先のMicronのロードマップでも、HBM Nextは2026年度に導入される予定だ。ただSamsungのみ、HBM4を2025年には実用化すると表明している。もっとも、まだ物理層の具体的な仕様のレベルで確定していない話であり、本当に2025年度に実用化できるのかはちょっとはっきりしない。逆に言えば、2024年中にはそうした仕様の策定で色々ありそうではあるのだが、製品が出てくるような可能性は0であろう。
CXL
既にAMDはGenoa世代のEPYC 9004で、CXL 1.1相当ながらMemory関連のみCXL 2.0相当のサポートを既に提供しているという話はこちらの記事で説明した。これに続き、IntelもEmerald Rapidsこと5th Gen Xeon ScalableでCXL Memoryのサポートを実装した。このEmerald RapidsはIntelにとって一つの転換点である。というのは、Optane Persistent Memoryのサポートが打ち切られたからだ。Optane Persistent Memoryは使っているユーザーこそ決して多くは無いが、例えばSAP HANAの様に特定のアプリケーションではこれがサポートされており、そのアプリケーションを必要とするユーザーが利用していた。Enterprise Gradeのサポートが提供されている、というのがOptane Persistent Memoryの利点であり、そうしたユーザーはEmerald Rapidsへのアップグレードを行わず、Sapphire Rapidsのまま当面はOptane Persistent Memoryを使い続ける格好になる。ただいつまでもそれが維持できるわけでもない訳で、現在Optane Persistent Memoryをサポートしていたアプリケーションベンダーは、CXLベースのPersistent Memoryへの対応作業を行っている最中である。
実のところ、CXLベースのPersistent Memoryを利用する場合、今度はIntelプラットフォームでなくても動作する事になる。短期的にはAMDのGenoaとか今後登場するTurinでも利用できるし、将来的な話をすればArmベースのアーキテクチャでも利用可能である。キーポイントはアプリケーションから見て、すべてのプラットフォームで同じようにCXL Persistent Memoryを扱えるかどうかという話で、これはOSから見たAPIの構造などに密接に関係する話である。つまりアプリケーションベンダーだけで決められる話ではなく、OSベンダーと共同で仕様策定を行ってゆく必要がある。残念ながらCXLが規定するのはハードウェアに近い部分であり、アプリケーションからどう見えるようにすべきかという話までは関与しない(というか、出来ない)。なので現状はそうした部分の標準化というか仕組み作りを行っている最中という状況である。ハードウェア的にはある程度準備が出来つつあり、先に示したEPYC 9004におけるCXLの対応の所で述べたように、既にMemory ModuleとかCXL Switch、Memory Applianceなどの評価用機材などは各社から出揃いつつある。なので早ければ2024年中には、アプリケーションベンダーの評価用ではなくエンドユーザーの利用を前提にしたCXL Persistent Memory Moduleとかが出て来ても不思議ではないだろう。
逆に、もっと構造が簡単なのにも拘わらずやや投入が遅れそうなのはCXL DRAM Moduleである。CXL 1.1はPCIe 5.0ベースなのでLaneあたり32GT/sec、x16構成で片方向あたり64GB/secの帯域となる。これはDDR5-6400の1ch分の帯域(51.2GB/sec)を超えるもので、なのでx16を5本出せ、うち4本がCXLとしても使えるEmerald Rapidsでは、「CXLを併用するとメモリを12ch利用できる」とか説明に書いてあった。実際にはEmerald RapidsはDDR5-5600までの動作だから、DRAMモジュールをフルに装着すれば、12chどころからDDR5-5600の13.7ch分くらいの帯域が手に入る事になる。構造的にもDRAMコントローラをCXL Deviceに接続するだけだから簡単である。にも拘わらずこれが遅れそうというのは
- ニーズが低い:そもそもCXL DRAM Moduleを使わなくてもEPYC 9004シリーズなら6TB、5th Gen Xeon Scalableでも4TBの最大メモリ容量があるので、これで足りないという事態がそもそも発生していない。勿論今後はこれでも足りない、というニーズが出てくる事は考えられるが、短期的にはそうした状況が一切見えてきていない。これは性能面でも同じで、CXL DRAMを使わなくてもそれなりのメモリ帯域がある(EPYC 9004シリーズで537.6GB/sec、5th Gen Xeon Scalableでも358.4GB/sec)から、これを使い切って足りなくなるまで特にCXL DRAM Moduleを必要としない。
- ソフトウェア側の対応が必要:CXLはHot Plug/Unplugの機能が利用可能である。これは物理的に抜き差しする以外に、CXL Switch経由でMemory Applianceを接続する場合などでも利用される。要するにブートした後で動的にメモリが湧いたり消えたりするので、OSとミドルウェア、場合によってはアプリケーションもそうした環境に対応できる様にしなければならない。まぁアプリケーションに関して言えば、そのアプリケーションをコンテナの形で動かし、そのコンテナに割り当てる物理メモリ量を動的に変化させる、なんて形で使う事は出来るだろうが、CXLのメリットを生かした使い方とは言い難い。
実のところメモリのHot Plug/Unplugそのものは別に以前からもあった(高信頼性サーバーとかは、稼働中のモジュールの着脱とかできるようにする必要がある)話で、Linux KernelもMemory Hot plugをちゃんと標準でサポートしている。ただKernelがサポートしていても、ミドルウェアとかがこれを前提に作られているとは言えない訳で、こうした部分の対応を行わないと、「仕様上はMemoryのHot plugが可能だけど、運用上は不可能」とかいう不便な使い方になってしまう。
このHot plug/Unplugは、実はPersistent Memoryを使う場合も同じであり、なので現在はPersistent Memoryの対応に絡んでOSやミドルウェアが対応するのを待ち、完成後にDRAM Moduleの対応を追加するといった方向になっているようだ。2024年はまさにこうした作業が行われる年になる訳で、なので表面上はあまり大きな動きはないだろう。ただこうした作業が一段落して、必要となるソフトウェアの対応がほぼ完了したタイミングで製品が続々投入される、といった格好になりそうだ。早ければ第3四半期あたりから、こうした動きが出てくるかもしれない。