MXFP4
Jak działa
Tensor jest dzielony na bloki 32 kolejnych elementów. Dla każdego bloku wyznaczany jest jeden współdzielony współczynnik skali w formacie E8M0 (8-bitowy wykładnik potęgi dwójki), zwykle na podstawie maksymalnej wartości bezwzględnej w bloku. Elementy są następnie skalowane i zapisywane w 4-bitowym formacie FP4 E2M1, który koduje 16 wartości (0, ±0,5, ±1, ±1,5, ±2, ±3, ±4, ±6). Mnożenia macierzy wykonują rdzenie Tensor, które natywnie mnożą wartości FP4 i uwzględniają współczynniki blokowe, a akumulacja odbywa się w wyższej precyzji. Ze względu na skrajnie niską precyzję FP4, jakość silnie zależy od doboru współczynnika skali i algorytmu zaokrąglania.
Rozwiązany problem
Klasyczna kwantyzacja 4-bitowa z jednym współczynnikiem na tensor traci zbyt dużo dokładności przy tak małej liczbie bitów. MXFP4 przydziela osobny współczynnik skali każdemu 32-elementowemu blokowi, co pozwala drastycznie zmniejszyć zużycie pamięci i przepustowości (np. uruchomić model MoE na jednym GPU) przy akceptowalnej utracie jakości.
Komponenty
Grupa 32 kolejnych wartości tensora dzielących jeden współczynnik skali.
8-bitowy wykładnik bez mantysy reprezentujący współczynnik skali jako potęgę dwójki dla całego bloku.
4-bitowa wartość zmiennoprzecinkowa: 1 bit znaku, 2 bity wykładnika, 1 bit mantysy; koduje 16 poziomów, maksimum ±6.
Implementacja
Współdzielony współczynnik skali może przyjmować wyłącznie potęgi dwójki. Wyznaczanie go z maksimum bezwzględnego bloku i zaokrąglanie potrafi marnować część zakresu dynamicznego oraz zwiększać błąd kwantyzacji; jakość silnie zależy od strategii doboru skali i zaokrąglania elementów.
FP4 E2M1 koduje tylko 16 wartości, więc kwantyzacja wszystkich wag i aktywacji zwykle degraduje jakość. W praktyce (np. gpt-oss) do MXFP4 kwantyzuje się głównie wagi warstw Mixture-of-Experts, a wrażliwe warstwy pozostawia w wyższej precyzji.
Natywne mnożenia MXFP4 są dostępne dopiero w rdzeniach Tensor architektury Blackwell. Na starszym sprzęcie MXFP4 trzeba dekwantyzować lub emulować, co znosi przewagę przepustowości i może spowolnić inferencję.
Ewolucja
Konsorcjum OCP (AMD, Arm, Intel, Meta, Microsoft, NVIDIA, Qualcomm) publikuje standard MX, definiujący m.in. 4-bitowy format MXFP4 (E2M1) ze skalą E8M0 na blok 32 elementów.
Architektura NVIDIA Blackwell wprowadza sprzętowe wsparcie mikroskalowania (MXFP8, MXFP6, MXFP4) bezpośrednio w rdzeniach Tensor.
OpenAI publikuje otwartowagowe modele gpt-oss-20b i gpt-oss-120b z natywną kwantyzacją MXFP4 wag Mixture-of-Experts, dzięki czemu 20b mieści się w 16 GB pamięci, a 120b na pojedynczym GPU 80 GB.
Hiperparametry (konfigurowalne osie)
Liczba elementów dzielących jeden współczynnik skali. W standardzie MX ustalona na 32.
Format elementu w MXFP4 to FP4 E2M1 (2 bity wykładnika, 1 bit mantysy).
Format współdzielonego współczynnika skali; w MX to E8M0 (potęgi dwójki).
Złożoność obliczeniowa
Złożoność przestrzenna: ~4 bity/element + 8 bitów na 32 elementy (E8M0).
Wąskie gardło obliczeniowe
Głównym celem MXFP4 jest odciążenie przepustowości i pojemności pamięci dzięki 4-bitowemu przechowywaniu wag. Wąskie gardło przesuwa się ku przepustowości arytmetycznej rdzeni Tensor oraz — na sprzęcie bez natywnego wsparcia — ku kosztowi dekwantyzacji bloków przy każdym użyciu.
Paradygmat wykonania
MXFP4 to format numeryczny stosowany w mnożeniach macierzy na rdzeniach Tensor; skalowanie działa na poziomie bloku, a akumulacja odbywa się w wyższej precyzji.
Równoległość
Skalowanie blokowe i mnożenia MXFP4 są w pełni równoległe na rdzeniach Tensor GPU.
Wymagania sprzętowe
Rdzenie Tensor NVIDIA Blackwell natywnie obsługują mnożenia MXFP4 ze skalowaniem blokowym.
Format można emulować programowo (np. biblioteka microxcaling), ale bez akceleracji sprzętowej.
CPU nie ma natywnych mnożeń MXFP4; użycie ogranicza się do emulacji lub dekwantyzacji do wyższej precyzji.