Glossaire IA
Le dictionnaire complet de l'Intelligence Artificielle
Thread Divergence
Phénomène où des threads d'un même warp empruntent des chemins d'exécution différents, causant une sérialisation des branches et réduisant considérablement les performances parallèles sur GPU.
Shared Memory Bank Conflicts
Contention qui se produit lorsque plusieurs threads du même warp tentent d'accéder simultanément à la même banque mémoire de la shared memory, provoquant une sérialisation des accès.
Warp Scheduling
Mécanisme du scheduler GPU qui optimise l'ordonnancement des warps pour maximiser l'utilisation des unités de calcul et masquer la latence mémoire.
Register Spilling
Phénomène où le compilateur doit déplacer des données des registres vers la mémoire locale (lente) lorsque les registres sont insuffisants, dégradant significativement les performances.
Instruction Throughput
Mesure du nombre d'instructions pouvant être exécutées par cycle d'horloge, optimisée en favorisant les opérations arithmétiques natives et en évitant les instructions complexes.
Grid Stride Loop
Pattern de boucle où chaque thread traite plusieurs éléments espacés par la taille totale de la grid, permettant de traiter des datasets plus grands que la grille de threads.
Loop Unrolling
Technique d'optimisation qui élimine les itérations de boucle en dupliquant le corps, réduisant la surcharge de contrôle de boucle et augmentant le parallélisme au niveau instruction.
Memory Latency Hiding
Stratégie consistant à lancer suffisamment de warps pour que le GPU puisse basculer vers des warps prêts pendant que d'autres attendent des accès mémoire.
Vector Memory Operations
Instructions qui transfèrent plusieurs données simultanément (float2, float4) entre mémoire globale et registres, améliorant la bande passante effective.
Cooperative Groups
API CUDA permettant une synchronisation flexible et collective entre threads au-delà des limites traditionnelles de bloc, optimisant les patterns de communication complexes.
Texture Memory Caching
Utilisation de la mémoire texture avec son cache optimisé pour les accès spatiaux, particulièrement efficace pour les patterns d'accès avec localité 2D.
Atomic Operations Optimization
Techniques pour réduire la contention sur les opérations atomiques, notamment par l'utilisation de la shared memory pour l'agrégation locale avant mise à jour globale.
Kernel Launch Overhead
Coût temporel associé au démarrage d'un kernel GPU, minimisé en fusionnant plusieurs petits kernels en un seul plus gros ou en utilisant dynamic parallelism.
Work Distribution Balance
Optimisation de la répartition du travail entre threads pour éviter le déséquilibre de charge où certains threads terminent beaucoup plus tôt que d'autres.
Prefetching Strategy
Technique anticipative de chargement des données en shared memory avant leur utilisation, masquant ainsi la latence des accès à la mémoire globale.