🟢 🔧 Hardware Objavljeno: · 4 min čitanja ·

AMD: Gluon block-level model omogućuje GEMM kernele s 5.255 TFLOPS MXFP4 na Instinct MI355

Editorial ilustracija: GPU akcelerator s rasporedom matričnih jedinica i pipeline tokova

AMD ROCm tim objavio je tutorial za pisanje high-performance GEMM kernela u Gluon programskom modelu na MI355 GPU-u. Optimirani FP16 kernel postiže 1.489 TFLOPS uz 98,75 posto MFMA efikasnosti, dok proširenja na BF8 (3.257 TFLOPS) i MXFP4 (5.255 TFLOPS) demonstriraju relevantnost za moderne AI workloade. Tutorial uključuje workgroup remapping i swizzle koji reducira L2 cache misses s 5,3 M na 4,1 M.

🤖

Ovaj članak generiran je uz pomoć umjetne inteligencije na temelju primarnih izvora.

AMD ROCm blog tim objavio je 22. svibnja 2026. detaljan tutorial za pisanje high-performance GEMM (General Matrix Multiplication) kernela u Gluon programskom modelu, ciljanih za AMD Instinct MI355 GPU. Tutorial dokumentira postizanje 98,75 posto MFMA efikasnosti za FP16 GEMM (1.489 TFLOPS), zajedno s proširenjima na moderne low-precision formate: BF8 koji daje 3.257 TFLOPS i MXFP4 koji daje 5.255 TFLOPS.

Što je Gluon i kako se razlikuje od HIP-a?

Gluon je AMD-ov block-level programski model za GPU kernel development na CDNA i RDNA arhitekturama. Sintaksa je inspirirana CUDA Tile API-jem i sličnim Triton block-level abstrakcijama, ali targeting CDNA hardware specifičnosti — MFMA matrix multiply jedinica, multi-XCD chiplet topologije, L2 cache strukture.

Razlika od standardnog HIP programa: HIP daje C++-like CUDA-ekvivalentni API gdje compiler optimizira kerneli. Gluon eksplicitno traži od developera da specificira layouts tensora, pipeline stages, register budget po thread bloku, i swizzle pattern za memory accesses. To je više posla za developera, ali daje finiju kontrolu — što je presudno za postizanje 95+ posto MFMA efikasnosti koja je inače nedostupna kroz HIP standardne optimizacije.

Gluon je open-source dio ROCm ekosistema, dostupan kroz rocm-developer-tools paket od ROCm 7.0 release-a (siječanj 2026).

Kako optimizirani FP16 kernel postiže 1.489 TFLOPS?

MI355 je AMD-ova najnovija data center GPU iz CDNA 4 generacije s 8 XCD chiplet topologijom. Teorijski peak FP16 throughput je oko 1.508 TFLOPS (uz idealno popunjene MFMA jedinice). Tutorial pokazuje korake do 1.489 TFLOPS (98,75 posto teorijskog):

  1. Block-level tiling: tensor A (M × K) i B (K × N) particioniraju se na blokove veličine 128×128 koji odgovaraju MFMA instrukcijskoj granularnosti.
  2. Pipeline stages: compute (MFMA instrukcija) i memory loading (LDS u registre) interleave se kroz 4-stage pipeline, sakrivajući memory latenciju.
  3. Register budgeting: developer eksplicitno ograničava broj registara po thread bloku (256 SGPR + 1024 VGPR) da se izbjegne register spilling u L1.
  4. MFMA instrukcijska selekcija: tutorial koristi mfma_f32_16x16x16f16 koja računa 16×16 produkt blok u jednom takt-u koristeći 16×16 FP16 ulaza.

Kernel uz ove optimizacije postiže 1.489 TFLOPS za 8192×8192×8192 GEMM što je oko 3× brže od naive HIP implementacije (520 TFLOPS).

Što donose BF8 i MXFP4 ekstenzije?

