Boucles avec pas de grille
Gérez les tableaux plus grands que la grille.
Boucles avec pas de grille est une leçon CUDA Academy gratuite sur CoddyKit. Ceci est la leçon 4 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.
When the Array Is Huge
Sometimes the data is far bigger than the threads you launch. One thread per element no longer fits, so you need each thread to handle several elements.
The Grid Has a Size
The total number of threads is the grid size: blocks times threads per block. This stride is how far apart each thread's elements sit.
int stride = blockDim.x * gridDim.x;Start, Then Stride
Each thread begins at its usual global index, then jumps forward by the grid size again and again until it runs off the array.
The Grid-Stride Loop
This loop is the whole pattern: start at i, step by stride, stop at n. Any array size is covered no matter how many threads you launch.
for (int i = blockIdx.x * blockDim.x + threadIdx.x;
i < n;
i += stride) {
out[i] = a[i] + b[i];
}The Built-in Guard
Notice the loop condition i < n is itself the bounds check. Threads that start past the end simply never enter the loop.
How the Work Splits
With a stride of 4 threads, thread 0 does elements 0, 4, 8, while thread 1 does 1, 5, 9. The work is interleaved, not chunked.
Interleaving Helps Coalescing
Because neighboring threads still touch neighboring addresses each step, the access stays coalesced and memory bandwidth stays high.
Decouple Threads From Data
Now your launch size no longer depends on n. You can pick a thread count that fits the GPU and let the loop absorb any workload.
Tune for the Hardware
A common choice is enough blocks to fill every multiprocessor, then let each thread loop. This keeps the GPU busy without overlaunching.
It Also Works When Tiny
If n is smaller than the grid, each thread runs the loop body at most once. The pattern degrades gracefully to the simple case.
A Robust Default
Many CUDA pros write every elementwise kernel as a grid-stride loop. It is flexible, safe, and rarely the wrong choice. 🚀
Quick Check
Identify the stride.
Recap
You learned the grid-stride loop: start at the global index and step by blockDim.x * gridDim.x until i reaches n. One kernel now handles any array size. 🎉
Questions Fréquemment Posées
La leçon « Boucles avec pas de grille » est-elle gratuite ?
Oui — le texte complet de « Boucles avec pas de grille » 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 « Boucles avec pas de grille » ?
Gérez les tableaux plus grands que la grille. 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 4 sur 4.
Combien de temps prend la leçon « Boucles avec pas de grille » ?
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
- La formule d’index classique
- Se protéger contre les dépassements de plage
- Arrondir le nombre de blocs vers le haut
- Boucles avec pas de grille