0Pricing
CUDA Academy · Lektion

Die Beschleunigung messen

Vergleichen Sie die Leistung einer naiven Lösung mit einer gekachelten.

Die Beschleunigung messen 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.

Den Vorteil nachweisen

Sie haben einen geteilten Kernel erstellt, aber wie viel schneller ist er wirklich? Durch Messen wird aus einer Vermutung eine Zahl, der Sie vertrauen können. 📊

Zeitmessung mit der GPU-Uhr

Verwenden Sie CUDA events, um die Laufzeit von Kernels zu messen. Sie befinden sich im GPU-Stream und messen genau, wann die Arbeit beginnt und endet.

cudaEvent_t start, stop;
cudaEventCreate(&start);
cudaEventCreate(&stop);

Den Kernel zeitlich eingrenzen

Zeichnen Sie ein Event vor dem Start und ein weiteres danach auf. Synchronisieren Sie anschließend mit synchronize, damit die Zeitmessung tatsächlich auf das Ende der GPU-Arbeit wartet.

cudaEventRecord(start);
matmul<<<g,b>>>(...);
cudaEventRecord(stop);
cudaEventSynchronize(stop);

Die verstrichene Zeit ablesen

Fragen Sie den Abstand zwischen den Events in milliseconds ab. Diese eine Zahl ist die gemessene Laufzeit Ihres Kernels.

float ms;
cudaEventElapsedTime(&ms, start, stop);

Zuerst aufwärmen

Der allererste Start verursacht einmalige Einrichtungskosten. Führen Sie vor der Zeitmessung einen warm-up-Kernel aus, damit Sie die Geschwindigkeit im eingeschwungenen Zustand und nicht den Programmstart messen.

Mehrere Durchläufe mitteln

Eine einzelne Messung ist ungenau. Messen Sie den Kernel mehrmals und verwenden Sie den average, um ein stabiles und aussagekräftiges Ergebnis zu erhalten.

Den Speedup berechnen

Der Speedup ist einfach die Zeit des naiven Kernels geteilt durch die Zeit des geteilten Kernels. Ein Wert von 4x bedeutet, dass der geteilte Kernel viermal schneller lief.

float speedup = naive_ms / tiled_ms;

In GFLOPS denken

Matmul führt ungefähr 2 * N^3 Gleitkommaoperationen aus. Teilen Sie diese Zahl durch die Laufzeit, um die Leistung in GFLOPS anzugeben – der gängigen Kennzahl.

double gflops = (2.0*N*N*N) / (ms * 1e6);

Warum Tiling gewinnt

Der Speedup entsteht durch die starke Verringerung des Datenverkehrs im globalen Speicher. Die Wiederverwendung im Shared Memory versorgt die Rechenkerne mit Daten, statt sie auf langsame Lesezugriffe warten zu lassen.

Die Korrektheit immer überprüfen

Ein schnelles falsches Ergebnis ist nutzlos. Vergleichen Sie Ihr GPU-Ergebnis mit einer CPU-Referenz, bevor Sie den Speedup feiern. ✅

Ihre Obergrenze kennen

Selbst geteiltes matmul bleibt hinter handoptimiertem cuBLAS zurück. Wenn Sie den Abstand kennen, wissen Sie, wann weitere Optimierung sinnvoll ist und wann Sie eine Bibliothek verwenden sollten.

Kurze Überprüfung

Rufen Sie sich das richtige Werkzeug zur Zeitmessung von GPU-Kernels ins Gedächtnis.

Zusammenfassung

Sie haben mit CUDA events gemessen, den Kernel aufgewärmt, Mittelwerte gebildet, Speedup und GFLOPS berechnet und die Korrektheit überprüft. Nun können Sie Ihre Optimierungen nachweisen. 🏁

Häufig gestellte Fragen

Ist die Lektion „Die Beschleunigung messen“ kostenlos?

Ja — der vollständige Text von „Die Beschleunigung messen“ 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 „Die Beschleunigung messen“?

Vergleichen Sie die Leistung einer naiven Lösung mit einer gekachelten. 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 „Die Beschleunigung messen“?

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. Der naive Matmul-Kernel
  2. Das Skalarprodukt kacheln
  3. Über die Kachelphasen iterieren
  4. Die Beschleunigung messen
← Zurück zu CUDA Academy