BLOG

Qu'est-ce qu'un cœur CUDA et comment fonctionne-t-il ?

Dernière mise à jour :

  Cette page a été traduite automatiquement par DeepL. Switch to English

Un cœur CUDA est l'une des minuscules unités mathématiques présentes dans un GPU NVIDIA qui effectue les tâches fastidieuses liées au traitement graphique et au calcul parallèle. Chaque cœur se trouve dans un bloc plus grand appelé « multiprocesseur de flux » (SM) et, sur les GPU GeForce « Blackwell » modernes, chaque SM contient 128 cœurs CUDA. C'est pourquoi vous verrez des totaux tels que 21 760 cœurs CUDA sur une RTX 5090. La puce comporte simplement de nombreux SM, chacun contenant ces cœurs.

CUDA (la plateforme de calcul parallèle de NVIDIA) est le volet logiciel : elle permet aux applications et aux frameworks d'envoyer efficacement des tâches de rendu, d'IA et de simulation massivement parallèles à ces cœurs.

NVIDIA-Tesla-Module

Comment fonctionnent les cœurs CUDA ?

Considérez un GPU comme une usine conçue pour traiter des tâches volumineuses. Les cœurs CUDA traitent les tâches dans des groupes de 32 threads qui exécutent la même instruction sur différentes données (un modèle que NVIDIA appelle SIMT). C'est ainsi que les GPU traitent des milliers d'opérations à la fois. Chaque SM dispose de planificateurs qui maintiennent de nombreux threads en cours d'exécution afin de masquer la latence de la mémoire et de garder ces cœurs occupés.

Une image mentale utile :

  • Noyau CUDA = un travailleur individuel (effectue des opérations arithmétiques telles que des additions, des multiplications).
  • SM = un atelier doté de ses propres planificateurs, caches, unités à fonction spéciale, Tensor Core(s), etc.
  • GPU = l'ensemble de l'usine, avec de nombreux SM fonctionnant en parallèle.

Cœurs CUDA vs cœurs CPU (et autres cœurs GPU)

  • Il ne s'agit pas de cœurs de processeur : un cœur CUDA est une voie arithmétique plus simple optimisée pour le débit, et non un gros cœur de processeur polyvalent adapté à la latence. Les GPU évoluent en combinant un grand nombre de ces petites voies. (Le guide de programmation CUDA explique cette conception axée sur le débit.)
  • Différent des cœurs GPU spécialisés :
    • Les Tensor Cores sont des moteurs mathématiques matriciels qui optimisent l'IA/ML et des fonctionnalités telles que DLSS.
    • Les cœurs RT accélèrent le ray tracing (traversée BVH, tests rayons/triangles).

Ceux-ci déchargent certaines tâches spécifiques afin que les cœurs CUDA puissent se concentrer sur l'ombrage/le calcul.

nvidia-workstation-rtx-pro-5000-og-1200x630

Crédit image : NVIDIA

Un nombre plus élevé de cœurs CUDA est-il toujours synonyme de meilleures performances ?

En général, mais pas à elles seules. L'architecture joue un rôle très important. Par exemple, la génération Ampere de NVIDIA a doublé le débit FP32 par SM par rapport à Turing, ce qui signifie que la puissance « par cœur » a changé d'une génération à l'autre. Ada a également considérablement augmenté la taille des caches (notamment L2), ce qui améliore les performances de nombreuses charges de travail sans modifier le nombre de cœurs. En résumé, comparer le nombre de cœurs CUDA entre différentes générations n'est pas comparable.

