Robocikowo>ROBOCIKOWO
Wnioskowanie

MXFP8

2023AktywnyOpublikowano: 8 września 2026Aktualizacja: 8 września 2026Opublikowany
MXFP8 to format niskiej precyzji ze standardu OCP Microscaling (MX): elementy FP8 (E4M3/E5M2) z jednym współdzielonym wykładnikiem potęgi dwójki (E8M0) na blok 32 wartości.
Kluczowa innowacja
Zastępuje jedno skalowanie per-tensor w FP8 współdzielonym wykładnikiem potęgi dwójki (E8M0) na blok 32 elementów, co lepiej oddaje lokalne zmiany rzędu wielkości i umożliwia trening dużych modeli w 8 bitach bez zmian receptury.
Kategoria
Wnioskowanie
Poziom abstrakcji
Wzorzec
Poziom operacji
ModelTreningInferencja
Zastosowania
Trening dużych modeli językowych w 8 bitachInferencja LLM o wysokiej przepustowościRedukcja zużycia pamięci i przepustowościKwantyzacja aktywacji i gradientów z wartościami odstającymi

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 8-bitowym formacie FP8: E4M3 (4 bity wykładnika, 3 bity mantysy, zakres ok. ±448) używa się typowo dla przebiegu w przód, a E5M2 (5 bitów wykładnika, 2 bity mantysy, szerszy zakres) dla gradientów w przebiegu wstecz. Mnożenia macierzy wykonują rdzenie Tensor, które natywnie mnożą wartości FP8 i uwzględniają współczynniki blokowe, a akumulacja odbywa się w wyższej precyzji. Algorytm konwersji do skali (zaokrąglanie) ma istotny wpływ na dopasowanie wyników do BF16.

Rozwiązany problem

Kwantyzacja FP8 z pojedynczym współczynnikiem na cały tensor traci dokładność, gdy wartości w tensorze mają szeroki zakres rzędów wielkości (np. wartości odstające w aktywacjach lub gradientach). MXFP8 rozwiązuje ten problem, przydzielając osobny współczynnik skali każdemu 32-elementowemu blokowi, co pozwala trenować i uruchamiać modele w 8 bitach bez utraty jakości i bez modyfikacji receptury treningowej.

Komponenty

Blok mikroskalowania (32 elementy)Jednostka grupowania dla wspólnego skalowania.

Grupa 32 kolejnych wartości tensora dzielących jeden współczynnik skali.

Współdzielony wykładnik skali (E8M0)Skalowanie zakresu wartości bloku przy niskim koszcie sprzętowym.

8-bitowy wykładnik bez mantysy reprezentujący współczynnik skali jako potęgę dwójki dla całego bloku.

Elementy FP8 (E4M3 / E5M2)Reprezentacja pojedynczych elementów po przeskalowaniu.

Wartości 8-bitowe: E4M3 dla większej precyzji (forward), E5M2 dla szerszego zakresu (gradienty).

E4M34 bity wykładnika, 3 bity mantysy; zakres ok. ±448.
E5M25 bitów wykładnika, 2 bity mantysy; szerszy zakres (~±57344).

Implementacja

Pułapki implementacyjne
Algorytm konwersji i zaokrąglanie skaliWysoka

Sposób wyznaczania i zaokrąglania współczynnika E8M0 istotnie wpływa na dokładność; niewłaściwy algorytm rozjeżdża wyniki względem BF16.

Rozwiązanie:Stosuj sprawdzone receptury konwersji (np. MXFP8-E4M3 z odpowiednim zaokrąglaniem) zweryfikowane na treningu.
Wymóg sprzętu BlackwellŚrednia

Pełne natywne przyspieszenie dostępne jest dopiero na rdzeniach Tensor Blackwell; starsze GPU (Hopper, Ada) wymagają emulacji.

Rozwiązanie:Zweryfikuj wsparcie platformy (np. is_mxfp8_available) przed włączeniem MXFP8.
Skalowanie przy transpozycjachŚrednia

Bloki 32-elementowe są kierunkowe, więc transpozycja tensora wymaga ponownego wyznaczenia skal (często dwóch reprezentacji).

Rozwiązanie:Korzystaj z bibliotek (Transformer Engine) obsługujących transpozycje MXFP8.

Ewolucja

Oryginalny paper · 2023 · arXiv 2023 (OCP Microscaling Formats) · Bita Darvish Rouhani
Microscaling Data Formats for Deep Learning
Bita Darvish Rouhani, Ritchie Zhao, Ankit More, Mathew Hall
2023
Specyfikacja OCP MX v1.0 i pierwszy trening LLM poniżej 8 bitów
Punkt przełomowy

Konsorcjum OCP (AMD, Arm, Intel, Meta, Microsoft, NVIDIA, Qualcomm) publikuje standard MX definiujący MXFP8; praca źródłowa pokazuje pierwszy trening generatywnych LLM z wagami, aktywacjami i gradientami poniżej 8 bitów.

2024
Natywne wsparcie MXFP8 w rdzeniach Tensor NVIDIA Blackwell
Punkt przełomowy

Architektura NVIDIA Blackwell wprowadza sprzętowe wsparcie mikroskalowania (MXFP8, MXFP6, MXFP4) bezpośrednio w rdzeniach Tensor, w odróżnieniu od emulacji na wcześniejszych GPU.

2025
Receptury pre-treningu LLM w MXFP8 dopasowane do BF16

NVIDIA publikuje receptury pokazujące, że MXFP8-E4M3 z odpowiednim algorytmem konwersji dorównuje treningowi w BF16 dla modeli do 8 mld parametrów na zbiorach do 15 bln tokenów.

Hiperparametry (konfigurowalne osie)

Rozmiar blokuKrytyczna

Liczba elementów dzielących jeden współczynnik skali. W standardzie MX ustalona na 32.

32Wartość zdefiniowana w OCP MX v1.0.
Format elementuKrytyczna

Wariant FP8 użyty dla elementów: E4M3 lub E5M2.

E4M3Typowo forward pass.
E5M2Typowo gradienty (backward).
Format skaliWysoka

Format współdzielonego współczynnika skali; w MX to E8M0 (potęgi dwójki).

E8M08-bitowy wykładnik bez mantysy.

Złożoność obliczeniowa

Złożoność przestrzenna: ~8 bitów/element + 8 bitów na 32 elementy (E8M0).

Paradygmat wykonania

Tryb główny
Gęsty

MXFP8 to format numeryczny stosowany w gęstych mnożeniach macierzy na rdzeniach Tensor; skalowanie działa na poziomie bloku, a akumulacja odbywa się w wyższej precyzji.

Równoległość

Poziom równoległości
W pełni równoległy

Skalowanie blokowe i mnożenia MXFP8 są w pełni równoległe na rdzeniach Tensor GPU, zarówno w treningu, jak i inferencji.

Zakres
TreningInferencjaPomiędzy urządzeniami

Wymagania sprzętowe

Podstawowe

Rdzenie Tensor NVIDIA Blackwell natywnie obsługują mnożenia MXFP8 ze skalowaniem blokowym.