CUDA Academy · Leçon

threadIdx, blockIdx, blockDim

Les variables intégrées qui localisent un thread.

Leçon 2 sur 413 étapes

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. ✅

Gratuit pour commencer

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

  1. La hiérarchie des threads
  2. threadIdx, blockIdx, blockDim
  3. Pourquoi les blocs existent
  4. Choisir le nombre de threads par bloc
← Retour à CUDA Academy