AVX-512
Jak działa
AVX-512 operuje na 32 rejestrach ZMM o szerokości 512 bitów, mieszczących np. 16 liczb float32 lub 8 float64. Nowe kodowanie EVEX rozszerza przestrzeń operandów i dodaje per-instrukcyjne maski: osiem rejestrów maskujących (k0–k7) określa, które elementy wektora są przetwarzane lub scalane, co eliminuje część rozgałęzień. Instrukcje FMA łączą mnożenie i dodawanie w jednym takcie, a wbudowane rozgłaszanie pozwala użyć skalarnej wartości z pamięci jako operandu wektorowego. Podzbiory AI działają na skwantyzowanych danych: VNNI realizuje mnożenie-akumulację INT8/INT16 w pojedynczych instrukcjach (kluczowe dla iloczynów skalarnych w GEMM), BF16 i FP16 przyspieszają obliczenia w formatach o obniżonej precyzji. Dzięki rozszerzeniu VL te same operacje mogą działać także na rejestrach 128- i 256-bitowych.
Rozwiązany problem
Przetwarzanie numeryczne i inferencja modeli ML na CPU są ograniczone przepustowością jednostek wektorowych. Dwukrotnie szersze wektory (512 vs 256 bitów AVX2), większa liczba rejestrów i instrukcje typu FMA/VNNI pozwalają wykonać więcej operacji mnożenia-akumulacji na takt, przyspieszając GEMM, iloczyny skalarne i warstwy sieci neuronowych bez dedykowanego akceleratora.
Komponenty
32 rejestry wektorowe o szerokości 512 bitów (wzrost z 16 w AVX2). Mieszczą np. 16× float32, 8× float64, 64× int8.
Osiem rejestrów maskujących (k0–k7) pozwalających warunkowo przetwarzać lub scalać poszczególne elementy wektora bez rozgałęzień.
Nowy prefiks kodowania (następca VEX) umożliwiający adresowanie 32 rejestrów, maskowanie, wbudowane rozgłaszanie oraz sterowanie zaokrąglaniem i wyjątkami.
Podstawowy podzbiór wymagany we wszystkich implementacjach AVX-512; rozszerza większość instrukcji 32/64-bitowych na rejestry 512-bitowe wraz z FMA.
Vector Neural Network Instructions (Cascade Lake, 2019) — mnożenie-akumulacja na liczbach całkowitych (INT8/INT16) w pojedynczych instrukcjach, kluczowe dla inferencji kwantyzowanej.
Instrukcje akceleracji AI operujące na formacie bfloat16 (Cooper Lake, 2020).
Rozszerzenie F16C o pełne wsparcie dla liczb binary16 (FP16/half-precision) (Sapphire Rapids, 2023).
Ewolucja
Intel proponuje 512-bitowe rozszerzenia SIMD architektury x86 (lipiec 2013).
Pierwsza sprzętowa implementacja w procesorach Intel Xeon Phi x200 (Knights Landing) z podzbiorami F, CD, ER, PF.
Wejście AVX-512 do głównego nurtu serwerów i stacji roboczych (Xeon Scalable "Purley"), z podzbiorami VL, DQ, BW.
Wprowadzenie Vector Neural Network Instructions do akceleracji inferencji kwantyzowanej (INT8).
Dodanie instrukcji akceleracji AI operujących na formacie bfloat16.
AMD implementuje AVX-512 (F, CD, VL, DQ, BW, IFMA, VBMI, VNNI, BF16 i inne) w mikroarchitekturze Zen 4.
Sapphire Rapids dodaje podzbiór FP16; Intel zapowiada następcę — AVX10 (lipiec 2023).
Paradygmat wykonania
SIMD: pojedyncza instrukcja operuje gęsto na wielu elementach danych w rejestrze wektorowym; maski k0–k7 dają warunkowe, per-element wykonywanie.
Równoległość
Równoległość na poziomie danych (SIMD) — jedna instrukcja przetwarza do 16 float32 / 64 int8 jednocześnie w obrębie rdzenia CPU.
Wymagania sprzętowe
AVX-512 jest rozszerzeniem instrukcji x86 wykonywanym natywnie przez jednostki wektorowe CPU (Intel od Knights Landing/Skylake-X, AMD od Zen 4).