Die Occupancy-Calculator-API
cudaOccupancyMaxPotentialBlockSize.
Die Occupancy-Calculator-API 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.
Schluss mit dem Raten bei der Blockgröße
Statt die Größe von Hand abzustimmen, bietet CUDA eine Occupancy-API, die automatisch eine gute Blockgröße für Ihren Kernel berechnet.
Die zentrale Funktion
Ein Aufruf übernimmt den größten Teil der Arbeit: cudaOccupancyMaxPotentialBlockSize schlägt eine Blockgröße vor, die die Occupancy maximiert.
cudaOccupancyMaxPotentialBlockSize(&grid, &block, myKernel);Was zurückgegeben wird
Die Funktion liefert eine empfohlene Blockgröße und die minimale Grid-Größe, die erforderlich ist, um das Gerät für Ihren Kernel vollständig auszulasten.
Die Funktion kennt Ihren Kernel
Die API liest die tatsächliche Register- und Shared-Memory-Nutzung Ihres Kernels und passt ihre Empfehlung daher genau an diesen Kernel an, statt eine allgemeine Schätzung zu verwenden.
Occupancy vorhersagen
Ein verwandter Aufruf gibt an, wie viele aktive Blöcke pro SM eine Konfiguration ermöglicht. So können Sie die Occupancy vorhersagen, bevor Sie den Kernel starten.
cudaOccupancyMaxActiveBlocksPerMultiprocessor(&n, k, 256, 0);Den Prozentsatz berechnen
Multiplizieren Sie die Blöcke pro SM mit den Warps pro Block und teilen Sie das Ergebnis durch das Warp-Maximum des SM. So erhalten Sie den Prozentsatz der theoretischen Occupancy.
Dynamischer Shared Memory
Diese Aufrufe akzeptieren ein Argument für dynamischen Shared Memory. Dadurch bleibt die Vorhersage korrekt, wenn Ihr Kernel die Shared-Memory-Größe beim Start festlegt.
Auf verschiedenen GPUs portierbar
Da die laufende GPU abgefragt wird, wählt derselbe Code auf verschiedenen GPUs passende Größen, ohne dass Sie Zahlen fest einprogrammieren müssen.
Beim Start verwenden
Rufen Sie die Occupancy-API einmal während der Initialisierung auf, speichern Sie die Blockgröße zwischen und verwenden Sie sie anschließend bei jedem Start dieses Kernels erneut.
Ein starker Standardwert
Die vorgeschlagene Größe ist ein hervorragender Ausgangspunkt. Sie können dennoch einige benachbarte Größen benchmarken, um die tatsächliche beste Größe für Ihre Daten zu finden.
Warum das besser ist als feste Zahlen
Fest codierte Größen wie 256 funktionieren nicht mehr, wenn sich die Ressourcen ändern. Die API passt sich an und hält Ihren Kernel automatisch nahe an der maximalen Occupancy.
Kurze Prüfung
Rufen Sie sich in Erinnerung, was Ihnen cudaOccupancyMaxPotentialBlockSize liefert.
Zusammenfassung
Sie haben die Occupancy-API kennengelernt: Sie schlägt eine portable, kernelbezogene Blockgröße vor und sagt die Occupancy voraus, bevor Sie den Kernel überhaupt 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 „Die Occupancy-Calculator-API“ kostenlos?
Ja — der vollständige Text von „Die Occupancy-Calculator-API“ 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 Occupancy-Calculator-API“?
cudaOccupancyMaxPotentialBlockSize. 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 „Die Occupancy-Calculator-API“?
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
- Was Auslastung wirklich bedeutet
- Grenzen von Registern und Shared Memory
- Die Occupancy-Calculator-API
- Occupancy ist nicht alles