Nscale: GEMM tuning přináší Instinct MI300X až sedminásobný nárůst výkonu
Test se zaměřil na tzv. GEMM tuning. GEMM je zkratka pro General Matrix Multiply či General Matrix Multiplication (také třeba Genetically Modified Mouse, ale ty zřejmě společnost Nscale nevyužívá). GEMM tuning pak laděním výkonu násobení matic prostřednictvím výběru vhodného (ideálně nejvhodnějšího) algoritmu (aby vyhovoval kombinaci kapacity paměti, cache a výpočetního výkonu) s kombinaci s vyladěním parametrů. Nejde tedy o optimalizace na úrovni kódu.
V testu byly použity knihovny a software:
- Docker Image
- ROCm 6.1.2
- Python 3.10.12
- PyTorch 2.5.0
- Triton 2.1.0
- Flash Attention 2.0.4
- rocBLAS 4.1.2
- hipBLASlt 0.8.0
- Rccl 2.18.6
- vLLM 0.5.0
Nscale zveřejnila výsledky 162 měření (podrobná excelová tabulka se všemi výsledky a 30 grafy je k dispozici v odkazu ve zdrojích), z nichž část shrnula do následujících grafů. První ilustruje nárůst výkonu:
Nárůst výkonu (Nscale)
Maximální posun byl dosažen v Llama 2 s 70 miliardami parametrů, výkon narostl 7,28× / o 628 % (graf patrně ořezává spíše než že by zaokrouhloval), nejnižší v Mixtral 8× s 7 miliardami parametrů, konkrétně 1,12× / o 12 %. V průměru jde o nárůst 3,35× (o 235 %).
Pokles latencí (Nscale)
Podobné posuny, ale směrem dolů, se týkají latencí. Nejcitelnější pokles latencí (o 86 %) se projevil opět v Llama 2 se 70 miliardami parametrů, nejnižší v Mixtral 8× se 7 miliardami parametrů (o 17 %).
Obecně lze říct, že výkonnostní dopad GEMM tuning (v rámci stejného typu zátěže) roste s počtem použitých parametrů. Z hlediska četnosti bylo nejčastěji dosahováno nárůstu výkonu blízkému trojnásobku a poklesu latencí kolem 65 %.
Nscale (zdrojová data, text)