Coelacanth's Dream

AMD、Dimgrey Cavefish/Navi23ベースの Radeon RX 6600M を発表

AMD は現地時間 2021/05/31、Computex 2021 における基調講演の中で、モバイル向け RDNA 2 GPU Radeon RX 6600M を発表した。
他にも Radeon RX 6800M/6700M が発表されているが、Radeon RX 6600M に注目する理由は、開発コードネーム Dimgrey Cavefish/Navi23 をベースにした初の製品とされるからだ。

Index

Dimgrey Cavefish/Navi23

Radeon RX 6600M は WGP(CU)数 14(28)基、RenderBackend数 8基 (ROP 64基相当)、メモリバス幅 128-bit、Infinity Cache 32MiB という仕様。

メモリバス幅と Infinity Cache の容量については、過去に Linux Kernel (amd-gfx) へのパッチの中で AMD のソフトウェアエンジニアより公開されてきた Dimgrey Cavefish/Navi23 の情報と一致する。
Dimgrey Cavefish/Navi23 の Infinity Cache はメモリチャネルあたり 4MiB | Coelacanth’s Dream AMD GPU のキャッシュ構成情報 ―― Dimgrey Cavefish / Aldebaran / VanGogh | Coelacanth’s Dream

キャッシュ構成情報から、Dimgrey Cavefish は ShaderArray あたり WGP 4基 (CU 8基) を持つと思われるが、Radeon RX 6600M は WGP 14基 (CU 28基) という 8の倍数ではない。
恐らく各 ShaderEngine の WGP 1基をそれぞれ無効化しているのだろう。 Dimgrey Cavefish のフルスペックは ShaderEngine (SE) 2基、SE あたりの ShaderArray (SA) 2基、SA あたりの WGP (CU) 数は 4 (8) 基で、総 WGP (CU) 数は最大 16 (32) 基と考えられる。

RDNA/2 アーキテクチャ では ShaderEngine あたりに ShaderArray 2基を持ち、WGP 3基 (CU 6基) の ShaderArray と WGP 4基 (CU 8基) の ShaderArray を組み合わせる非対称な ShaderEngine 内部構成となるが、こうした構成が RDNA/2 アーキテクチャ では許容されている。
RDNA 2 アーキテクチャ では ShaderEngine 内部の ShaderArray が非対称となる場合の性能効率を向上させる改善が加えられており、RadeonSI ドライバーの例では、Pixel Shader を処理する際、ShaderArray が非対称な構成では規模の小さい方に処理速度が引っ張られて効率が悪化してしまう。
そこで小さい方の ShaderArray が持つ WGP (CU) 数に合わせて Wave (スレッドの塊) を発行、実質対称的な ShaderArray として扱うことで効率の悪化を防ぐ。
あぶれる WGP (CU) が最低でも 1基出ることになるが、その分消費電力をセーブすることができ、それをクロック向上に回すことも可能だ。
AMD RDNA 2 ノート ―― 非対称な ShaderArray、gpu_info、XSS 【2020/09/23】 | Coelacanth’s Dream

RDNA 2 GPU のトランジスタ数

Radeon RX 6600M の製品ページにはトランジスタ数も記載されており、これまでに登場した Sienna Cichlid/Navi21Navy Flounder/Navi22 と比較した表が以下。

RDNA 2 Sienna Cichlid/Navi21 Navy Flounder/Navi22 Dimgrey Cavefish/Navi23
Shader Engine 4 2 2?
WGP (CU) 40 (80) 20 (40) 16? (32?)
RB+ 16 8 8
Memory Bus 256-bit 192-bit 128-bit
Infinity Cache 128 MiB 96 MiB 32 MiB
Transistor 26.8 B 17.2 B 11.1 B

Dimgrey CavefishNavy Flounder の約8割という WGP (CU) 数に対し、トランジスタ数は約6割となっている。
トランジスタ数のスケール具合で言えば、メモリバス幅 32-bit とそれに対応した Infinity Cache を減らし、WGP (CU) は Sienna Cichlid から半分にまで減らした Navy Flounder と同程度だ。
トランジスタを多く使用する SRAM である Infinity Cache を、Dimgrey Cavefish ではメモリチャネルあたり 4 MiB に抑え、メモリバス幅も同時に減らしたことで総合的には 32 MiB と他に比べて小さい容量になったことが影響していると思われる。

Dimgrey CavefishNavy Flounder を比較すると、ShaderEngine数と RenderBackend (RB+) は同数であり、Dimgrey Cavefish はメモリ性能を抑える代わりに WGP (CU)、RenderBackend は多めに搭載してピーク性能を高めているとも捉えられる。
RDNA 2 GPU がサポートしているハードウェアレイトレーシング機能は、内部の命令では BVH (Bounding VolumeHierarchy) データをメモリからフェッチする仕様になっており、Dimgrey Cavefish のそうした向きはレイトレーシング性能に影響が大きそうな気もするが、レイトレーシングはまだハイエンド GPU でなければ性能的に厳しいと考えていることの現れかもしれない。
AMD、RDNA 2 ISA Reference Guide を公開 | Coelacanth’s Dream