0Pricing
CUDA Academy · Lektion

Compute-bound vs. Memory-bound

Lesen Sie die Roofline, um Verbesserungen zu planen.

Compute-bound vs. Memory-bound 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.

Zwei Arten von Grenzen

Jeder Kernel stößt an eine von zwei Grenzen. Er ist entweder compute-bound, also durch Berechnungen begrenzt, oder memory-bound, also durch Datentransfer begrenzt. ⚖️

Compute-bound erklärt

Ein compute-bound-Kernel hält die Recheneinheiten beschäftigt und wartet nur selten auf den Speicher. Seine Grenze ist der reine arithmetische Durchsatz.

Memory-bound erklärt

Ein memory-bound-Kernel verbringt seine Zeit mit dem Warten auf Daten. Die Kerne sind untätig, während Bytes aus dem globalen Speicher eintreffen.

Arithmetische Intensität

Das entscheidende Verhältnis ist die arithmetische Intensität: die Anzahl der Rechenoperationen pro geladenem Byte. Eine hohe Intensität deutet auf compute-bound, eine niedrige auf memory-bound hin.

Das Roofline-Bild

In einem Roofline-Diagramm stoßen Kernel mit niedriger Intensität an die geneigte Speicherdecke, während Kernel mit hoher Intensität die flache Rechendecke erreichen.

Warum die Diagnose wichtig ist

Die falsche Grenze zu optimieren, verschwendet Aufwand. Zusätzliche Berechnungen an einem memory-bound-Kernel ändern nichts; stattdessen müssen Sie den Datentransfer reduzieren.

Memory-bound-Kernel optimieren

Um einen memory-bound-Kernel zu beschleunigen, koaleszieren Sie Zugriffe, verwenden Sie Daten im Shared Memory wieder und speichern Sie Werte zwischen, damit weniger gelesen werden muss.

Compute-bound-Kernel optimieren

Bei compute-bound-Arbeit erhöhen Sie den Parallelismus, verwenden schnellere Berechnungen oder greifen auf Tensor Cores zurück, um die Rechengrenze zu überwinden.

Die meisten Kernel sind memory-bound

In der Praxis sind die meisten CUDA-Kernel memory-bound. Bandbreite und nicht Arithmetik ist gewöhnlich die knappe Ressource.

Lassen Sie den Profiler entscheiden

Raten Sie nicht, an welcher Grenze der Kernel liegt. Die Roofline in Nsight Compute ordnet Ihren Kernel automatisch der richtigen Decke zu.

Ein einfacher Denktest

Stellen Sie sich eine Frage: Sind die Kerne oder die Speicherpfade näher an ihrem Spitzenwert? Die gesättigte Ressource zeigt, welcher Bound vorliegt.

Kurztest

Ein Kernel hat eine sehr niedrige arithmetische Intensität.

Zusammenfassung

Diagnostizieren Sie zuerst die Grenze: memory-bound-Kernel benötigen weniger Datentransfer, compute-bound-Kernel mehr Berechnungen. Die Roofline zeigt Ihnen, welcher Fall vorliegt. 👏

Häufig gestellte Fragen

Ist die Lektion „Compute-bound vs. Memory-bound“ kostenlos?

Ja — der vollständige Text von „Compute-bound vs. Memory-bound“ 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 „Compute-bound vs. Memory-bound“?

Lesen Sie die Roofline, um Verbesserungen zu planen. 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 „Compute-bound vs. Memory-bound“?

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. Timeline-Ansicht in Nsight Systems
  2. Kernel-Metriken in Nsight Compute
  3. Compute-bound vs. Memory-bound
  4. Code mit NVTX annotieren
← Zurück zu CUDA Academy