以前、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 は無効なデバイスとして実行時エラーが発生するようになっている。
gfx1030 は Sienna 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 |