AMDが6月12日(米国太平洋夏時間)、自社開催のイベント「ADVANCING AI 2025」の基調講演においてCDNA系列の最新GPU「Instinct MI350シリーズ」を発表した。
InstinctMI 350シリーズは新しい「CDNA 4アーキテクチャ」を採用している。この記事では本アーキテクチャのメカニズムと、競合となるNVIDIAの最新GPUアーキテクチャ「Blackwell」との違いを解説していきたい。
●CDNA 4の動作メカニズムは?
CDNA 4アーキテクチャ(Instinct MI350シリーズ)の論理的な全体ブロックダイヤグラムは以下の通りとなる。
|
|
演算コアとも呼べる「CU(Compute Unit/演算ユニット)」は、1つのXCD(GPUダイ)当たり36基搭載されている……のだが、そのうちの4基は無効化されている(上のダイヤグラムで灰色で示されているのが、無効であることを意味する)。
本件について、AMDは「性能の最適化と、動作クロックの確保を意図した」と説明している。まあ、これは事実上製造プロセスにおける歩留まり確保の意味合いもあると見られる。
いずれにせよ、Instinct MI350シリーズでは、1つのXCD当たり32基のCUがアクティブになるということだ。
次の図は、1つ1つのXCDにおける「Global Resorces(グローバルリソース)」と呼ばれる部分を拡大したダイヤグラムになる。
図中の「Unified Compute System」は、全XCDをまたいで動作するCDNA 4の“司令塔的”な存在、いわば全XCDにまたがるディスパッチやキューの管理を司る機能ブロックとなる。
|
|
ブロックダイヤグラムを見ても連想できるように、ここから発行されたワークキューは「ACE→HQD→CU」という流れでワークへと伝送されていく。
ACEは「Asynchronous Compute Engine」の略で、その名の通り非同期で演算ジョブを投入する機能ブロックになる。実はこれ、RadeonシリーズGPUではCDNAアーキテクチャの前身「GCN(Graphics Core Next)アーキテクチャ」から存在しており、いわゆる「GPGPU(Compute Shader)」の処理系を発行する役割を持つ。アーキテクチャ名をCDNAになってからも、仕事内容は事実上同じだ。
ちなみに、据え置き型ゲーム機「PlayStation 4」のGPUコア(GCNベース)や、近代的3Dグラフィックス処理を重視して「RDNAアーキテクチャ」に移行した近年のRadeonにも、ACEブロックは備わっている。これはコンピュートシェーダーを動かすために必要だからだ。
RadeonではACEと並んで、3Dグラフィックス処理を行うために「Graphics Command Processor(GCP)」「Geometry Processor(GP)」といったジョブ発行ブロックも用意されている。しかし、CDNA系GPUではこれらが省かれている。前編でCDNA系GPUでは「3Dグラフィックスパイプラインを基本的に利用できない」と言ったが、それはGCPとGPが“ない”からに他ならない。
HQDは「Hardware Queue Descriptor」の略で、CUに演算ジョブを発行するキューのスケジューリングを司る役割を持つ。0〜7のナンバリングが施されているのは、最大8本の独立したハードウェアキューを備えることを表している。つまり、CDNA 4アーキテクチャでは最大8個のカーネルやコマンドストリームを、ハードウェアレベルで並列処理ができることになる。
|
|
演算の実務自体は、先述した36基のCU(CU0〜CU35)のうちアクティブな32基に各ジョブを割り当てて実践していくことになる。
●CDNA 4におけるComute Unitの改良ポイント
続いて、CDNA 4アーキテクチャにおけるCUの構成を見ていきたい。
実際のところ、大ざっぱな構成は「CDNA 2アーキテクチャ」(Instinct MI200シリーズ)以来変わっていない。内包される演算器たちの“ポテンシャル”を向上させる形でパワーアップを図っている。ということで、参考までにCDNA 2アーキテクチャにおけるCUのブロックダイアグラムを示す。
CDNA 2/3と同じく、CDNA 4でも1基のCUにはシェーダーコアを64基(SIMD16×4基)、マトリックスコアを4基搭載している。ブロックダイアグラムの見た目的には変わり映えがないものの、細部はいくつか改良されている。
改良点1:共有メモリ(LDS)の容量増加
改良点の1つが、CU間の共有メモリ「Loca Data Share(LDS)」だ。実態的にいうと、LDSはキャッシュメモリと同等の速度で動作する超高速なSRAMとなる。
CDNA 3アーキテクチャまでのLDSは1バンク当たり32bitを512エントリーという構成で、これを32バンク備えていた。そのため、総容量は「32bit×512エントリー×32バンク=64KB」となり、データへのアクセスは直接アドレスを指定して行う形態を取っていた。
それに対し、AMDによるとCDNA 4アーキテクチャのLDSは「160KBに増量された」のだという。詳細の説明がなかったが、従来の延長線上で考えると「160KB=32bit×640エントリー×64バンク」という感じの構成だと思われる。このLDS強化は昨今の人気のニューラルネットワークである「トランスフォーマーモデルへ対応するための最適化の一環だ」という。
改良点2:シェーダーコアにおけるL2キャッシュの仕様
シェーダーコアのベクトル演算器側にあるL1キャッシュは「総容量32KBの64ウェイアソシアティブ(キャッシュラインサイズは128バイト)」で、CDNA 3以前と同一仕様となっている。一方で、L2キャッシュには、2つほど興味深い“手入れ”がなされている
【非コヒーレントデータをL2キャッシュに置ける】
1つは、非コヒーレントデータをL2キャッシュへ置くことを“OK”とする制御を導入したことだ。この際は、「NC(非コヒーレント)フラグ」を立ててキャッシュするようになっている。
「なんでそんな制御をするのか?」という点だが、ストリーミングデータや入出力(I/O)バッファーといった「使い捨てが明確なデータ」、あるいは「処理が同一XCD内で収まることが自明なデータ」では、L2キャッシュにヒットさせても問題ないからだ。
このような制御をすることで、HBM3E(グラフィックスメモリ)や他のXCDにあるL2キャッシュとの同期取りを省略できるので、その分だけパフォーマンスの向上が期待できる。
【ダーティー状態のキャッシュ来の内容を存置できる】
2つ目は、いわゆる「ダーティ状態」のL2キャッシュラインの内容がグラフィックスメモリに書き出されたとしても、そのラインのエントリーを「クリーン」(同期済み)と見なしてL2キャッシュに残す制御の導入だ。ダーティー状態は、L2キャッシュ側がデータが新しい(グラフィックスメモリ側のデータが古い)状態を指す。
CDNA 3までのアーキテクチャでは、L2キャッシュにダーティ状態のキャッシュラインがある場合、その内容がグラフィックスメモリにライトバックされると、そのラインをクリア(消去)していた。この場合、このキャッシュラインに該当するアドレスを同一XCD内の別CUが参照仕様とした場合、再度メモリにアクセスして読み出すことになる。「さっきまであったデータをもう一度取りに行く」という挙動は、シンプルにもったいない。
この新しい制御によって、複数のCUが隣接するアドレスを反復的に読み書きする場合に、L2キャッシュのヒット率が劇的に改善し、パフォーマンスが向上する。
ここまでの解説が難しかったという人は、「L2キャッシュにデータをなるべく長く安全に残しておけるようになり、データの再利用性を高められたので、無駄なメモリ帯域の消費を減らせた」と思ってもらえればよい。
●マトリックスコアは「低精度演算」の高速化を重視
3Dグラフィックス処理に未対応なのに「シェーダーコア」と呼ぶのはどうなんだ、という違和感はさておいて、ここでいうシェーダーコアは「スカラ演算」と「ベクトル演算」を行う演算器ということになる。当然、ベクトル演算は1CU当たり4基ある「16要素SIMD演算器」で行う事になる。一方、スカラ演算は、1CU当たり1基備える「専用スカラ演算器」で行われる。
その名の通り、マトリックスコアは実態として「行列演算器」となる。RDNA系アーキテクチャでは「AIアクセラレーター」に相当するもので、昨今のNVIDIA製GPUなら「Tensorコア」に相当する。
ここで、Instinct MI350シリーズの理論性能を計算してみようと思う。
CDNA系のGPUアーキテクチャでは、CDNA2の時にSIMD演算器がFP64(64bit浮動小数点)演算にネイティブ対応する仕様に改められた。これにより、FP32(32bit浮動小数点)演算時のスループット(実効演算性能)が最大2倍となった。
このことを踏まえて、空冷タイプの「Instinct MI350X」(最大2.2GHz駆動)のFP32ベクトル演算時の理論性能値を求めると、以下の通りとなる。
32 CU×8 XCD×64 SIMD×2.2GHz×2倍スループット×2FLOPS(積和)≒144.2TFLOPS
同様に、水冷タイプのInstinct MI355X(2.4GHz)でも理論性能値を求めると、以下の通りとなる。
32 CU×8 XCD×64 SIMD×2.4GHz×2倍スループット×2FLOPS(積和)≒157.3TFLOPS
いずれも、AMDが公表している公式スペックと一致している。
マトリックスコアの演算パフォーマンスを深掘り
CDNA 4アーキテクチャにおけるマトリックスコアを見てみよう。
同アーキテクチャのマトリックスコアは、1要素当たりFP64に対応した「4×4×4サイズ」の行列演算を4クロックでこなせる。このことは、先の図にある「Matrix FP64」の1CU当たりの演算性能が1クロック/1CU当たり128FLOPSとなっていることからも分かる。
どういうことか、もう少し詳しくみていく。CU1基につきMatrix Coreは4基あるので、4×4×4サイズの行列の積和算(2FLOPS)を行う時の総演算量は以下の通りとなる。
4×4×4サイズの行列積和算(2FLOPS)×4基=512FLOPS
「あれ、演算性能が4倍になってるじゃん!」と思うかもしれないが、先ほどの図においてInstinct MI355Xの「Matrix FP64」のMI355Xの1クロック/1CU当たりの公称性能が128FLOPSとなっていることを鑑みると、512FLOPS分の計算に掛かるクロック数は「512FLOPS÷128FLOS=4クロック」となるため、これで正解となる。
上の図を再度見てもらうと分かるが、Instinct MI300Xでは、1クロック/1CU当たりの演算性能は256FLOPSなので、CDNA 4ではこの部分の性能が“半減”されてしまったことがわかる。
しかし逆に、CDNA 4ではFP16(16bit浮動小数点)以下の精度の演算性能が“2倍”に向上しているのも分かる(「MI355X Peak Speedup」に注目してほしい)。シェーダーコアにおけるベクトル演算性能は前世代を維持(同等)としているのに、ここは対照的である。
その理由を考察すると、CDNA 4では「行列演算はAI(人工知能)用途で利用頻度の高いFP16以下の低精度の高性能化にフォーカスした」といったところだろう。
以上を踏まえて、Instinct MI355XにおけるMatrix FP64の理論性能値を求めてみると、以下の通りとなる。
32 CU×8 XCD×(4×4×4行列)×2.4GHz×2FLOPS(積和)×4基÷4クロック≒78.6TFLOPS
FP16はパック化することで「16×16×16サイズ」で行列演算を行えるが、先の図を見る限りは8クロック掛けとなるようだ(Matrix FP16における1CUあたりの演算性能が1クロック/1CU当たり4096FLOPSとなっている点に注目)。
ということで、今度はマトリックスコアの理論性能値を、FP16で求めてみよう。
32 CU×8XCD×(16x16x16行列)×2.4GHz×2倍スループット×2FLOPS(積和)×4基÷8クロック≒2.5PFLOPS
先の図にある公式スペックと一致した。
OCPの最新フォーマットに対応
先ほどの図の左側を再度見てほしい。AMDは、CDNA 4アーキテクチャにおいて「OCP(Open Compute Project)」が規定する最新数値フォーマットに一通り対応していることをアピールしている。
先代のCDNA 3アーキテクチャでは、既に「E5M2」「E4M3」の2タイプのFP8(8bit浮動小数点)に対応済みだが、CDNA 4アーキテクチャでは新たにOCPが規定した、比較的新しいMicroscaling Formats(MX)形式「Block n×32」にも対応した。
この形式の意味だが、MXFP8の「Block 4×32」の場合で考えると、以下のような感じになる。
まず、1ブロックは「FP8を4個」と定義され(E5M2でもE4M3でもOK)、共通指数項は1ブロック当たり1個を与える(つまり4個のFP8で共用)。共通指数項は8bitとなるので、この例では1ブロックのサイズは5バイトとなる。
このブロックが行列などのイメージで32セット並ぶ――これがMXFP8の「Block 4×32」だ。CDNA 4では、このデータを読み出すと自動的にハードウェアデコードして、レジスタに代入するようになっている。CDNA 4ではMXF8Pの他に「MXFP6」「MXFP4」もサポートしている。
読者の中には気付いた方もいるかもしれないが、このマイクロスケール形式はブロック要素数が少ないと、データの圧縮効果はそれほど高くない。それでもあえてマイクロスケール形式を規定したのは、何よりも「ダイナミックレンジの維持」目的の方が強いのだ。
●NVIDIAの「Blackwell」と比べて性能はどうなのか?
ここまで来て、中には「ご託はいいから性能はどうなんだ?」と思っている人もいるだろう。それを意識してか、AMDもその辺のアピールを忘れていない。
下の図は、Instinct MI355Xと競合製品である「NVIDIA GB200」「NVIDIA B200」の理論性能値を比べたものだが、GPU単体ではほぼ同等の性能を発揮できていることが分かる。
実際の大規模言語モデル(LLM)でパフォーマンスを比較した場合でも、FP4/FP8/BF16演算を用いる場合は同等かそれ以上の結果を出せているという。
AMDとしては「絶対性能において、NVIDIAのBlackwellには引けを取らない」ということをアピールしたいのだろう。
●「Infinty Fabric」と「Infinity Cache」の様子
AMDでは、半導体のインターコネクト(内部接続)に「Infinity Fabric」を利用している。
先代のCDNA 3アーキテクチャ世代のInfinity Fabricは、4基の小さな「I/O Base Die(IOD)」を互いに全て接続する「フルメッシュ接続」状態だった。それに対してCDNA 4アーキテクチャのInfinity Fabricは、2基のIODが“一辺で”2.5D的に接合されている。ネットワーク網としては、随分と簡略化されている。
ただし、AMDによるとIOD間のデータ伝送帯域は毎秒5.5TBで、「Accelerator Compex Die(XCD)」の伝送速度も最大14%高速化されたという。
IODの構成自体は大きく変わった一方で、CDNA 4のメモリ階層を支える「Infinity Cache」システムは、CDNA 3から大きく変わっていない。
HBM3Eの各メモリスタックには、2MB単位のバンク型アレイが16基ある構成となっている。このスタックは全部で8個あるので、Infinity Cacheの総容量は「2MB×16バンク×8スタック=256MB」となる。
Infinity Cacheは、事実上のL3キャッシュだ。「なぜ2MB単位でバンク管理がなされているの?」という点だが、これは256MBの単一キャッシュ構成にすると、キャッシュの当落判定時間が増大する上に、アクセスの並列性も悪化するからだ。
今回のInstinct MI350シリーズでは、2MBバンクが全体で128個(16バンク×8スタック)あるため、HBM3Eメモリ全体がカバーするアドレスの全域を128分割したイメージで均等にカバー可能だ。さらに、128バンク分の並列アクセスも実現できる。
なお、AMDによれば、Infinity Cacheのキャッシュ構成は「16ウェイのセットアソシエイティブ」だという。実際の運用においては、恐らくアドレスの一部ビットに基づいて、自動的に特定の2MBバンクが決定される方式となっていると思われる。
●CDNA 4における演算とメモリのパーティショニングを深掘り
CDNA4アーキテクチャは、1万6384基ものCUがもたらす強大な演算パワーと、毎秒8TBの超高速なアクセスが可能な288GBのHBM3Eメモリを、用途に応じて内部構造(リソース配分)を仮想的に変えつつ利用可能だ。
まず演算能力については、8基のXCDを「1基」「2基」「4基」「8基」の4形態に設定することが可能だ。
8基のXCDを全て活用する「SPX(Single Processor Expansion)モード」は、大規模なデータに対して“全力で”演算に取りかかる必要のあるAI開発におけるトレーニングフェーズに向いている。逆に、小規模な推論モデルを動作させるフェーズでは、8基のXCDを個別に使う「CPX(Coherent Processor Expansion)」が適している。
グラフィックスメモリに関しては、「2基のIODを1つに連結して統合した」という物理構造に起因したパーティショニングモードが2種類用意される。
1つ目の「NPS1モード」は、1ソケットを1NUMAノードとして取り扱う。全てのXCDが8基のHBM3Eメモリの全体に渡ってインターリーブアクセスを行えるため、大規模AI開発における学習フェーズにおいて有効だ。
2つ目の「NPS2モードは、2ソケットを1NUMAノードとして取り扱う。物理IODごとにメモリパーティションを区切る形で、具体的には1基のIOD当たり4つのHBM3Eスタックを割り当てて、2つのメモリーパーティションとして管理する。
どちらのモードにしても、反対側のIODに実装されているHBM3Eメモリへのアクセスは遅延が大きくなることに変わりない。しかし、NPS2モードでは各XCDに割り当てられるメモリ空間が、優先的に同じIOD側にあるHBM3Eメモリで確保されるようになる。
この特性を理解していれば、CDNA 4アーキテクチャでボトルネックとなりうるIOD間通信を抑止しつつ、システムを運用可能だ。ただし、演算パーティションとメモリーパーティションの切り替えは、GPUシステムの再起動が必要となる。
●CDNA系アーキテクチャの未来とロードマップ
下図は、Instinct MI350シリーズを搭載したノードのシステムダイヤグラムだ。
Instinct MI350シリーズは「OAM(OCP Accelerator Module)」規格のモジュール(カード)として提供される。上図でOAM内にある8つのマスは、1個あたりのXCDをイメージしている。
OAM同士はInfinty Fabricでフルメッシュ相互接続されており、各OAMはPCI Express 5.0バスを介してAMDのCPU「EPYC 9000シリーズ」と接続される。
次の図は、Instinct MI350シリーズをラックサーバシステムとして構成した場合の例だ。Instinct MI350Xは、120kWまたは130kWの54Uラックなら最大8台、200kWラックなら最大16台搭載できる。
AMDはInstinct MI350シリーズを2025年第3四半期(7〜9月)から出荷する予定だという。その絶対性能の高さはもちろんだが、NVIDIAのBlackwellアーキテクチャGPU(NVIDIA B200)と比べて価格対性能(コストパフォーマンス)において最大40%も優れていることをアピールしていた。
このポイントは、AI向けGPUサーバの新規導入を検討している層から魅力的に映るのは間違いない。
AI自体の進化ペースが異様に早いこともあり、AI処理に使われるGPUでは“継続的な”新製品の投入が望まれる状況にある。競合のNVIDIAも、近年は数世代先まで新モデルの予告を行うようになった。
もちろん、AMDも今回のイベントにおいて今後のInstinct MIシリーズのロードマップを予告した。具体的には、2026年には「Instinct MI400シリーズ」、翌2027年には「Instinct MI500シリーズ」が登場予定だという。アーキテクチャ名ではなく製品名を出してくるあたり、その開発が順調であるというアピールだ。
特に2026年に登場する予定のInstinct MI400シリーズは具体的な目標性能値の引き上げを実施しており、NVIDIAの次世代GPU「Rubin」と同等以上の理論性能を有し、1モジュール当たりのグラフィックスメモリ容量は432GB(MI350シリーズの1.5倍)、メモリ帯域は毎秒19.6TB(MI350シリーズの約2.5倍)になるという。
筆者が個人的に注目したのは、Instinct MI400シリーズのラックシステムのサイズだ。従来の2倍広くなっており、昨今の「高密度コンパクト化」の流れからは逆行しているように思える。
あえて“拡張”する方向の設計としているのは、製造プロセスの微細化がかつてないほどに鈍化している現状にあってもなお、より高い性能を求め続けるAIサーバ市場を考えるとそうせざるを得ないのだろう。言い換えると今後、性能向上を重視したコンピュータシステムを構築するには、「フットプリント」よりも「高帯域/大容量」を優先した設計にならざるをえないのだ。
以前は「CPUサーバと比較して、GPUサーバーは○倍も高性能で、こんなに省スペースで省電力!」なんていう売り文句もよく見かけたが、このキラーメッセージの後半部分は徐々に影を潜めつつある。果たして、今後はどのような売り文句になっていくのだろうか……?
|
|
|
|
Copyright(C) 2025 ITmedia Inc. All rights reserved. 記事・写真の無断転載を禁じます。
掲載情報の著作権は提供元企業に帰属します。
超絶技巧で表現「立体刺繍」(写真:まいどなニュース)18
初心者が山でやりがち…命を落とす理由 遭難した際、救助隊にも発見されづらい行動とは【漫画】(写真:まいどなニュース)24