Autres facteurs importants :

  • Vitesses d'horloge et marge de puissance (vitesse d'exécution des cœurs).
  • Bande passante mémoire et taille des caches (alimentant les cœurs).
  • Utilisation des cœurs Tensor/RT (l'IA et le ray tracing déchargent les cœurs CUDA).
  • Pilotes et logiciels (efficacité avec laquelle une application utilise le GPU via CUDA).

Que font réellement les cœurs CUDA dans la pratique ?

  • Jeux/graphismes : ils exécutent des programmes de shaders (vertex, pixel, calcul) en arrière-plan. Les cœurs RT gèrent les étapes lourdes du ray tracing ; les cœurs CUDA continuent d'effectuer de nombreux calculs et ombres autour d'eux.
  • Création de contenu et simulation : les solveurs physiques, les débruitages, les noyaux de rendu, les effets vidéo, etc. sont pour la plupart conçus pour tirer parti du modèle parallèle de CUDA.
  • IA/ML : les opérations Tensor sont effectuées par les Tensor Cores, mais une grande partie du prétraitement, du post-traitement et des tâches non matricielles sont toujours exécutés par les cœurs CUDA.

De combien de cœurs CUDA ai-je besoin ?

Une règle empirique conviviale :

  • Jeux à haute fréquence d'images par seconde en 1080p-1440p : examinez l'ensemble du GPU (architecture, horloges, mémoire, fonctionnalités RT/Tensor), et pas seulement le nombre de cœurs. Les benchmarks sont plus importants que les chiffres bruts.
  • 4K ou ray tracing intensif : vous bénéficierez d'un plus grand nombre de cœurs SM/CUDA et de blocs RT/Tensor puissants, ainsi que d'une bande passante et d'un cache plus importants.
  • IA/calcul : le nombre de cœurs est un atout, mais ce sont souvent la capacité Tensor Core, la taille de la VRAM et la bande passante mémoire qui déterminent le débit.

Si vous souhaitez vérifier rapidement l'échelle, la RTX 5090 répertorie 21 760 cœurs CUDA, ce qui montre comment NVIDIA comptabilise les cœurs par SM sur plusieurs SM. Mais là encore, les gains de performances proviennent de la conception globale, et non du nombre seul.

NVIDIA-Blackwell-Ultra-GB300

Crédit image : NVIDIA

Ai-je besoin d'un logiciel ou de câbles spéciaux ? (Le « HDMI pour 4K » de CUDA)

Vous n'avez pas besoin d'un câble spécial, mais vous devez disposer de la pile logicielle appropriée. CUDA est la plateforme de NVIDIA ; les applications l'utilisent via des pilotes, des boîtes à outils et des bibliothèques. De nombreuses applications et infrastructures populaires sont déjà conçues pour exploiter l'accélération CUDA une fois que vos pilotes NVIDIA et (si nécessaire) la boîte à outils CUDA sont installés. Les applications prises en charge l'utilisent tout simplement.

Quels GPU prennent en charge CUDA ?

CUDA fonctionne sur les GPU NVIDIA compatibles CUDA de toutes les gammes de produits (GeForce/RTX pour les jeux et la création, RTX professionnel et GPU pour centres de données). Le guide de programmation indique que le modèle s'adapte à de nombreuses générations de GPU et références. NVIDIA tient à jour une liste des GPU compatibles CUDA et de leurs capacités de calcul.

Un cœur CUDA est-il identique à un « cœur de shader » ?


Dans le jargon quotidien des GPU, oui, sur les GPU NVIDIA, les « cœurs CUDA » désignent les ALU FP32/INT32 programmables utilisées pour l'ombrage et le calcul général à l'intérieur de chaque SM.



Pourquoi le nombre de cœurs CUDA varie-t-il autant d'une génération à l'autre ?


Parce que les architectures évoluent. Ampere a modifié les chemins de données FP32 (plus de travail par cycle d'horloge) et Ada a remanié les caches afin que les performances ne soient pas proportionnelles au nombre de cœurs.



C'est quoi déjà, une chaîne ?


Un groupe de 32 threads qui s'exécutent en parallèle sur le SM. Les applications lancent des milliers de threads ; le GPU les planifie sous forme de warps afin de maintenir le matériel occupé.



Les cœurs CUDA sont-ils utiles pour l'IA ?


Oui, mais les grands accélérateurs de l'IA moderne sont les Tensor Cores. Les cœurs CUDA continuent de gérer une grande partie du travail environnant dans ces pipelines.