Choisir le nombre de threads par bloc
Des valeurs raisonnables comme 128 et 256.
Choisir le nombre de threads par bloc 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.
Une vraie décision
Lorsque vous lancez un noyau, vous devez choisir le nombre de fils d’exécution par bloc. Ce petit choix a une incidence réelle sur les performances. 🎚️
Des multiples de 32
Le GPU exécute les fils d’exécution par groupes de 32 appelés warps ; choisissez donc toujours un multiple de 32. Les tailles impaires gaspillent des voies dans un warp incomplet.
Des valeurs par défaut sûres
Pour commencer, choisissez 128 ou 256 fils d’exécution par bloc. Ce sont des multiples de 32 qui fonctionnent bien sur presque tous les GPU.
int threadsPerBlock = 256;La limite supérieure stricte
Sur les GPU actuels, un bloc peut contenir au maximum 1024 fils d’exécution. Si vous en demandez davantage, le lancement échoue simplement avec une erreur.
Trop peu de fils d’exécution
De très petits blocs, comme ceux de 32 fils d’exécution, peuvent laisser le GPU sous-utilisé. L’ordonnanceur dispose de moins de warps pour masquer la latence mémoire.
Trop de fils d’exécution
Les blocs très volumineux peuvent manquer de registres ou de mémoire partagée, ce qui réduit le nombre de blocs pouvant tenir sur chaque multiprocesseur. Plus grand ne signifie pas toujours meilleur.
Calculer le nombre de blocs
Une fois le nombre de fils d’exécution par bloc défini, arrondissez vers le haut le nombre de blocs afin de couvrir chaque élément, même si la division n’est pas exacte.
int blocks = (n + threadsPerBlock - 1) / threadsPerBlock;Ajoutez toujours une vérification des limites
L’arrondi vers le haut crée quelques fils d’exécution supplémentaires. Protégez votre noyau avec une condition if afin qu’ils n’accèdent pas à la mémoire située au-delà du tableau.
if (i < n) out[i] = a[i] + b[i];Laissez CUDA proposer une taille
Vous pouvez demander automatiquement à CUDA une bonne taille de bloc à l’aide de l’auxiliaire d’occupation, puis ajuster cette proposition.
cudaOccupancyMaxPotentialBlockSize(&grid, &block, kernel);Mesurez, ne devinez pas
La taille réellement optimale dépend de votre noyau et de votre GPU. Commencez par 256, puis évaluez les performances de quelques valeurs et conservez la plus rapide.
Une règle pratique
Pour la plupart des noyaux destinés aux débutants, 256 fils d’exécution par bloc, avec un nombre de blocs arrondi vers le haut, constitue un point de départ fiable et rapide.
Vérification rapide
Choisissez le nombre de fils d’exécution par bloc le plus judicieux.
Récapitulatif : dimensionner vos blocs
Vous avez appris à dimensionner les blocs : utilisez des multiples de 32, choisissez 256 par défaut, restez sous 1024, arrondissez le nombre de blocs vers le haut et mesurez les performances. 🏁
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 « Choisir le nombre de threads par bloc » est-elle gratuite ?
Oui — le texte complet de « Choisir le nombre de threads par bloc » 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 « Choisir le nombre de threads par bloc » ?
Des valeurs raisonnables comme 128 et 256. 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 « Choisir le nombre de threads par bloc » ?
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