Afvejninger ved numerisk stabilitet
Hvor lavere præcision kræver omtanke
Afvejninger ved numerisk stabilitet er en gratis CUDA Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i CUDA Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. CUDA Academy-kurset indeholder 4 lektioner i alt.
Hastighed har en pris
Tensor Core-beregninger med lavere præcision er hurtige, men færre bit betyder afrundingsfejl. Numerisk stabilitet handler om at holde resultaterne pålidelige. ⚖️
Hvad afrundingsfejl er
Hver værdi med lav præcision afrundes til det nærmeste tal, der kan repræsenteres. Den lille afrundingsfejl er harmløs én gang, men kan ophobe sig over mange trin.
Underløb i FP16
FP16's smalle område får små tal til at falde til nul, hvilket kaldes underløb. Gradienter og meget små vægte kan ganske enkelt forsvinde under træningen.
Overløb i FP16
Det samme smalle område forårsager overløb: En stor værdi bliver til uendelig. Én forkert sum kan derefter ødelægge alt efterfølgende.
Loss-skalering redder situationen
En almindelig løsning er loss scaling: gang værdierne op før FP16-beregninger, så de kommer ud af underflow-området, og skaler dem derefter ned igen.
Hvorfor bred akkumulering hjælper
Tensor Cores akkumulerer i FP32 af en grund. Den bredere akkumulator forhindrer, at tusindvis af små additioner driver for langt.
BF16 omgår problemer med talområdet
Fordi BF16 bevarer FP32's eksponent, løber den sjældent over eller under. Svagheden er lavere præcision, ikke et mindre talområde.
Katastrofal annullering
Når to tal, der ligger tæt på hinanden, trækkes fra hinanden, forsvinder de forreste cifre. Det kaldes annullering. Lav præcision gør den resterende fejl langt mere synlig.
Bevar kritiske dele i FP32
Et sikkert mønster er blandet præcision: udfør de mange multiplikationer i FP16 eller BF16, men behold følsomme summer, normer og opdateringer i FP32.
Validér altid nøjagtigheden
Antag aldrig, at en hurtig kerne er korrekt. Sammenlign med en FP32-reference, og kontrollér, at fejlen holder sig inden for en acceptabel tolerance.
Måling af fejlen
En enkel kontrol er den absolutte forskel i forhold til et pålideligt resultat. Sammenlign denne fejl med en lille tærskel, du selv vælger.
float err = fabsf(gpu_result - cpu_result);Hurtig kontrol
Hvorfor akkumulerer Tensor Cores delsummer i FP32, selv når input er i FP16?
Opsummering
Du har lært om afvejninger ved præcision: vær opmærksom på overflow og underflow i FP16, brug loss scaling og FP32-akkumulering, og validér altid mod en reference. 🎯
Lær C++ med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 30
- Lektioner
- 120
Ofte stillede spørgsmål
Er lektionen “Afvejninger ved numerisk stabilitet” gratis?
Ja — hele teksten til “Afvejninger ved numerisk stabilitet” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af CUDA Academy-kurset, skal du opgradere til CoddyKit PRO. CUDA Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Afvejninger ved numerisk stabilitet”?
Hvor lavere præcision kræver omtanke Du øver dig i CUDA Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på CUDA Academy?
Der kræves ingen tidligere erfaring. CUDA Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Afvejninger ved numerisk stabilitet”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne CUDA Academy-lektion?
Ja. Alle CUDA Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Hvad Tensor Cores beregner
- Blandet præcision: FP16, BF16, TF32
- WMMA-fragment-API'et
- Afvejninger ved numerisk stabilitet