Das Ergebnis auf der CPU prüfen
Vergleichen Sie es mit einem Referenzergebnis.
Das Ergebnis auf der CPU prüfen ist eine kostenlose CUDA Academy-Lektion auf CoddyKit. Dies ist Lektion 3 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.
Vertrauen ist gut, Kontrolle ist besser
Ein Kernel, der ohne Absturz läuft, ist noch kein Beweis dafür, dass er korrekt ist. Sie müssen die Zahlen überprüfen, denn stille Logikfehler werden leicht übersehen. 🔍
Eine Referenz berechnen
Die einfachste Prüfung ist eine gewöhnliche CPU-Schleife, die dieselbe Berechnung ausführt. Dieses Referenzergebnis ist Ihre verlässliche Vergleichsgrundlage.
for (int i = 0; i < n; i++)
ref[i] = h_A[i] + h_B[i];Element für Element vergleichen
Gehen Sie durch beide Arrays und vergleichen Sie jedes GPU-Ergebnis mit der Referenz. Eine Schleife über alle n Elemente findet jeden falschen Wert.
for (int i = 0; i < n; i++)
if (h_C[i] != ref[i]) { /* mismatch */ }Gleitkommazahlen sind nicht exakt
Verwenden Sie bei Gleitkommazahlen niemals einen einfachen Gleichheitsvergleich. Kleine Rundungsunterschiede bedeuten, dass Sie stattdessen mit einer kleinen Toleranz vergleichen sollten.
if (fabs(h_C[i] - ref[i]) > 1e-5f) { /* fail */ }Warum Toleranz statt Gleichheit
GPU und CPU runden möglicherweise in unterschiedlicher Reihenfolge, sodass sich die Ergebnisse geringfügig unterscheiden können. Ein kleines Epsilon wie 1e-5 fängt dieses harmlose Rauschen ab.
Die Fehler zählen
Brechen Sie nicht beim ersten Unterschied ab, sondern führen Sie einen Fehlerzähler. Die Anzahl der fehlerhaften Elemente gibt Hinweise auf die Art Ihres Fehlers.
int errors = 0;
if (fabs(h_C[i] - ref[i]) > 1e-5f) errors++;Ein klares Ergebnis ausgeben
Schließen Sie mit einer einzigen, ehrlichen Meldung ab. Eine klare PASS- oder FAIL-Zeile erspart Ihnen das mühsame Prüfen roher Arrays.
printf(errors == 0 ? "PASS\n" : "FAIL: %d\n", errors);Die Randwerte stichprobenartig prüfen
Fehler an den Grenzen treten bevorzugt beim ersten und letzten Element auf. Die Ausgabe von C[0] und C[n-1] ist ein schneller Plausibilitätscheck vor der vollständigen Schleife.
Ein Hinweis auf einen Off-by-one-Fehler
Wenn genau das letzte Element falsch ist, sollten Sie Ihre Berechnung der Grenzen prüfen. Eine falsche Blockanzahl oder Schutzbedingung lässt häufig den letzten Thread aus.
Vor der Optimierung verifizieren
Bestätigen Sie die Korrektheit immer vor der Optimierung auf Geschwindigkeit. Ein schneller Kernel mit falschen Ergebnissen ist schlechter als ein langsamer, korrekter Kernel.
Die Prüfung beibehalten
Lassen Sie den Verifikationsschritt während der Entwicklung aktiviert. Er ist Ihr Regressionstest und erkennt Fehler sofort, sobald Sie den Kernel ändern.
Schnelltest
Wie sollten Sie Gleitkommaergebnisse der GPU mit einer CPU-Referenz vergleichen?
Zusammenfassung
Sie haben das Ergebnis verifiziert: eine CPU-Referenz, ein Vergleich mit Toleranz, eine Fehlerzählung und eine klare PASS- oder FAIL-Meldung. Korrektheit steht immer an erster Stelle. ✅
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 „Das Ergebnis auf der CPU prüfen“ kostenlos?
Ja — der vollständige Text von „Das Ergebnis auf der CPU prüfen“ 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 „Das Ergebnis auf der CPU prüfen“?
Vergleichen Sie es mit einem Referenzergebnis. 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 3 von 4.
Wie lange dauert die Lektion „Das Ergebnis auf der CPU prüfen“?
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
- Der Vector-Add-Kernel
- Die Host-Seite verdrahten
- Das Ergebnis auf der CPU prüfen
- Die erste Beschleunigung messen