Coelacanth's Dream

AMD Instinct MI200/CDNA2 Instruction Set Architecture が公開される

AMD Instinct MI200 シリーズ (コードネーム: Aldebaran) の ISA (命令セット) ドキュメント、AMD Instinct MI200/CDNA2 Instruction Set Architecture が公開された。

CDNA 2/MI200/Aldebaran の ISA での大きな変更には、以下があげられる。

ベクタレジスタの統合については、CDNA 1/MI100/Arcturus では ArchVGPR と AccVGPR が分かれており、メモリとそのキャッシュ、LDS (Local Data Share) への入出力には ArchVGPR のみが対応していた。そのため、常に AccVGPR に出力される MFMA 命令の結果は、ArchVGPR を経由してメモリ、または LDS に格納する必要があった。
その手間が減らされるのと同時に、統合されたベクタレジスタは ArchVGPR と AccVGPR はオフセットを指定して分割使用する形になるが、非対称的に分割可能であるため、スレッドに割り当てる ArchVGPR を CDNA 1/MI100/Arcturus より多くすることもできる。
CDNA 2 アーキテクチャでは Unified Register Files を実装 | Coelacanth’s Dream こうした改善は実行性能の向上に寄与していると思われる。

GDS の削除は、AMDGPU ドライバーで Aldebaran をサポートする最初のパッチで触れられていた。
Linux Kernel に 「Aldebaran」 GPU をサポートするパッチが投稿される ―― CDNA 2/MI200? | Coelacanth’s Dream そこでは GDS を削除した理由を、アトミック操作/使用のためとしている。
GDS への変更は CDNA 1/MI100/Arcturus の時点で行われており、Vega10/Vega20 では GDS は 64KB (32バンク) だったのが 1CDNA 1/MI100/Arcturus では 4KB (4バンク) に減らされている。2
GDS はすべての CU からアクセス可能なオンチップメモリであり、1つの GPU に搭載される CU数が増えたことで、性能の確保と実装コストが高く付くようになったのかもしれない。

LDS について、FP64性能の引き上げに伴ってエントリあたり 8 bytes (64-bit) に拡張されたのではないかと考えていたが、ドキュメントによると 64 KB (32 [banks] x 512 [entries] x 4 [bytes per entries]) のままとされていた。

参考リンク