0Pricing
CUDA Academy · Leçon

Créer et utiliser des flux

Lancez des files de travail indépendantes.

Créer et utiliser des flux est une leçon CUDA Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage CUDA Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours CUDA Academy comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Independent Work Queues

A non-default stream is your own work queue. Two streams run independently, so the GPU can make progress on both at once. 🧵

The Stream Handle

A stream lives in a cudaStream_t handle. You create it once, pass it to your calls, and destroy it when you are done.

cudaStream_t stream;

Creating a Stream

Call cudaStreamCreate to make a fresh stream. It allocates the queue the driver uses to schedule that stream's work.

cudaStreamCreate(&stream);

Launching a Kernel in a Stream

A kernel's launch config has a fourth argument: shared memory size, then the stream. Pass your stream to queue the kernel there.

kernel<<<grid, block, 0, stream>>>(d_data);

Two Streams, Two Tasks

Put one job on streamA and another on streamB. With no dependency between them, the GPU is free to run both concurrently.

kA<<<g, b, 0, streamA>>>(a);
kB<<<g, b, 0, streamB>>>(d);

Async by Nature

Stream calls are asynchronous: the host returns immediately and keeps going. The GPU works through the queue on its own time.

Waiting on One Stream

Use cudaStreamSynchronize to block the host until just that stream finishes, instead of waiting on the whole device.

cudaStreamSynchronize(stream);

Checking Without Blocking

Want a peek? cudaStreamQuery returns cudaSuccess if the stream is done and cudaErrorNotReady if it is still busy, without stalling you.

cudaStreamQuery(stream);

Cleaning Up

When a stream is no longer needed, release it with cudaStreamDestroy. Pending work still completes before the handle is freed.

cudaStreamDestroy(stream);

Non-Blocking Streams

Create a stream with the cudaStreamNonBlocking flag so it does not implicitly synchronize with the legacy default stream.

cudaStreamCreateWithFlags(&s, cudaStreamNonBlocking);

More Streams, More Overlap

Spreading independent chunks over several streams lets the scheduler keep the engines fed. Beyond a few, returns diminish as hardware fills up.

Quick Check

How do you queue a kernel into a specific stream?

Recap

You can now create streams, launch kernels in them, sync or query, and destroy them. Independent streams unlock real concurrency. ✨

Questions Fréquemment Posées

La leçon « Créer et utiliser des flux » est-elle gratuite ?

Oui — le texte complet de « Créer et utiliser des flux » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours CUDA Academy, passe à CoddyKit PRO. Le cours CUDA Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Créer et utiliser des flux » ?

Lancez des files de travail indépendantes. Tu pratiques CUDA Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer CUDA Academy ?

Aucune expérience préalable n'est requise. CUDA Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Créer et utiliser des flux » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon CUDA Academy ?

Oui. Chaque leçon CUDA Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Le piège du flux par défaut
  2. Créer et utiliser des flux
  3. Événements pour le chronométrage et la synchronisation
  4. Superposer copie et calcul
← Retour à CUDA Academy