Threads pro Block auswählen
Sinnvolle Standardwerte wie 128 und 256.
Threads pro Block auswählen 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.
Eine echte Entscheidung
Beim Starten eines Kernels müssen Sie festlegen, wie viele Threads pro Block verwendet werden. Diese kleine Entscheidung beeinflusst die tatsächliche Leistung. 🎚️
Vielfache von 32
Die GPU führt Threads in Gruppen von 32 aus, die Warps genannt werden. Wählen Sie daher immer ein Vielfaches von 32. Ungewöhnliche Größen verschwenden bei einem unvollständigen Warp Rechenbahnen.
Sichere Standardwerte
Gute erste Schätzungen sind 128 oder 256 Threads pro Block. Beide Werte sind Vielfache von 32 und funktionieren auf fast jeder GPU gut.
int threadsPerBlock = 256;Die harte Obergrenze
Ein Block kann auf aktuellen GPUs höchstens 1024 Threads enthalten. Fordern Sie mehr an, schlägt der Start einfach mit einem Fehler fehl.
Zu wenige Threads
Sehr kleine Blöcke, etwa mit 32 Threads, können dazu führen, dass die GPU nicht vollständig ausgelastet wird. Dem Scheduler stehen dann weniger Warps zur Verfügung, um die Speicherlatenz zu verbergen.
Zu viele Threads
Sehr große Blöcke können alle Register oder den Shared Memory aufbrauchen, sodass pro Multiprozessor weniger Blöcke Platz finden. Größer ist nicht immer besser.
Die Blockanzahl berechnen
Sobald die Anzahl der Threads pro Block feststeht, runden Sie die Anzahl der Blöcke auf, damit jedes Element abgedeckt ist, auch wenn die Division nicht ohne Rest aufgeht.
int blocks = (n + threadsPerBlock - 1) / threadsPerBlock;Fügen Sie immer eine Bereichsprüfung hinzu
Durch das Aufrunden gibt es einige zusätzliche Threads. Sichern Sie Ihren Kernel mit einem if ab, damit diese nicht auf Speicher hinter dem Array zugreifen.
if (i < n) out[i] = a[i] + b[i];Lassen Sie CUDA eine Größe vorschlagen
Sie können CUDA mithilfe des Occupancy-Helfers automatisch nach einer geeigneten Blockgröße fragen und anschließend von diesem Vorschlag ausgehend optimieren.
cudaOccupancyMaxPotentialBlockSize(&grid, &block, kernel);Messen statt raten
Die tatsächlich beste Größe hängt von Ihrem Kernel und Ihrer GPU ab. Beginnen Sie mit 256, benchmarken Sie anschließend einige Werte und behalten Sie den schnellsten.
Eine praktische Regel
Für die meisten Einsteiger-Kernels sind 256 Threads pro Block zusammen mit einer aufgerundeten Blockanzahl ein zuverlässiger und schneller Ausgangspunkt.
Kurzer Check
Wählen Sie die sinnvollste Anzahl von Threads pro Block.
Rückblick: Die Blockgröße festlegen
Sie haben gelernt, Blockgrößen festzulegen: Verwenden Sie Vielfache von 32, wählen Sie standardmäßig 256, bleiben Sie unter 1024, runden Sie die Blockanzahl auf und benchmarken Sie. 🏁
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 „Threads pro Block auswählen“ kostenlos?
Ja — der vollständige Text von „Threads pro Block auswählen“ 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 „Threads pro Block auswählen“?
Sinnvolle Standardwerte wie 128 und 256. 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 „Threads pro Block auswählen“?
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
- Die Thread-Hierarchie
- threadIdx, blockIdx, blockDim
- Warum es Blöcke gibt
- Threads pro Block auswählen