Kako NVIDIA Transformer Engine ubrzava rad transformer modela na GPU-ima
Novi NVIDIA Transformer Engine omogućava značajno ubrzanje transformer modela kombinovanjem optimizovanih GPU kernela, BF16 računanja i FP8 izvršavanja.

Da li znate da NVIDIA Transformer Engine može ubrzati transformer modele čak 2,5 puta? Ova tehnologija, dizajnirana za moderne GPU-ove, kombinuje optimizovane kernele, BF16 računanje i FP8 izvršavanje kako bi maksimizirala performanse.
Transformer Engine funkcioniše tako što integriše fuzionisane module kao što su te.Linear, te.LayerNorm i te.TransformerLayer. Ovi moduli smanjuju broj pokretanja kernela i memorijski saobraćaj, što rezultira bržim izvršavanjem. Ključna karakteristika je podrška za FP8 (8-bit floating point) računanje, koje može značajno smanjiti potrošnju memorije i ubrzati proces obrade.
Za podršku FP8, Transformer Engine koristi takozvani "delayed scaling" pristup, koji automatski upravlja skaliranjem tenzora i istorijom amax vrednosti. Ovo omogućava stabilno izvršavanje čak i pri smanjenoj preciznosti. Međutim, važno je napomenuti da FP8 podrška zahteva moderne GPU-ove sa compute capability 8.9 ili višim (kao što su NVIDIA L4, H100, Ada Lovelace ili Blackwell).
Da bi demonstrirali prednosti Transformer Engine-a, autori su kreirali kompaktan GPT-stil model sa 768-dimenzionalnim embedding-om, 12 attention head-ova i 4 transformer sloja. Model je treniran na sintetičkim sekvencama sa aritmetičkim šablonima, što omogućava lakšu validaciju rezultata.
Rezultati benchmark-a su impresivni: FP8 izvršavanje je pokazalo brzinu od 7,1 ms po koraku treniranja, što je 2,5 puta brže od BF16 režima (17,1 ms po koraku). Pored toga, FP8 režim je koristio samo 2,8 GB GPU memorije, u poređenju sa 3,4 GB u BF16 režimu.
Za korisnike sa starijim GPU-ovima, Transformer Engine automatski prelazi na pure-PyTorch fallback režim, koristeći BF16 ili FP32 preciznost. Ovo omogućava kompatibilnost sa širokim spektrom hardvera, dok i dalje pruža prednosti optimizovanih kernela.
Jedan od najzanimljivijih aspekata Transformer Engine-a je mogućnost inspekcije internih FP8 metapodataka. Korisnici mogu pratiti skalirajuće faktore i amax istoriju, što pruža uvid u to kako se održava numerička stabilnost pri smanjenoj preciznosti.
Kao što pokazuje ovaj primer, Transformer Engine predstavlja značajan korak napred u optimizaciji transformer modela. Sa porastom veličine modela, prednosti FP8 režima postaju još izraženije, što ga čini ključnom tehnologijom za buduće AI aplikacije.