CUDA Academy · Lektion

Abwägungen bei der numerischen Stabilität

Wo geringere Genauigkeit besondere Sorgfalt erfordert

Lektion 4 von 413 Schritte

Abwägungen bei der numerischen Stabilität ist eine kostenlose CUDA Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des CUDA Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der CUDA Academy-Kurs umfasst insgesamt 4 Lektionen.

Geschwindigkeit hat ihren Preis

Tensor-Core-Berechnungen mit geringerer Präzision sind schnell, aber weniger Bits bedeuten Rundungsfehler. Numerische Stabilität ist die Kunst, verlässliche Ergebnisse zu bewahren. ⚖️

Was ein Rundungsfehler ist

Jeder Wert mit niedriger Präzision wird auf die nächstgelegene darstellbare Zahl gerundet. Dieser kleine Rundungsfehler ist einmalig harmlos, kann sich aber über viele Schritte summieren.

Unterlauf bei FP16

Der enge Wertebereich von FP16 lässt kleine Zahlen auf null fallen; das nennt man Unterlauf. Gradienten und sehr kleine Gewichte können beim Training einfach verschwinden.

Überlauf bei FP16

Der gleiche enge Wertebereich verursacht einen Überlauf: Ein großer Wert wird zu unendlich. Eine einzige fehlerhafte Summe kann anschließend alles Folgende beeinträchtigen.

Loss Scaling als Lösung

Eine gängige Lösung ist Loss Scaling: Multiplizieren Sie Werte vor der FP16-Berechnung hoch, damit sie den Unterlaufbereich verlassen, und skalieren Sie sie anschließend wieder herunter.

Warum eine breitere Akkumulation hilft

Tensor Cores akkumulieren aus gutem Grund in FP32. Dieser breitere Akkumulator verhindert, dass Tausende kleiner Additionen stark abdriften.

BF16 umgeht Probleme mit dem Wertebereich

Da BF16 den Exponenten von FP32 beibehält, kommt es nur selten zu Über- oder Unterläufen. Seine Schwäche ist die geringere Präzision, nicht ein verkleinerter Wertebereich.

Katastrophale Auslöschung

Beim Subtrahieren zweier ähnlicher Zahlen werden führende Ziffern ausgelöscht; das nennt man Auslöschung. Bei niedriger Präzision tritt der verbleibende Fehler deutlich stärker hervor.

Kritische Teile in FP32 belassen

Ein sicherer Ansatz ist gemischte Präzision: Führen Sie umfangreiche Multiplikationen in FP16 oder BF16 aus, aber belassen Sie empfindliche Summen, Normen und Aktualisierungen in FP32.

Genauigkeit immer überprüfen

Gehen Sie niemals davon aus, dass ein schneller Kernel korrekt ist. Vergleichen Sie ihn mit einer FP32-Referenz und prüfen Sie, ob der Fehler innerhalb einer akzeptablen Toleranz bleibt.

Den Fehler messen

Eine einfache Prüfung ist die absolute Differenz zu einem vertrauenswürdigen Ergebnis. Vergleichen Sie diesen Fehler mit einem von Ihnen festgelegten kleinen Schwellenwert.

float err = fabsf(gpu_result - cpu_result);

Schnelltest

Warum akkumulieren Tensor Cores Teilsummen in FP32, obwohl die Eingaben in FP16 vorliegen?

Zusammenfassung

Sie haben die Abwägungen bei der Präzision kennengelernt: Achten Sie auf Über- und Unterläufe in FP16, verwenden Sie Loss Scaling und eine FP32-Akkumulation und überprüfen Sie Ergebnisse immer anhand einer Referenz. 🎯

Kostenlos starten

Lerne C++ mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
30
Lektionen
120

Häufig gestellte Fragen

Ist die Lektion „Abwägungen bei der numerischen Stabilität“ kostenlos?

Ja — der vollständige Text von „Abwägungen bei der numerischen Stabilität“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des CUDA Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der CUDA Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Abwägungen bei der numerischen Stabilität“?

Wo geringere Genauigkeit besondere Sorgfalt erfordert Du übst CUDA Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um CUDA Academy zu starten?

Keine Vorkenntnisse erforderlich. CUDA Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Abwägungen bei der numerischen Stabilität“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser CUDA Academy-Lektion Code schreiben und ausführen?

Ja. Jede CUDA Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Was Tensor Cores berechnen
  2. Gemischte Genauigkeit: FP16, BF16, TF32
  3. Die WMMA-Fragment-API
  4. Abwägungen bei der numerischen Stabilität
← Zurück zu CUDA Academy