Unités de calcul AMD contre cœurs Nvidia CUDA : quelle est la différence ?

Si vous suivez Nvidia et AMD, vous connaissez probablement les spécifications de leurs GPU que ces deux sociétés aiment utiliser. Par exemple, Nvidia aime mettre l'accent sur le nombre de cœurs CUDA pour différencier son offre des cartes AMD, tandis qu'AMD fait de même avec ses unités de calcul.

Mais que signifient réellement ces termes ? Un noyau CUDA est-il la même chose qu'une unité de calcul ? Si non, alors quelle est la différence ?

Répondons à ces questions et voyons ce qui différencie un GPU AMD d'un GPU Nvidia.

Architecture générale d'un GPU

Tous les GPU, qu'ils proviennent d'AMD, de Nvidia ou d'Intel, fonctionnent généralement de la même manière. Ils ont les mêmes composants clés et la disposition globale de ces composants est similaire à un niveau supérieur.

Ainsi, d'un point de vue descendant, tous les GPU sont identiques.

Lorsque nous examinons les composants propriétaires spécifiques que chaque fabricant intègre dans son GPU, les différences commencent à apparaître. Par exemple, Nvidia intègre des cœurs Tensor dans leurs GPU, tandis que les GPU AMD n'ont pas de cœurs Tensor.

De même, AMD utilise des composants comme l'Infinity Cache, que les GPU Nvidia n'ont pas.

Ainsi, pour comprendre la différence entre les unités de calcul (CU) et les cœurs CUDA, nous devons d'abord examiner l'architecture globale d'un GPU. Une fois que nous pouvons comprendre l'architecture et voir comment fonctionne un GPU, nous pouvons clairement voir la différence entre les unités de calcul et les cœurs CUDA.

Comment fonctionne un GPU ?

La première chose que vous devez comprendre est qu'un GPU traite des milliers voire des millions d'instructions simultanément. Par conséquent, un GPU a besoin de beaucoup de petits cœurs hautement parallèles pour gérer ces instructions.

Ces petits cœurs GPU sont différents des gros cœurs CPU qui traitent une instruction complexe par cœur à la fois.

Par exemple, une Nvidia RTX 3090 possède 10496 cœurs CUDA. D'autre part, le haut de gamme AMD Threadripper 3970X n'a ​​que 64 cœurs.

Nous ne pouvons donc pas comparer les cœurs GPU aux cœurs CPU. Il existe de nombreuses différences entre un processeur et un processeur graphique, car les ingénieurs les ont conçus pour effectuer différentes tâches.

De plus, contrairement à un processeur moyen, tous les cœurs du GPU sont organisés en clusters ou en groupes.

Enfin, un cluster de cœurs sur un GPU possède d'autres composants matériels tels que des cœurs de traitement de texture, des unités à virgule flottante et des caches

pour aider à traiter des millions d'instructions en même temps. Ce parallélisme définit l'architecture d'un GPU. Du chargement d'une instruction à son traitement, un GPU fait tout selon les principes du traitement parallèle.

  • Tout d'abord, le GPU reçoit une instruction à traiter à partir d'une file d'instructions. Ces instructions sont presque toujours majoritairement liées aux vecteurs.
  • Ensuite, pour résoudre ces instructions, un planificateur de threads les transmet aux clusters principaux individuels pour traitement.
  • Après avoir reçu les instructions, un planificateur de cluster de cœurs intégré attribue les instructions aux cœurs ou aux éléments de traitement pour le traitement.
  • Enfin, différents clusters principaux traitent différentes instructions en parallèle et les résultats sont affichés à l'écran. Ainsi, tous les graphiques que vous voyez à l'écran, un jeu vidéo, par exemple, ne sont qu'une collection de millions de vecteurs traités.

En bref, un GPU possède des milliers d'éléments de traitement que nous appelons des « cœurs » organisés en clusters. Les planificateurs attribuent du travail à ces clusters pour obtenir le parallélisme.

Que sont les unités de calcul ?

Comme vu dans la section précédente, chaque GPU a des clusters de cœurs contenant des éléments de traitement. AMD appelle ces clusters de base « unités de calcul ».

www.youtube.com/watch?v=uu-3aEyesWQ&t=202s

Les unités de calcul sont un ensemble de ressources de traitement telles que des unités arithmétiques et logiques parallèles (ALU), des caches, des unités à virgule flottante ou des processeurs vectoriels, des registres et de la mémoire pour stocker les informations de thread.

Pour faire simple, AMD n'annonce que le nombre d'unités de calcul de ses GPU et ne détaille pas les composants sous-jacents.

Ainsi, chaque fois que vous voyez le nombre d'unités de calcul, considérez-les comme un groupe d'éléments de traitement et tous les composants associés.

Que sont les noyaux CUDA ?

Là où AMD aime garder les choses simples avec le nombre d'unités de calcul, Nvidia complique les choses en utilisant des termes comme les cœurs CUDA.

Les cœurs CUDA ne sont pas exactement des cœurs. Ce ne sont que des unités à virgule flottante que Nvidia aime qualifier de cœurs à des fins de marketing. Et, si vous vous en souvenez, les clusters principaux ont de nombreuses unités à virgule flottante intégrées. Ces unités effectuent des calculs vectoriels et rien d'autre.

Donc, les appeler un «noyau» est du pur marketing.

Par conséquent, un noyau CUDA est un élément de traitement qui effectue des opérations à virgule flottante. Il peut y avoir de nombreux cœurs CUDA à l'intérieur d'un cluster à cœur unique.

Enfin, Nvidia appelle les clusters de base « Multiprocesseurs de streaming ou SM ». Les SM sont équivalents aux unités de calcul AMD, car les unités de calcul sont elles-mêmes des clusters principaux.

Quelle est la différence entre les unités de calcul et les cœurs CUDA ?

La principale différence entre une unité de calcul et un noyau CUDA est que la première fait référence à un cluster de base et la seconde à un élément de traitement.

Pour mieux comprendre cette différence, prenons l'exemple d'une boîte de vitesses.

Une boîte de vitesses est une unité composée de plusieurs engrenages. Vous pouvez considérer la boîte de vitesses comme une unité de calcul et les engrenages individuels comme des unités à virgule flottante des cœurs CUDA.

En d'autres termes, là où les unités de calcul sont une collection de composants, les cœurs CUDA représentent un composant spécifique à l'intérieur de la collection. Ainsi, les unités de calcul et les cœurs CUDA ne sont pas comparables.

C'est aussi pourquoi, lorsqu'AMD mentionne le nombre d'unités de calcul pour leurs GPU, elles sont toujours bien inférieures aux cartes Nvidia concurrentes et à leur nombre de cœurs CUDA. Une comparaison plus favorable serait entre le nombre de Streaming Multiprocessors de la carte Nvidia et le nombre d'unités de calcul de la carte AMD.

Connexes : AMD 6700XT contre Nvidia RTX 3070 : quel est le meilleur GPU à moins de 500 $ ?

Les cœurs CUDA et les unités de calcul sont différents et non comparables

Les entreprises ont l'habitude d'utiliser une terminologie confuse pour présenter leurs produits sous leur meilleur jour. Non seulement cela perturbe le client, mais cela rend également difficile le suivi des choses qui comptent.

Assurez-vous donc de savoir quoi rechercher lorsque vous recherchez un GPU. Rester loin du jargon marketing rendra votre décision bien meilleure et moins stressante.