Gaudi3のDCOREには、16基のTPCと2基のMMEが搭載されている。つまり、TPCは合計64基、MMEは合計8基利用できることになる。
先述の通り、TPCは「Tensor Processor Core」の略だ。これを聞くとNVIDIAのGPUにおける「Tensor Core」を想起してしまうが、Tensor Coreが事実上の行列演算器なのに対して、TPCはベクトル演算器である。モノとして全然違う。
Gaudi 3のTPCは、2048bit(256byte)のSIMD演算器となっており、FP32/BF16/FP16/FP8/INT32/INT16/INT8のデータ形式に対応する。FP8は指数項4bit/仮数項3bitの「E4M3形式」と、指数項5bit/仮数項2bitの「E5M2形式」の両方に対応し、どちらを使うかは演算器側で自動選択される。この仕組みはNVIDIA GPUと同様だ。
2048bitのレジスタに対しFP16ならば128要素、FP32ならば64要素をセットして同一演算をこれらの全要素に適用できる。
MMEでは、BF16演算の理論性能値(1835TFLOPS)が、FP16演算の理論性能値(459TFLOPS)の4倍となっていた。それに対して、TPCでの演算はBF16もFP16も同じ28.7TFLOPとなる。一方で、TPCのFP8演算の理論性能値(57.3TFLOPS)は、FP16/BF16の理論性能値(28.7TFLOPS)の2倍となっている。
これは、TPCにおいて、MMEで行われたような「単位演算器に対するBF16(とFP8)の演算最適化モード」の搭載が見送られたからに違いない。試しに、先で算出した「1.75GHz」という動作クロックをもとにTPCにおけるFP32の理論性能値を検算してみると、以下の通り表に示した公称値と一致する。
64要素×2FLOPS×64基×1.75GHz≒14.3TFLOPS(※2)
(※2)2048bit長のレジスタにFP32(32bit=4byte)を収納すると、64要素となる
TPCの1基あたりの構造は下図のようになっており、それぞれのTPCが「スカラ演算器」と「ベクトル演算器」を1基ずつ内包していることが分かる。つまり、1命令の中でスカラ演算とベクトル演算を同時に利用できることになる。
2048bitというSIMDレーンの長さはさておいて、この構成自体はクラシックなGPUのプログラマブルシェーダーユニットとよく似ている。
次にMMEの方に目を向けてみよう。
Gauid 3のMMEは、1基当たり「256byte×256byte」、すなわち「2048bit×2048bit」の二次元行列の演算を1サイクルで行える。FP16であれば128要素×128要素の行列演算を1サイクルで完結できる計算だ。Gaudi 3は、この大規模かつ超強力な行列演算器を全体で8基搭載している。
ちなみに、競合であるNVIDIA H100などに搭載されている「第4世代Tensor Core」の1基当たりの演算能力は、FP16であれば16要素×16要素の行列積算を1サイクルで行える程度だ。行列演算器として考えるとGaudi 3よりだいぶ弱いように見えるが、NVIDIAはTensor Coreを多数搭載して対応している。例えばNVIDIA H100(SXM5)ではTensor Coreを528基も搭載している。
せっかくなので、FP16演算のポテンシャルを比べてみよう。
Gaudi3(1.75GHz) 128要素×128要素×2FLOPS×8基×1.75GHz≒459TFLOPS
NVIDIA H100(SXM5/1.98GHz) 16要素×16要素×2FLOPS×528基×1.98GHz≒535TFLOPS
このように、処理性能は拮抗(きっこう)する。厳密には、理論性能ではNVIDIA N100の方が少し上なのだが、Intelは「Gaudi 3のような大型の行列演算器を使うと、大規模な行列演算における演算器同士のデータのやりとりを省けるため、実効性能面では圧倒的に有利だ」とする。加えて、NVIDIAのアーキテクチャについて「複数の小型行列演算器を連動させて演算を行うと、演算器間のデータのやりとりに遅延とバス消費が発生し、実効性能面で不利となる」とも指摘した。
この主張を図示したものが以下の図だ。
左がGaudi 3におけるMME、右は特記されていないがNVIDIA H100のTensor Coreを示している。この図ではTensor Coreが4基しか描かれていないが、実際はこのクラスターが縦横に16組ずつ(つまり256基)存在していることになる言いたいことをくみ取りつつ、この主張をもうちょっと詳しくすると以下のようになる。
Gaudi 3のMMEでは、MMEに入力されるデータは256byteの行列データ2つ分、すなわち512byteだけで済む。それに対して、NVIDIA H100では、各Tensor Coreに入力するデータは16byteの行列データ2つ分、すなわち32byteだが、これが256基相互接続されているので、データアクセスは32byte×256基=8192byteも生じてしまう。つまり、NVIDIA H100は同じ演算をするのにメモリ帯域を16倍も多く消費する。
Gaudi 3のMMEなら、データの受け渡し的なものはMMEコア内部で完結可能で、共有メモリへのアクセスは不要となる。ゆえに絶対的な速度は高いし、それぞれのバス帯域の消費も少なくて済み、遅延もほぼ皆無。実効性能は、Gaudi 3の方が明らかに高い。
この主張にあえてツッコミを入れよう。
もしもMMEに入力する行列データ形式が「1種類のみ」で、そのデータが大規模な場合は、全く主張の通りとなるだろう。しかし、行列データ形式が「多様」で、それぞれがそれほど大きくないケース場合は、処理粒度の低いNVIDIAのアーキテクチャの方が並列度が高まり、実効性能も良くなるはずだ。
Gaudi 3のMMEは、大規模データを一括処理することに重きを置いている。データ形式が多様でそれぞれがそれほど大きくない場合、データの充填(じゅうてん)率が低い状態、つまり効率の悪い状態での稼働を強いられることになってしまうのだ。
まあ、本件は「どちらの方が優れている」というよりは「アーキテクチャによって『得手』『不得手』がある」と考えた方がよい。AIサーバーを構築する際は、その用途や目的に合わせたAIアクセラレーター(あるいはGPGPU)を選ぶべきということになる。
NVIDIA H100を「1」とした場合の、Gaudi 3の各種AI推論速度を表したグラフ。最大2倍の性能を出せているというのがIntelの主張だが、アーキテクチャの違いから「H100が有利なワークロード」もあれば「Gaudi 3が有利なワークロード」もある。ワークロードの内容を吟味して、最適なものを選ぶべきだろう
Intelの最新AIアクセラレーター「Intel Gaudi 3」は2024年第3四半期から本格出荷 一部OEMには先行出荷
リブランドした「Intel Xeon 6」はどんなCPU? Intelの解説から分かったことを改めてチェック
Xeon 6にLunar Lake 全方位で競合をリードする、信用のブランドがIntelだ――基調講演でパット・ゲルシンガーCEOが語ったこと
次世代CPU「Lunar Lake」でIntelが目指す“AI PC”とは? 驚くべき進化点と見える弱点、その克服法
AMDが新型GPUアクセラレータ「Instinct MI300シリーズ」の詳細を発表 「NVIDIA H100」よりも強い?Copyright © ITmedia, Inc. All Rights Reserved.