AMD が公式に提供しているオープンソース Vulkanドライバー、AMDVLK、それを構成する各種ソフトウェア (LLPC (LLVM-Based Pipeline Compiler), PAL (Platform Abstraction Library), XGL (Vulkan API Layer)) が、Beige Goby/Navi24 (gfx10) に対応した。
- Update pal from commit: f4c1b21c · GPUOpen-Drivers/pal@0a0a4ae
 - Update llpc from commit: 9c33c180 · GPUOpen-Drivers/llpc@7c2f5f7
 - Update xgl from commit: b30d9ce9 · GPUOpen-Drivers/xgl@d01032b
 
Beige Goby/Navi24 spec
Beige Goby/Navi24 の GPUコア部は、ShaderEngine (SE) 1基、SE あたりの ShaderArray (SA,SH) 2基、SA あたりの WGP (CU) 4基 (8基)、SE あたりの RenderBackend (RB) 4基という構成になっている。
スペックに関するもう 1つのコードブロックでは SE あたりの RB数は 2基となっているが、AMD 公式サイトでは ROP 32基 (RB+ 4基) となっているため、下引用部が正しいと思われる。1
メモリサイドキャッシュには、L2キャッシュブロック 1MiB (ブロック 4基)、L3キャッシュ/MALL 16MiB を持つ。メモリチャネルは 4ch、メモリタイプは GDDR6 に対応している (GDDR6 64-bit [16-bit x 4ch])。
余談となるが、AMDGPU に関するソフトウェア中では L3キャッシュを MALL と呼んでいるものの、MALL が何の略称かは分かれており、LLVM では Memory Attached Last Level 2、Linux Kernel における AMDGPUドライバーでは Memory Access at Last Level だとしている。3
else if (AMDGPU_IS_NAVI24(m_nullIdLookup.familyId, m_nullIdLookup.eRevId)) { pChipInfo->supportSpiPrefPriority = 1; pChipInfo->doubleOffchipLdsBuffers = 1; pChipInfo->gbAddrConfig = 0x242; // GB_ADDR_CONFIG_DEFAULT; pChipInfo->numShaderEngines = 1; // GPU__GC__NUM_SE; pChipInfo->numShaderArrays = 2; // GPU__GC__NUM_SA_PER_SE pChipInfo->maxNumRbPerSe = 4; // GPU__GC__NUM_RB_PER_SE; pChipInfo->nativeWavefrontSize = 32; // GPU__GC__SQ_WAVE_SIZE; pChipInfo->minWavefrontSize = 32; pChipInfo->maxWavefrontSize = 64; pChipInfo->numPhysicalVgprsPerSimd = 1024; // GPU__GC__NUM_GPRS; pChipInfo->maxNumCuPerSh = 8; // GPU__GC__NUM_WGP_PER_SA * 2; pChipInfo->numTccBlocks = 4; // GPU__GC__NUM_GL2C; pChipInfo->gsVgtTableDepth = 32; // GPU__VGT__GS_TABLE_DEPTH; pChipInfo->gsPrimBufferDepth = 1792; // GPU__GC__GSPRIM_BUFF_DEPTH; pChipInfo->maxGsWavesPerVgt = 32; // GPU__GC__NUM_MAX_GS_THDS; }
NGG (Next Generation Geometry) に対応する RDNA系アーキテクチャ GPU では、特殊なオンチップバッファ、Parameter Cache (PC) を持つ。PC はメモリキャッシュと異なり、ピクセルシェーダ (Pixel Shader, PS) への入力バッファとして用いられる。
RADVドライバーに NGGカリングが実装 | Coelacanth’s Dream
PC の規模について RDNA 2 dGPU という枠で見たとき、Beige Goby は他 GPU よりも少ない 512ラインとなっている。
その他 RDNA 2 dGPU、Sienna Cichlid/Navi21, Navy Flounder/Navi22, Dimgrey Cavefish/Navi23 それぞれで全体的な規模は異なるが、PC は同じ 1024ラインという構成を採っており、PC は GPUコア部の規模とは別に調節されているものと思われる。
また、RDNA 2 APU である VanGogh (Aerith), Yellow Carp (Rembrandt) で PC は、Beige Goby よりも小さい 256ラインとなっている。
case CHIP_RAVEN: case CHIP_RAVEN2: case CHIP_RENOIR: case CHIP_NAVI10: case CHIP_NAVI12: case CHIP_SIENNA_CICHLID: case CHIP_NAVY_FLOUNDER: case CHIP_DIMGREY_CAVEFISH: pc_lines = 1024; break; case CHIP_NAVI14: case CHIP_BEIGE_GOBY: pc_lines = 512; break; case CHIP_VANGOGH: case CHIP_YELLOW_CARP: pc_lines = 256; break;
| RDNA 2 | Sienna Cichlid (Navi21)  | 
Navy Flounder (Navi22)  | 
Dimgrey Cavefish (Navi23)  | 
Beige Goby (Navi24)  | 
|---|---|---|---|---|
| Shader Engine | 4 | 2 | 2 | 1 | 
| WGP (CU) | 40 (80) | 20 (40) | 16 (32) | 8 (16) | 
| RB+ | 16 | 8 | 8 | 4 | 
| Memory Bus | 256-bit | 192-bit | 128-bit | 64-bit | 
| L2 Cache | 4 MiB | 3 MiB | 2 MiB | 1 MiB | 
| L3 Cache | 128 MiB | 96 MiB | 32 MiB | 16 MiB | 
| Transistor | 26.8 B | 17.2 B | 11.1 B | 5.4 B | 
| Process | 7 nm | 7nm | 7 nm | 6 nm | 
| Die size | 520 mm2 | 336 mm2 | 237 mm2 | 107 mm2 | 
規模、ターゲット性能が近い Navi14 と Beige Goby/Navi24 を比較すると、SE 1基というのは共通するが、Beige Goby では 総 WGP (CU) 数は 8基減り、メモリバス幅と L2キャッシュも半減した。しかし L3キャッシュ 16 MiB が追加されている。
RB数も減ったが、処理可能なピクセル数を増やした RB+ となったため、相当 ROP数は変わらない。
それと Navi14 ではハードウェアのバグで NGG が無効化されていたが、Beige Goby ではそれが無いため有効可能になっていることは触れておきたい。
| Navi14 | Beige Goby (Navi24)  | 
|
|---|---|---|
| Shader Engine | 1 | 1 | 
| WGP (CU) | 12 (24) | 8 (16) | 
| RB (ROP) | 8 (32) | 4 (32) | 
| Memory Bus | 128-bit | 64-bit | 
| L2 Cache | 2 MiB | 1 MiB | 
| L3 Cache | N/A | 16 MiB | 
| Transistor | 6.4 B | 5.4 B | 
| Process | 7 nm | 6 nm | 
| Die size | 158 mm2 | 107 mm2 | 
| NGG | Disabled (for HW bug)  | 
Enabled |