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 y en a pas mal différences entre un CPU et un GPU parce que 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 à des 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 les unités arithmétiques et logiques parallèles (ALU), caches, unités à virgule flottante ou processeurs vectoriels, registres et de la mémoire pour stocker le thread information.
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 core clusters « Multiprocesseurs en 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.
En rapport: AMD 6700XT vs. 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.
Si vous êtes un joueur, vous pourriez être tenté de mettre à niveau votre carte graphique vers la série 30 de NVIDIA. Mais est-ce que ça en vaut la peine?
Lire la suite
- La technologie expliquée
- Carte graphique
- Nvidia
- Processeur AMD
Fawad est un écrivain indépendant à temps plein. Il aime la technologie et la nourriture. Lorsqu'il ne mange pas ou n'écrit pas sur Windows, il joue à des jeux vidéo ou écrit pour son blog original Techsava.
Abonnez-vous à notre newsletter
Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !
Cliquez ici pour vous abonner