笠原一輝のユビキタス情報局
AMDが2.5D/3Dパッケージング技術で先行。大容量L3のMilan-Xと競合を圧倒するInstinct MI200の秘密
2021年11月10日 06:45
AMDが3Dチップレット技術を採用した「3D V-キャッシュ搭載第3世代EPYC」(開発コードネーム:Milan-X)および、CDNA2アーキテクチャを採用してパッケージ上で2つのGPUダイを搭載するAMD Instinct MI200シリーズを発表した。
同社は既に5月末のComputex Taipeiでの基調講演で「3D V-キャッシュ」の概要を発表しており、年末までにそれを搭載したRyzen 5000シリーズをリリースすると明らかにしていたが、今回データセンター向けのEPYCにもそれを採用した形だ。
AMD Instinct MI200シリーズは、データセンター向けGPUの最上位モデルとなる製品。NVIDIA A100の倍精度浮動小数点演算(FP64)のスループットである9.7TFLOPSと比較して、約4.9倍となる47.9TFLOPSを実現しているのが最大の特徴となる。
そうした“破格”の性能を実現できた背景には、同社が「2.5D Elevated Fanout Bridge(EFB)」と呼ぶ複数のダイを1つのパッケージに高効率で実装する仕組みが採用されていることがある。
データセンター向けAMD CPUの高性能の源泉はチップレットなどのパッケージング技術
AMDは5月末に行なったComputex Taipei Virtualの基調講演の中で、同社が3D Chiplet Technologyと呼ぶ、縦方向にダイをスタッキングして搭載する技術を発表している。
今回、2022年第1四半期に投入すると発表した3D V-キャッシュ搭載第3世代EPYCは、その3D Chiplet Technologyを採用しており、ダイの上にSRAMダイをスタッキングして搭載している。
上記で紹介した以前の記事でも説明した通り、AMDがここ数年データセンター向けCPUでパフォーマンスリーダーとなった最大の理由が、「Chiplet Technology」と呼ばれる2Dのダイスタッキング技術をEPYCで採用している点だ。
特に第2世代EPYCからは、IOD(I/O Die)が分離され、8コアのCPUコアから構成されるCCD(Core Chiplet Die)と呼ばれるCPUダイがそれぞれ別に製造される。
このIOD+CCD(8コアCPU)×8という合計9つのダイがパッケージ上で統合されて、最大64コアのCPUとして1つのCPUソケットで実現されるという構成になっている。
これにより、1つのダイ(モノリシックダイ)として作られるIntel Xeon SPと比較すると、ソケットあたりのCPUコア数が最大28コア(第2世代Xeon SP)、40コア(第3世代Xeon SP)なのに対し、より多い64コアという構成が可能になっており、特にマルチスレッド時の性能が高くなっていることが性能上有利になっているのだ(詳しくは上記の記事をご覧いただきたい)。
今回発表した3D V-キャッシュ搭載第3世代EPYCは、この第3世代EPYCの成功をさらに加速するものとなる。CCDの構造はそのままに(CPUのアーキテクチャはZen 3で、CPUコア1つあたりL1命令/データキャッシュがそれぞれ32KB、CPUコア1つあたり512KBのL2キャッシュ、CCD全体で32MBのL3キャッシュ)、CCDに縦方向に64MBのL3キャッシュのSRAMをダイスタッキングし、CCD上の32MBと合計で96MBのL3キャッシュがCCD 1つあたりに実装されている計算となる。
このため、CCDが8つ搭載されている64コアの3D V-キャッシュ搭載第3世代EPYCはL3キャッシュだけで768MBとなり、CPUコアそれぞれに実装されているL1キャッシュやL2キャッシュと合計すると804MBに達することになる。
3Dダイスタッキングをいち早く導入したAMD、Sapphire Rapidsで2.5Dのダイスタッキングを導入するIntel
このL3キャッシュが増えた効果はとてもシンプルで、メモリレイテンシの削減となる。CPUというのは、内部で命令を入れ替えて実行したり、並列に実行したりはしているものの、基本的にはOSから依頼された処理を順々にこなしている。このとき、CPUがメモリからデータを読み込むまでに待機状態となってしまう時間をメモリレイテンシ(読み込んでくるまでの遅延)と呼んでいる。
CPUとメモリでは動作速度も違っており、どうしてもCPUの処理に比べるとメモリからの読み込みには時間がかかってしまうのだ。そして、このメモリレイテンシを最小化していくことが、CPUの実行効率を上げるために重要となる。
メモリレイテンシ削減の最も分かりやすい手法が、キャッシュメモリだ。キャッシュメモリは、CPUに近くレイテンシがほとんどないが、容量の小さいL1キャッシュ(1次キャッシュ)、中間的存在のL2キャッシュ(2次キャッシュ)、そしてCPUに比べると遅いが大容量になっているL3キャッシュ(3次キャッシュ)と階層化されている。
これらのキャッシュに比べると遅いDRAMベースのメインメモリの内容を先読みしたり、一度読み込んだデータをもう一度CPUに送ったり、CPUが処理したデータを一時的に保存しておき、余裕があるときにメインメモリに書き出すなど、様々な手法で高速化し、結果的にメモリレイテンシを削減する。
無論、現在使われているプログラムは、CPUがこうした大容量のL3キャッシュを持っていることを前提としていないため、本当の意味で最適化するにはソフトウェア側の対応も重要になる。
ただ、AMDはそうした最適化をしなくても、既存のアプリケーションでもある程度の効果はあると説明しており、同社が公開した資料によれば、Synopsys VCSのRTL検証において、3D V-キャッシュなしに比べてありの場合は66%高速というベンチマーク結果が出ているという。
2022年の第1四半期には、Intelも第4世代Xeon SPになるであろう「Sapphire Rapids」を発表する計画であることを既に明らかにしている。Sapphire Rapidsでは、IntelがEMIB(Embedded Multi-die Interconnect Bridge)と呼んでいる2.5Dのダイスタッキング技術を利用して、4つのダイを1つのパッケージに格納するという形で製品を構成するとしている。
現在までのところ、Intelはダイ1つあたりのCPUコア数などは公開していないが、1つのダイあたり16コアとなる可能性が高く、第3世代EPYCと同じコア数に並ぶものと見られる。
CPUコア数が少なくても第3世代Xeon SPはベンチマークでは第3世代EPYCと良い勝負をしていたので、コア数を増やさないでL3キャッシュを増やした3D V-キャッシュ搭載第3世代EPYCの性能差がどうなるのかは興味が尽きないところだ。
AMDはその先の製品として、Zen 4を採用してコア数を96に増やしたGenoa(ジェノア)を2022年中に、Zen 4の改良版となるZen 4cを採用してコア数を128に増やしたBergamo(ベルガモ)を2023年前半に投入する計画だし、Intelは2023年に3Dのダイスタッキングを採用したGranite Rapids(グラナイトラピッド)を2023年に投入するとしている。
いずれも2Dや3Dのパッケージング技術を採用した製品になり、どちらが優勢になるかは、内部のマイクロアーキテクチャだけでなく、3Dにスペースをどのように使うのか、その優劣で決まることになる。
新しいCDNA2アーキテクチャ採用でダイ1つあたり112CUを実現したAMD Instinct MI200
そして、今回AMDはもう1つパッケージング技術の威力を見せつける製品を発表した。それが「Instinct MI200」シリーズだ。
AMDは2020年の11月に、Instinct MI100という製品を発表している。それまでAMDのデータセンター向け製品は、コンシューマ向けのGPUをそのままワークステーションや、データセンター向けに転用した製品がほとんどだったのだが、このInstinct MI100から、GPUのアーキテクチャのCDNAアーキテクチャとして分離し、GPUの構造もデータセンターやHPCの処理に向いたアーキテクチャに変更している。
今回発表されたAMD Instinct MI200は、MI100の後継製品となり、6nmプロセスルールで製造されるGPUとなる。アーキテクチャはCDNAからCDNA2へと強化されている。
従来のCDNAは基本的にRDNAとかなり近いものになっていたが、今回のCDNA2ではCU(Compute Units)が最大220と飛躍的に増やされており、最大580億トランジスタを搭載。ダイサイズは公表されていないが、かなり巨大なものとなっていることが想定される。
AMDによれば、CDNA2では特に倍精度の浮動小数点演算(FP64)と行列乗算の性能が上がるよう内部的に設計され、28個のCUから構成されるコンピュートエンジンが4つ搭載されており、1つのダイ(GCD、Graphics Compute Die)あたりで112個のCUがある設計になっている。
1つのGCDあたりに8MBのL2キャッシュが搭載されており、さらにパッケージ上にはメモリとして8GBのHBM2eが8つ実装される形で、ダイ1つあたりで64GBのメモリを利用できる(パッケージ全体では128GB)。
また、GCDには最大で8つのInfinity Fabric(うち1つはPCI Express 4.0と共有)と2つのVCN(Video Codec Next)が搭載されている。Infinity FabricはGCD同士の接続や、同じくInfinity Fabricを搭載しているAMD EPYCと接続して利用できる。
VCNはH.264、HEVC、VP9、JPEGのデコードが可能で、かつH.264とHVECのエンコードが可能だ。GCDにはVCNエンジンが2つ搭載されており、同時に2つの動画をエンコードし、画像認識のデコーダとしても利用できる。
2.5D混載実装のEFBでNVIDIA A100の4.9倍という圧倒的性能を実現
こうしたCDNA2アーキテクチャの特長だけでなく、AMD Instinct MI200ではAMDが「2.5D Elevated Fanout Bridge(EFB)」と呼ぶダイスタッキングの手法を活用して、GPUのパッケージ内部で2つのダイと、それぞれのダイの4つのHBM2eのDRAMを混載している。
通常のこうした2Dのダイスタッキングでは、ダイとサブストレートの間にあるシリコンインターポーザを貫通するビアを経由してダイとダイが接続されている。しかし、この場合は信号の品質などに問題があり、ダイとダイの通信速度を落とすなどしなければ動作しないといったことが発生する。
そこで考えられたのが、ダイとダイの接続にブリッジ用のダイを用意して、そのブリッジダイを間に噛ますことで信号品質を上げていくという手法だ。
Intelが採用しているEMIBはその代表例で、ダイ間をブリッジするダイのスペースを用意した特殊なサブストレートを利用して実装される。ブリッジ用のダイがサブストレートに食い込む形で実装されるため、信号品質が改善される。
今回同社が採用したEFBはそれをさらに進化させるもので、チップとサブストレートの間にあるバンプ(ダイの端子)に、そのブリッジダイを埋め込むというものだ。
これにより、通常のサブストレートをそのまま利用できるため、低コストで製造できることがメリットとして挙げられる。同社はこのEFBを使って、GCDのダイを2つ、8つのHBMを1つのパッケージに入れることに成功したのだ。
これにより、1つのGCDで112個のCUを搭載し、パッケージ全体で最大224個のCUを実現。1.6GHz動作のHBM2eに対して8,192bit×2でアクセスする形となり、3.2TB/sという超広帯域のメモリ帯域幅が実現されている。
なお、最上位モデルとなるMI250XのCU数は220になっており、フルスペックの224よりは少なくなっているが、それは歩留まり向上のためだと考えることができるだろう。
さらに、GCD1つあたり8つのInfinity Fabricがあることで、かなり柔軟なスケールアップが可能になっている。1つの第3世代EPYCと4つのAMD Instinct MI200をInfinity Fabricで直接繋いで利用することも可能だし、PCI Expressのスイッチなどを繋げば、2つの第3世代EPYCと8つのAMD Instinct MI200を搭載するなども可能だ。
こうしたアーキテクチャ面での大きな強化により、性能は大幅に向上している。例えば、倍精度浮動小数点演算(FP64)の場合、Instinct MI100ではNVIDIA A100の9.7TFLOPSをわずかに上回る11.54TFLOPSだったが、Instinct MI200(最上位グレードのMI250X)では47.9TFLOPSと約4.9倍になっている。
MI100の時点ではわずかな差だったが、MI200では大きな性能向上を果たし、競合を大きく上回る性能を実現しているのだ。これだけ差があると、今後はA100ではなくMI200の導入の検討を検討するデータセンター/HPCユーザーが増えてきても不思議ではないだろう。
なお、そうしたニーズに応えるために、AMDはInstinctシリーズ向けのAIアプリケーションのSDKとなるROCmを提供しており、NVIDIAのCUDA向けに書かれたコードをROCmに取り込んで、Instinctシリーズ向けに書き換えるツールを用意している。
こちらも最新バージョンの5.0が投入され、新たにInstinct MI200シリーズ向けの最適化などが入っている。NVIDIAからの乗り換えを検討する場合にはROCmに関してもチェックしてみるといいだろう。