BF8 (BFloat8) je 8-bitni floating point format s 5-bitnom mantisom i 3-bitnim eksponentom, dizajniran za LLM training. MI355 hardware-podržava BF8 GEMM nativno kroz mfma_f32_16x16x32bf8 instrukciju koja računa 16×16 produkt u jednom takt-u za 32×16 BF8 ulaze (dvostruko gustje od FP16 jer su elementi pola veličine). Tutorial kernel postiže 3.257 TFLOPS BF8 throughput, što je primjereno za pre-training large language modela.

MXFP4 (Microscaling FP4) je još agresivniji 4-bitni format s shared exponent po grupi vrijednosti (typically 32 elementa). Smanjuje memory bandwidth 4× u odnosu na FP16 uz održanje akceptabilne kvalitete za LLM inference. AMD MI355 podržava MXFP4 GEMM kroz mfma_f32_16x16x64mxfp4 instrukciju. Tutorial kernel postiže 5.255 TFLOPS MXFP4 throughput što je relevantno za inference deployment frontier modela na MI355.

Što radi workgroup remapping i swizzle optimizacija?

CDNA 4 arhitektura ima 8 XCD chipleta (Accelerator Compute Dies) koji dijele L2 cache ali svaki ima vlastiti L1. Standardni linear workgroup mapping rezultira u cache thrashingu jer susjedni workgroupovi pristupaju nesusjednim memory regijama u L2.

Tutorial uvodi workgroup remapping: workgroup ID se transformira kroz space-filling curve (Hilbert curve varianta) tako da susjedni workgroupovi u logical ID-u sad mapiraju u susjedne L2 cache regije. Plus swizzle pattern u memory access-u koji ravnomjerno distribuira accesses preko HBM kanala. Rezultat: L2 cache misses padaju s 5,3 milijuna na 4,1 milijuna za 8192×8192 GEMM (-23 posto). U direktnom throughput improvement-u to znači +6 posto za memory-bound GEMM regije.

Što je namjerno regresivni primjer u tutorial-u?

Tutorial uključuje dijagnostički primjer s neispravnim register budgetingom — kernel koji bi naivno trebao biti brži ali zapravo pada za 73 posto throughput-a (FP16 384 TFLOPS umjesto 1.489). Razlog: register spilling kad developer alocira previše registara po thread bloku.

Cilj je da naučiti developere kako prepoznati i dijagnozirati register spilling u realnim kernelima. Tutorial pokazuje kako koristiti rocprof profiler da detektira spilling kroz konkretne hardware counter-e, i kako modificirati Gluon kod da ga riješi. Ovo je rijetka praksa u GPU tutorialima koji obično prikazuju samo successful primjere — dijagnostički primjer je vrijedan jer pokazuje kako rješavati realne performance probleme u proizvodnji.

Česta pitanja

Što je Gluon programski model?
Gluon je AMD-ov block-level programski model za pisanje GPU kernela koji daje developerima eksplicitnu kontrolu nad layouts, pipeline stages i register budgetingom. Razlika od HIP-a: developer kontrolira detalje koje HIP compiler obično skrivа, što omogućuje viši performans uz veći inženjerski napor.
Što znači 98,75 posto MFMA efikasnosti?
MFMA (Matrix Fused Multiply-Add) je hardware instrukcija na AMD CDNA arhitekturi za matrix multiplikaciju. 98,75 posto efikasnosti znači da kernel iskorištava 98,75 posto teorijskog peak throughput-a MFMA jedinica — vrlo blizu hardware limita.
Što je MXFP4 i zašto je relevantan?
MXFP4 (Microscaling FP4) je 4-bitni floating-point format s shared exponent po grupi vrijednosti. Smanjuje memory bandwidth 4× u odnosu na FP16 uz održanje akceptabilne kvalitete za LLM inference. AMD MI355 je hardware-podržava nativno preko MFMA instrukcija.