Coelacanth's Dream

やっぱり Aldebaran/MI200 はトータル 110CU ?

以前、MIOpen へのプルリクエストに付けられたコメントから Aldebaran/MI200 GPU が 110CU ではないかと読み取ったが、もっと直接的な記述が MIOpen のコード中に存在していた。
Aldebaran/MI200 はダイあたり 55CU、トータル 110CU か? | Coelacanth’s Dream

         else if(arch == "gfx908")
         {
             assert(num_cu == 120);
         }
         else if(arch == "gfx1030")
         {
             assert(num_cu == 72 || num_cu == 36);
         }
         else if(arch == "gfx90a")
         {
             assert(num_cu == 110);
         }
         else
             throw std::runtime_error("Invalid Arch Name");

上記コード部は GPUデバイスの情報を検証する部分に使われており、アーキテクチャを示す GPUID (gfxXXX) とその CU数が一致しない GPU は無効なデバイスとして実行時エラーが発生するようになっている。
gfx1030Sienna Cichlid/Navi21 に割り当てられている GPUID だが、72 CU (32 WGP?) を対象にしており、製品的には Radeon RX 6800 XT Graphics かそれと同様の構成を取る未発表のものを想定していると思われる。

Aldebaran/MI200 の ShaderEngine 構成等は不明だが、AMD はチップレット技術を GPU に投入する上で単一の GPU と認識できるようにする特許を投稿していること、
プライマリーダイとセカンダリーダイで構成される Aldebaran/MI200 GPU | Coelacanth’s Dream FP64演算のフルレート実行と FP32演算のパックド実行に対応しているため、合計 CU が Arcturus/MI100 (120 CU) より 10基少ない 110CU だとしても、大幅に性能が向上すること、クロックあたりの性能に対するメモリ帯域を維持できる点で、自分は Aldebaran/MI200 はトータル 110CU (2x 50CU) ではないかと考えている。

CDNA Arcturus/MI100 Aldebaran/MI200
Active CUs 120 CU 110 CU?
(2x 55 CU?)
FP32:FP64 Rate
(Arcturus FP32 = 1)
1 : 0.5 2 : 1 ?
FP32 Ops/clk
([CU] * [SP per CU] * [FP32 Rate] * 2 [Ops])
15360 28160 ?
(2x 14080) ?
FP64 Ops/clk
([CU] * [SP per CU] * [FP64 Rate] * 2 [Ops])
7680 14080 ?
(2x 7040) ?
Memory HBM2 2.4Gbps HBM2e
Memory Bus width 4096-bit 8192-bit?
(2x 4096-bit)
Memory Size 32 GB 128GB ?
(2x 64GB ?)

Arcturus ( gfx908 )

Device ID Revision ID Product Name Memo
0x7388
0x738C MI1001
0x738E
0x7390 (Arcturus VF)

Aldebaran ( gfx90a )

Device ID Revision ID Product Name Memo
0x7408
0x740C
0x740F
0x7410 (Aldebaran VF)2