Avveininger for numerisk stabilitet
Hvor lavere presisjon krever omtanke
Avveininger for numerisk stabilitet er en gratis leksjon i CUDA Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i CUDA Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i CUDA Academy inneholder totalt 4 leksjoner.
Hastighet har en kostnad
Tensor Core-matematikk med lavere presisjon er rask, men færre biter betyr avrundingsfeil. Numerisk stabilitet handler om å holde resultatene pålitelige. ⚖️
Hva avrundingsfeil er
Hver verdi med lav presisjon avrundes til det nærmeste tallet som kan representeres. Denne lille avrundingsfeilen er ufarlig én gang, men kan hope seg opp over mange trinn.
Underflyt i FP16
Det smale området i FP16 gjør at små tall kan bli til null, noe som kalles underflyt. Gradienter og små vekter kan ganske enkelt forsvinne under trening.
Overflyt i FP16
Det samme smale området fører til overflyt: En stor verdi blir til uendelig. Én feilaktig sum kan deretter ødelegge alt som følger.
Loss scaling til unnsetning
En vanlig løsning er loss scaling: multipliser verdiene opp før FP16-beregninger, slik at de kommer ut av underflytområdet, og skaler dem deretter ned igjen.
Hvorfor bred akkumulering hjelper
Tensor Cores akkumulerer i FP32 av en grunn. Den bredere akkumulatoren hindrer at tusenvis av små addisjoner driver kraftig ut av kurs.
BF16 unngår problemer med tallområdet
Fordi BF16 beholder eksponenten fra FP32, oppstår overflyt eller underflyt sjelden. Svakheten er lavere presisjon, ikke et mindre tallområde.
Katastrofal kansellering
Når to tall som ligger nær hverandre trekkes fra hverandre, forsvinner de ledende sifrene. Dette kalles kansellering. Lav presisjon gjør den gjenværende feilen langt mer synlig.
Behold kritiske deler i FP32
Et trygt mønster er blandet presisjon: utfør de fleste multiplikasjonene i FP16 eller BF16, men behold følsomme summer, normer og oppdateringer i FP32.
Valider alltid nøyaktigheten
Anta aldri at en rask kernel er korrekt. Sammenlign med en FP32-referanse og kontroller at feilen holder seg innenfor en akseptabel toleranse.
Måle feilen
En enkel kontroll er den absolutte differansen mot et pålitelig resultat. Sammenlign denne feilen med en liten terskel som du velger.
float err = fabsf(gpu_result - cpu_result);Hurtigsjekk
Hvorfor akkumulerer Tensor Cores delsummer i FP32 selv når inndataene er i FP16?
Oppsummering
Du har lært om avveiningene ved presisjon: vær oppmerksom på overflyt og underflyt i FP16, bruk loss scaling og FP32-akkumulering, og valider alltid mot en referanse. 🎯
Lær deg C++ med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Avveininger for numerisk stabilitet» gratis?
Ja – hele teksten i «Avveininger for numerisk stabilitet» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av CUDA Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i CUDA Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Avveininger for numerisk stabilitet»?
Hvor lavere presisjon krever omtanke Du øver på CUDA Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med CUDA Academy?
Ingen tidligere erfaring er nødvendig. CUDA Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Avveininger for numerisk stabilitet»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne CUDA Academy-leksjonen?
Ja. Alle CUDA Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Hva Tensor Cores beregner
- Blandet presisjon: FP16, BF16, TF32
- WMMA Fragment API
- Avveininger for numerisk stabilitet