CUDA Academy · Leçon

Warps, voies et masques

L’unité de 32 threads et les masques actifs.

Leçon 1 sur 413 étapes

Warps, voies et masques est une leçon CUDA Academy gratuite sur CoddyKit. Ceci est la leçon 1 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.

Les threads s’exécutent par groupes

Le GPU ne planifie pas les threads un par un. Il les regroupe en un groupe de 32 threads qui avancent ensemble en exécutant la même instruction en verrouillage de phase.

Pourquoi 32 est important

Sur le matériel NVIDIA, un groupe contient toujours 32 threads. C’est la véritable unité d’exécution : les bons noyaux raisonnent donc par groupes de 32, et non par threads isolés.

Chaque thread est une voie

Dans un groupe, chaque thread possède une position comprise entre 0 et 31, appelée sa voie. L’identifiant de voie permet aux primitives de groupe de savoir qui communique avec qui.

int lane = threadIdx.x % 32;

Trouver l’identifiant de voie

Vous pouvez lire directement la voie depuis un registre spécial au lieu de la calculer. Le registre laneid contient toujours une valeur de 0 à 31 pour le thread courant.

Le verrouillage de phase a une limite

Les threads partagent un seul compteur ordinal par groupe. Lorsqu’une instruction conditionnelle envoie les voies sur des chemins différents, le groupe diverge et exécute chaque chemin à tour de rôle, ce qui réduit les performances.

Le masque actif

Toutes les voies ne sont pas toujours en cours d’exécution. Un masque de 32 bits indique quelles voies sont actuellement actives, avec un bit par voie mis à 1 lorsque celle-ci participe.

Pourquoi les masques existent

Après une divergence, seules certaines voies sont encore actives. Les primitives de groupe doivent savoir exactement lesquelles sont présentes : vous leur transmettez donc un masque actif afin qu’elles restent correctes.

Le masque complet

Lorsque vous êtes certain que les 32 voies sont actives, le masque vaut 0xffffffff, avec tous ses bits à 1. Ce masque complet est la valeur que vous transmettrez le plus souvent.

unsigned mask = 0xffffffff;

Construire un masque sans risque

Dans une branche, ne devinez pas le masque. Appelez activemask pour capturer exactement les voies qui ont atteint ce point à cet instant.

unsigned mask = __activemask();

Les voies communiquent sans mémoire

Le principal avantage est que les voies d’un même groupe peuvent échanger directement des données par l’intermédiaire des registres. Aucune mémoire partagée ni barrière n’est nécessaire pour un échange local au groupe.

La synchronisation concerne le groupe

Le suffixe de synchronisation de ces intrinsèques représente une synchronisation au niveau du groupe, et non une barrière de bloc. Elle ne coordonne que les voies indiquées dans le masque que vous lui transmettez.

Vérification rapide

Rappelez-vous ce qu’est un groupe de threads et quelle est sa taille sur les GPU NVIDIA.

Récapitulatif

Un groupe contient 32 voies qui s’exécutent en verrouillage de phase, et un masque indique lesquelles sont actives. Cette base permet aux voies de partager rapidement des données. Ensuite : les permutations pour les réductions. ✨

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 « Warps, voies et masques » est-elle gratuite ?

Oui — le texte complet de « Warps, voies et masques » 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 « Warps, voies et masques » ?

L’unité de 32 threads et les masques actifs. 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 1 sur 4.

Combien de temps prend la leçon « Warps, voies et masques » ?

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. Warps, voies et masques
  2. __shfl_down_sync pour les réductions
  3. Fonctions de vote et de scrutin
  4. Groupes coopératifs
← Retour à CUDA Academy