0Pricing
CUDA Academy · Lektion

Die Falle des Standard-Streams

Wie Stream 0 alles serialisiert.

Die Falle des Standard-Streams 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.

What Is a Stream?

A stream is an ordered queue of GPU work. Operations in the same stream run one after another, in the order you issued them. ⏳

The Default Stream

If you never name a stream, every call lands in the default stream, also called stream 0. It is where all your work has secretly been running.

Why It Is a Trap

The default stream is synchronizing: it blocks until other streams finish, and they wait for it. Nothing overlaps, so your GPU sits idle between steps.

Everything Serializes

Issue a copy, a kernel, then another copy on stream 0 and they run strictly back to back. The GPU can never start step two before step one ends.

cudaMemcpy(d_a, h_a, n, cudaMemcpyHostToDevice);
kernel<<<grid, block>>>(d_a);
cudaMemcpy(h_a, d_a, n, cudaMemcpyDeviceToHost);

Wasted Hardware

Modern GPUs have separate engines for compute and for copying. On the default stream those engines take turns instead of working together.

The Hidden Cost of Copies

Data transfers over PCIe are slow. When copies cannot overlap with compute, that transfer time is added directly onto your total runtime.

Implicit Synchronization

Many default-stream calls are blocking on the host too. cudaMemcpy returns only after the copy is done, stalling your CPU.

The Legacy Behavior

By default, work in any stream waits for stream 0, and stream 0 waits for them. This legacy rule quietly destroys concurrency you thought you had.

A Telltale Profile

In a profiler the default-stream trap shows up as a single busy lane with gaps, while copy and compute engines sit idle waiting for each other.

The Way Out

The fix is to issue independent work on separate streams. Then copies and kernels can run at the same time and fill those idle gaps.

Per-Thread Default Streams

Compiling with --default-stream per-thread gives each host thread its own default stream, easing the trap without rewriting every call.

nvcc --default-stream per-thread app.cu -o app

Quick Check

Why does putting all work on the default stream hurt performance?

Recap

The default stream serializes your GPU work and blocks overlap. To go faster, you will move independent tasks onto their own streams next. 🚀

Häufig gestellte Fragen

Ist die Lektion „Die Falle des Standard-Streams“ kostenlos?

Ja — der vollständige Text von „Die Falle des Standard-Streams“ 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 Falle des Standard-Streams“?

Wie Stream 0 alles serialisiert. 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 „Die Falle des Standard-Streams“?

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. Die Falle des Standard-Streams
  2. Streams erstellen und verwenden
  3. Events für Zeitmessung und Synchronisierung
  4. Kopieren und Berechnen überlappen
← Zurück zu CUDA Academy