threadIdx, blockIdx, blockDim
Les variables intégrées qui localisent un thread.
threadIdx, blockIdx, blockDim 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.
Où suis-je ?
Tous les fils d’exécution exécutent le même code ; chacun doit donc se demander : quel élément de données m’appartient ? CUDA répond à cette question avec des variables intégrées. 📍
Découvrez threadIdx
Dans un noyau, threadIdx indique à un fil d’exécution sa position au sein de son propre bloc. Le premier fil d’exécution d’un bloc a la valeur 0 pour threadIdx.x.
int t = threadIdx.x;Découvrez blockIdx
La variable blockIdx indique à un fil d’exécution à quel bloc il appartient dans la grille. La numérotation des blocs commence également à 0.
int b = blockIdx.x;Découvrez blockDim
Vous disposez également de blockDim, qui indique le nombre de fils d’exécution par bloc. Si vous avez lancé 256 fils d’exécution, alors blockDim.x vaut 256 pour chacun d’eux.
int width = blockDim.x;Ils sont automatiques
Vous ne définissez jamais vous-même ces variables. CUDA les renseigne pour chaque fil d’exécution dès le lancement du noyau.
Les champs .x, .y et .z
Chacune de ces variables possède les champs x, y et z pour les lancements en 1D, 2D ou 3D. Pour les tableaux simples, vous n’utilisez généralement que le champ x.
Les combiner
Pris séparément, threadIdx se répète dans chaque bloc. Pour obtenir une position unique, vous devez combiner blockIdx et blockDim avec threadIdx.
Un petit exemple guidé
Avec blockDim égal à 4, le fil d’exécution 2 du bloc 0 correspond à l’élément 2, tandis que le fil d’exécution 2 du bloc 1 correspond à l’élément 6. Le bloc décale le point de départ.
Des auxiliaires en lecture seule
Ces éléments intégrés sont en lecture seule dans le noyau. Considérez-les comme des coordonnées fiables décrivant exactement la position de votre fil d’exécution.
Découvrez aussi gridDim
Il reste un autre élément utile : gridDim contient le nombre total de blocs de la grille. Il est pratique lorsque vous parcourez davantage de données qu’il n’y a de fils d’exécution.
int blocks = gridDim.x;Pourquoi est-ce important ?
Ces trois variables sont les éléments de base nécessaires au calcul d’un indice global, qui permet à chaque fil d’exécution de s’approprier son propre élément.
Vérification rapide
Choisissez la variable qui remplit la fonction indiquée.
Récapitulatif : localiser un fil d’exécution
Vous avez découvert les éléments intégrés : threadIdx pour la position dans un bloc, blockIdx pour le bloc et blockDim pour la taille du bloc. Ensemble, ils localisent précisément un fil d’exécution. ✅
Apprends C++ avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 30
- Leçons
- 120
Questions Fréquemment Posées
La leçon « threadIdx, blockIdx, blockDim » est-elle gratuite ?
Oui — le texte complet de « threadIdx, blockIdx, blockDim » 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 « threadIdx, blockIdx, blockDim » ?
Les variables intégrées qui localisent un thread. 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 « threadIdx, blockIdx, blockDim » ?
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 hiérarchie des threads
- threadIdx, blockIdx, blockDim
- Pourquoi les blocs existent
- Choisir le nombre de threads par bloc