2026-07-14

SM, Cœurs CUDA et Architecture GPU

SM, Cœurs CUDA et Architecture GPU

L'architecture GPU de NVIDIA est construite autour d'une structure hiérarchique. La plus petite unité est le cœur CUDA, qui est une unité arithmétique simple capable d'effectuer une opération en virgule flottante ou entière par cycle d'horloge. Les cœurs CUDA sont regroupés en unités plus grandes appelées Streaming Multiprocessors, ou SM. Chaque SM contient un nombre fixe de cœurs CUDA, ainsi que de la mémoire partagée, des registres et une logique d'ordonnancement.

Le nombre de cœurs CUDA par SM a augmenté à chaque génération. Dans l'architecture Turing, chaque SM avait 64 cœurs CUDA. Dans Ampere, il est passé à 128. Dans Ada Lovelace, chaque SM a 128 cœurs CUDA, mais l'architecture est plus efficace, donc chaque cœur fait plus de travail par cycle. Une RTX 4090 haut de gamme a 128 SM pour un total de 16 384 cœurs CUDA.

Les cœurs CUDA ne sont pas tous identiques. Les GPU NVIDIA modernes ont des cœurs séparés pour les mathématiques entières et en virgule flottante, et ils peuvent exécuter les deux types d'instructions simultanément. C'est ce qu'on appelle la concurrence FP32 et INT32, et cela améliore l'utilisation. Il existe également des unités fonctionnelles spéciales pour des opérations comme les racines carrées et les fonctions trigonométriques, et des tensor cores pour les opérations matricielles.

Le SM contient également un ordonnanceur qui décide quels threads exécuter ensuite. Les GPU utilisent un parallélisme massif, exécutant des milliers de threads simultanément. L'ordonnanceur regroupe les threads en warps de 32 threads chacun. Les 32 threads d'un warp exécutent la même instruction, mais sur des données différentes. Si les threads d'un warp empruntent des chemins de code différents, certains doivent attendre, ce qui réduit l'efficacité.

La hiérarchie mémoire est cruciale dans l'architecture GPU. Chaque SM possède son propre fichier de registres et sa mémoire partagée, qui sont extrêmement rapides mais de taille limitée. Tous les SM partagent un cache L2 plus grand, et au-delà se trouve la VRAM globale. Comprendre cette hiérarchie est essentiel pour écrire du code GPU efficace. Les données qui restent dans les registres ou la mémoire partagée sont des centaines de fois plus rapides à accéder que les données dans la mémoire globale.

Travaillons ensemble

Vous avez besoin de plus d'informations, d'aide pour votre projet ou pour développer une idée?

Qu'il s'agisse d'une question simple, d'un doute rapide ou d'une discussion de 5 minutes, envoyez-moi un message—cela ne coûte rien et je suis toujours prêt à vous aider. J'aime comprendre un problème, être créatif dans les solutions et me concentrer sur des idées simples, fiables et faciles à réaliser rapidement.

Me contacter

Changer de sujet

Choisissez un sujet spécialisé à explorer: