Carte graphique vs processeur ?
Sommaire
Bien que les technologies des cartes graphiques et des processeurs puissent sembler identiques, il existe des différences importantes qui les différencient.
L’unité centrale de traitement (CPU) et l’unité de traitement graphique (GPU) sont les deux composants informatiques les plus utilisés dans les SoC modernes des ordinateurs et smartphones. Bien que les acronymes soient similaires et que tous deux traitent de grandes quantités de données, les technologies des GPU et des CPU sont très différentes, ce qui laisse peu de place à l’interconnectivité.
Commençons par quelques notions générales de base, puis passons aux principales différences entre les GPU et les CPU.
Chaque cœur de CPU et de GPU est constitué de plusieurs sous-blocs, chacun effectuant une tâche spécifique pour le CPU. La taille et la portée de ces blocs varient en fonction de la microarchitecture de la conception. Une unité arithmétique et logique (ALU) est un type de bloc partagé qui effectue des opérations mathématiques telles que l’addition et la multiplication.
Les gestionnaires d’accès à la mémoire (load/store), les décodeurs d’instructions et les caches sont des blocs fonctionnels communs. Cependant, les parallèles s’arrêtent là. Examinons de plus près les concepts de GPU et de cœur de processeur.
Qu’est-ce qu’un CPU ?
L’unité centrale est considérée comme le cerveau d’une machine. Il est très adaptable, maintient le spectacle sur la route et accomplit un large éventail de tâches. L’unité centrale de l’ordinateur est responsable de toutes les fonctions logiques requises par le système d’exploitation et les applications.
Les configurations multicœurs sont courantes dans les processeurs : les appareils mobiles ont quatre à huit cœurs et les ordinateurs de bureau et les serveurs en ont 16 ou plus. Les processeurs multicœurs permettent l’exécution simultanée de plusieurs applications et tâches, ce qui améliore les économies d’énergie et les performances.
Chaque cœur de processeur a une vitesse d’horloge de 2 à 3 GHz pour les appareils mobiles et jusqu’à 5 GHz pour les ordinateurs de bureau. Les processeurs peuvent également être configurés avec différentes quantités de mémoire cache, une mémoire rapide proche de la mémoire de ligne, qui sert à stocker les instructions et les données utilisées à un moment donné.
La mémoire cache, qui peut être dédiée à chaque cœur de processeur ou partagée entre les cœurs, est essentielle pour accélérer l’exécution et le passage des tâches.
Par exemple, chaque cœur de processeur Cortex-A77 contient, en plus de l’UAL traditionnelle et de la prédiction de branchement, un cœur mathématique NEON, un module à virgule flottante et trois caches.
La plupart des processeurs actuels possèdent plusieurs UAL pour le traitement des nombres. C’est là que se trouvent la plupart des transistors. Les processeurs gèrent et réaffectent également la mémoire virtuelle pour toutes les applications en cours d’exécution, ce qui en fait des composants essentiels du système d’exploitation.
Les processeurs disposent également de branches prédictives intégrées qui anticipent et prévoient les informations et les instructions qui seront nécessaires dans un avenir proche. Cela permet de gagner du temps dans la récupération des informations à partir de la RAM plus lente, ce qui est utile car les sessions du processeur contiennent souvent des boucles et des opérateurs if qui permettent d’aborder rapidement un nouveau code. De nombreuses conceptions actuelles de GPU n’incluent pas de branchement prédictif car leurs charges de travail sont beaucoup plus déterministes.
Qu’est-ce qu’une carte graphique ?
En raison de la nature différente des charges de travail, vous ne trouverez pas de branchement prédictif sur les cartes graphiques, comme nous venons de l’expliquer. C’est la clé pour comprendre les différences entre les GPU et les CPU. Un CPU est conçu pour faire un peu de tout, mais les GPU sont conçus pour une tâche spécifique : le traitement parallèle des graphiques 3D. Ils sont conçus pour être plus rapides et plus économes en énergie pour cette tâche, mais en conséquence, ils ne sont pas aussi flexibles pour différentes charges de travail.
Les cœurs de GPU contiennent une ou plusieurs UAL, mais elles ne sont pas conçues comme l’UAL principale du CPU. Les cœurs de GPU traitent 8, 16 ou même 32 opérations à la fois, plutôt qu’une ou deux à la fois. Les cœurs de GPU peuvent être constitués de dizaines ou de centaines de cœurs ALU individuels, ce qui permet de traiter des milliers de nombres simultanément. Si vous devez ombrager des millions de pixels sur un écran haute résolution, c’est vraiment utile.
Par exemple, ce processeur graphique PowerVR possède six cœurs d’exécution, chacun doté de plusieurs cœurs ALU pour le traitement des nombres. Il est important que ces cœurs partagent la même mémoire et le même ordonnanceur.
Un Worp est un ensemble de calculs parallèles qui sont généralement interconnectés. Au lieu que de nombreuses instructions indépendantes s’exécutent simultanément, comme dans une unité centrale, un bloc de données et d’instructions traverse ce grand chemin et traite les nombres comme une seule unité. En d’autres termes, les architectures GPU sont conçues pour traiter simultanément de grandes quantités de données similaires et utiliser des instructions individuelles pour référencer de grandes quantités de données. Toutefois, les instructions de l’unité centrale ne portent presque toujours que sur quelques points de données à la fois.
La vitesse d’horloge du contrôleur d’écran est généralement inférieure à celle de l’unité centrale, souvent de l’ordre de quelques centaines de MHz ou de GHz. Cela est dû à des limitations thermiques et énergétiques, car les calculs massivement parallèles nécessitent beaucoup plus de transistors que les UAL du processeur.
Il convient également de noter que le calcul massivement parallèle peut être utilisé pour d’autres applications que la simple visualisation. Le rendu vidéo, les techniques d’apprentissage automatique telles que la reconnaissance d’objets et les algorithmes de cryptage s’exécutent plus rapidement sur un processeur graphique parallèle que sur un matériel CPU aux ressources limitées.
En bref, GPU contre CPU
En utilisant la dernière analogie, on peut considérer le CPU comme un couteau suisse et la carte graphique comme une machette. Un couteau est utile pour de nombreuses tâches, qu’il s’agisse de couper une corde ou d’ouvrir des boîtes de haricots. Vous ne voulez probablement pas essayer de faire ça avec une machette. Mais si vous devez vous frayer un chemin dans une jungle dense, il vous faut une machette, pas un petit couteau militaire.
L’unité centrale de traitement dispo
se généralement d’un jeu d’instructions étendu, ce qui lui permet d’effectuer une grande variété de tâches. Ses cœurs sont également plus personnalisables, permettant l’exécution simultanée de plusieurs applications et tâches. D’autre part, les cartes graphiques ont un jeu d’instructions beaucoup plus petit et peuvent se concentrer sur une seule tâche à la fois, mais elles peuvent effectuer beaucoup plus de calculs mathématiques en un seul cycle d’horloge. C’est la spécialisation.
Même si les processeurs et les cartes graphiques sont tous deux constitués de transistors et traitent des données et des chiffres, ils sont optimisés pour des tâches différentes. Heureusement, les SoC combinent le meilleur des deux mondes en les associant à divers autres processeurs.