Register und lokaler Speicher
Der schnellste Speicher pro Thread und seine Auslagerungen.
Register und lokaler Speicher ist eine kostenlose CUDA Academy-Lektion auf CoddyKit. Dies ist Lektion 1 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.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
The Fastest Memory You Have
Every thread gets its own private registers, the quickest storage on the chip. They live right next to the math units, so reads cost almost nothing.
Plain Variables Become Registers
When you write a normal local variable in a kernel, the compiler usually keeps it in a register. No special syntax is needed at all. 🙂
__global__ void k() {
int x = 5; // x lives in a register
float y = x * 2.0f;
}Private to One Thread
A register value belongs to exactly one thread. Thread 7 cannot see thread 8's register, which is why per-thread work stays cleanly separated.
Registers Are a Shared Pool
Each streaming multiprocessor has a fixed register file. All resident threads split it, so using fewer registers per thread lets more threads run at once.
When You Run Out
If a kernel needs more registers than are available, the extra values get pushed elsewhere. This event is called a register spill.
Where Spills Go: Local Memory
Spilled values land in local memory, which despite the name is not on-chip. It actually lives in slow off-chip DRAM.
Local Is Still Per-Thread
Local memory is private to each thread just like registers. The difference is purely speed, since local memory is far slower to reach.
Big Local Arrays Spill
Declaring a large per-thread array often forces it into local memory, because there simply are not enough registers to hold every element.
__global__ void k() {
float buf[64]; // likely lives in local memory
}Spills Hurt Performance
Every spill turns a free register access into a slow DRAM trip. Cutting register pressure is one of the easiest optimization wins you can make.
Seeing Your Register Count
You can ask the compiler to report registers per thread. Pass --ptxas-options=-v to nvcc and it prints usage for each kernel.
nvcc --ptxas-options=-v kernel.cuCapping Registers on Purpose
The __launch_bounds__ qualifier hints the compiler to limit registers, trading a little per-thread speed for more threads running together.
__global__ void __launch_bounds__(256)
myKernel() { /* ... */ }Quick Check
You declared a big per-thread array and performance dropped. What likely happened?
Recap: Fast and Private
You learned that registers are the fastest per-thread storage, that the pool is limited, and that overflow spills into slow local memory. Keep register pressure low. 🎯
Häufig gestellte Fragen
Ist die Lektion „Register und lokaler Speicher“ kostenlos?
Ja — der vollständige Text von „Register und lokaler Speicher“ 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 „Register und lokaler Speicher“?
Der schnellste Speicher pro Thread und seine Auslagerungen. 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 1 von 4.
Wie lange dauert die Lektion „Register und lokaler Speicher“?
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
- Register und lokaler Speicher
- Kompromisse beim globalen Speicher
- Konstanter Speicher und sein Cache
- Ein mentales Modell der Hierarchie