Afwegingen rond numerieke stabiliteit
Waar lagere precisie extra zorg vereist
Afwegingen rond numerieke stabiliteit is een gratis CUDA Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject CUDA Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus CUDA Academy bevat in totaal 4 lessen.
Snelheid heeft een prijs
Tensor Core-berekeningen met lagere precisie zijn snel, maar minder bits betekenen afrondingsfouten. Numerieke stabiliteit is de kunst om resultaten betrouwbaar te houden. ⚖️
Wat een afrondingsfout is
Elke waarde met lage precisie wordt afgerond naar het dichtstbijzijnde getal dat kan worden weergegeven. Die kleine afrondingsfout is één keer onschadelijk, maar kan zich over veel stappen opstapelen.
Onderloop bij FP16
Door het beperkte bereik van FP16 kunnen kleine getallen naar nul vallen; dit heet onderloop. Gradiënten en kleine gewichten kunnen tijdens het trainen eenvoudig verdwijnen.
Overloop bij FP16
Hetzelfde beperkte bereik veroorzaakt overloop: een grote waarde wordt oneindig. Eén verkeerde som kan vervolgens alles wat daarna komt besmetten.
Loss scaling als oplossing
Een veelgebruikte oplossing is loss scaling: vermenigvuldig waarden vóór FP16-berekeningen zodat ze buiten het underflowgebied komen, en schaal ze daarna weer terug.
Waarom accumulatie met hogere precisie helpt
Tensor Cores accumuleren om een reden in FP32. Die bredere accumulator voorkomt dat duizenden kleine optellingen sterk gaan afwijken.
BF16 omzeilt bereikproblemen
Omdat BF16 de exponent van FP32 behoudt, treedt er zelden overflow of underflow op. De zwakte is een lagere precisie, niet een kleiner bereik.
Catastrofale annulering
Het aftrekken van twee bijna gelijke getallen wist de voorste cijfers uit; dit heet annulering. Een lage precisie maakt de overblijvende fout veel zichtbaarder.
Kritieke onderdelen in FP32 houden
Een veilige aanpak is gemengde precisie: voer de meeste vermenigvuldigingen uit in FP16 of BF16, maar houd gevoelige sommen, normen en updates in FP32.
Nauwkeurigheid altijd valideren
Ga er nooit van uit dat een snelle kernel correct is. Vergelijk deze met een FP32-referentie en controleer of de fout binnen een aanvaardbare tolerantie blijft.
De fout meten
Een eenvoudige controle is het absolute verschil met een betrouwbaar resultaat. Vergelijk deze fout met een kleine drempel die je zelf kiest.
float err = fabsf(gpu_result - cpu_result);Snelle controle
Waarom accumuleren Tensor Cores gedeeltelijke sommen in FP32, zelfs bij FP16-invoer?
Samenvatting
Je hebt de afwegingen rond precisie geleerd: let op overflow en underflow in FP16, gebruik loss scaling en accumulatie in FP32, en valideer altijd met een referentie. 🎯
Leer C++ met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “Afwegingen rond numerieke stabiliteit” gratis?
Ja — de volledige tekst van “Afwegingen rond numerieke stabiliteit” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus CUDA Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus CUDA Academy bevat in totaal 4 lessen.
Wat leer ik in “Afwegingen rond numerieke stabiliteit”?
Waar lagere precisie extra zorg vereist Je oefent met CUDA Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met CUDA Academy te beginnen?
Ervaring vooraf is niet nodig. CUDA Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “Afwegingen rond numerieke stabiliteit”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over CUDA Academy?
Ja. Elke les over CUDA Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Wat Tensor Cores berekenen
- Mixed precision: FP16, BF16, TF32
- De WMMA Fragment API
- Afwegingen rond numerieke stabiliteit