Hot Chips 34において、AMDは最強の科学技術用GPUである「MI200 シリーズ」の発表を行った。

MI200シリーズはすでに発表済みの製品だが、なぜ最低の消費電力で最高の性能が出せるのかなど、その中身についての詳しい発表が行われるのは今回のHot Chips 34が初めてである。

NVIDIAのH100 GPUは科学技術用のFP64での演算で128TFlopsの演算性能を持ちカタログ上、最強であるが、 AMDのMI250XもFP64では47.9TFlopsという性能を持つと発表している。そして、MI250XはFrontierスパコンで1,102.00Pflopsという世界最高のHPL性能をたたき出している。

また、AMDはFrontierではこの性能を消費電力21,100kWで実現していると発表している。これは、55.227GFlops/Wという大型スパコンではGreen 500のトップの性能である。日本の富岳が442,010TFlops/Wで消費電力29.899kWであるのと比較すると、そのエネルギー効率の高さが分かる。

AMDのInstinct MI200シリーズはAMDのワークロードに最適化したCDNA2アーキテクチャのGPUである。そして、AMDとしては初めてのマルチダイのGPUである。さらにInfinity Fabricを使って4チップのGPUを接続できるので、最大8個のダイを相互接続するGPUノードを作ることができる。

  • MI200シリーズのGPU

    MI200シリーズのGPUはAMDのCDNA2アーキテクチャのGPUで2つのダイを使って集積度を高めたGPUである。そして、Infinity Fabricを使って4個のダイを接続できる (このレポートのすべての図はHot Chips 34におけるAMDの発表資料のコピーである)

AMDのMI250X GPUは6nmプロセスで製造されるGPUで、集積度は(2チップで)580億トランジスタにのぼる。そして、全体で8個のHBM2e 3Dメモリを集積している。

  • デュアルダイのMI250X MCM

    デュアルダイのMI250X MCM。580億トランジスタを集積し、220個のCUを搭載している

デュアルダイであるので、2個のMI200GPU、8個のHBM2eメモリが搭載されている。GPUダイはそれぞれ1個のシリコン片であるが、HBM2eメモリは8個のHBM DRAMを積み重ねて積層したチップになっている。また、第2世代のマトリクスコアやチップへの配線を広げる2.5D Elevated Fanout Bridgeなども別のチップレットで作られている。

  • MI200GPU

    MI200 GPUはメインのSi基板の他に、マトリクスコアのチップレット、HBM2eメモリのチップレットなどで作られている

AMDのGPUは倍精度の浮動小数点数のマトリクス乗算を実行することができ、MI250XはMI100の2倍の0.44GFlops/Wの性能を持つ。AMDは長年CPUを開発してきており、その経験を生かして、低電源電圧で動作する低消費電力の演算器を開発している。また、クロックやデータの動作パワーを最小化する構成をとっている。そして、アーキテクチャ的にデータの移動経路を効率化し、オペランドの再利用を高めて電力の節約に努めている。結果として、MI250Xの演算器はMI100の演算器の半分のエネルギーで動作するようになっている。

  • CPUの設計の経験を活かし、CUのクロック周波数を引き上げた

    CPUの設計の経験を活かし、CU(Compute Units)のクロック周波数を引き上げた。また、低電源電圧動作設計に徹し、マトリクスのデータパスの効率化を行うなどで、消費電力を引き下げた

CDNA 2ではマトリクスコアの設計を改善して倍精度の演算は4倍、BF16のマトリクス演算の性能は2倍に引き上げた。また、マトリクスの演算器の効率を改善した。

  • CDNA 2アーキテクチャのCU

    CDNA 2アーキテクチャのCUは、倍精度演算は4倍の性能、BFloat16演算は2倍の性能になっている。また、倍精度IEEE754演算器も効率化

CDNA2のメモリとキャッシュの階層は次の図のようになっている。GCD L2キャッシュごとにメモリが分割された構造になっており、どちらを使っているかはソフトで区別する必要があるが、GCDごとに独立な仕事を行う場合にはこちらの方が使いやすい。しかし、8MBのL2の外側でメモリはInfinity Fabricでつながっており、メモリブロックの転送はできるようになっている。

  • CDNA 2のメモリとキャッシュはGCD単位に作られている

    CDNA 2のメモリとキャッシュはGCD単位に作られており、GCD間のデータ転送はInfinty Fabric経由で行う構造になっている

次の図は各種演算器とメモリの容量やバンド幅を纏めた表である。MI250Xの演算性能はFP64演算の場合は47.9TFlopsである。これがマトリクス乗算の場合は95.7TFlopsと倍増する。さらにAI演算のBF16 Matrixの場合は383TFlopsになる。

MI250Xのメモリサイズは128GB、メモリバンド幅は3.2TB/sとなっている。

  • MI250XのFP64の演算性能は47.9TFlops

    MI250XのFP64の演算性能は47.9TFlopsとなっている。メモリは64MBのHBM2eメモリが使われている。AI演算はBF16matrix演算では383TFlopsの演算性能を持つ

GCDをInfinity Fabricで接続すれば、全体が1つのメモリ空間となるUnified Shared Memoryを実現できる。また、CPUのハードウェアがDDRやHBMなどのメインメモリをコヒーレントにキャッシュする構造になっている。それぞれのGPUハードウェアはローカルなHBMをコヒーレントにキャッシュする。また、それぞれのGPUは16ビットのリンクでホストに接続されるというかなり密な接続になっているが、Infinity Fabricで接続しない場合はGCDのメモリ間はコヒーレントな接続にはなっていない。一方、TLB shootdownをサポートしているので、IOMMUのページテーブルの管理は楽である。

  • Infinity Fabricを使えばすべてのメモリがつながる

    Infinity Fabricを使えばすべてのメモリがつながり、共通のシェアードメモリを構成する。CPUハードウェアがDDRとHBMメモリをコヒーレントにキャッシュする