GPU Computing CUDA

Caractéristiques GPU / CPU

Processeur graphique

Un processeur graphique, ou GPU (de l'anglais Graphics Processing Unit) est un circuit intégré présent sur une carte graphique et assurant les fonctions de calcul de l'affichage. Un processeur graphique a généralement une structure hautement parallèle qui le rend efficace pour une large palette de tâches graphiques comme le rendu 3D, en Direct3D, en OpenGL, la gestion de la mémoire vidéo, traitement du signal vidéo, décompression Mpeg, etc.

Voici un tableau vous présentant les différences entre les taches réalisées par le GPU et le CPU :

Texte remplaçant l'image

Le GPU travaille avec des données vectorielles, alors que le CPU travaille avec toutes types de données

Architecture des GPU et CPU

Nous allons vous présenter la différence entre l'architecture d'un processeur graphique, d'un processeur central. Le schéma suivant permet de mieux comprendre.

Texte remplaçant l'image

Les CPU sont conçus pour tirer un maximum de performances d'un flux d'instructions, leurs traitements sont majoritairement effectués sur des données diverses (entier, flotant), les accés à la mémoire sont aléatoires et ,dans un soucis de sécurité, celiu-ci effectue de nombreux branchements. Depuis un certains nombre d'années, nous pouvons voir que les architectures des processeurs sont construites pour parralléliser le maximum d'instructions simulatanément. Ils possédent un grand nombre de mémoire caché pour accélerer les accés.

Le travail des GPU consiste à prendre un ensemble de données, les polygones, et de créer un ensembles de pixels à partir des polygones. Nous pouvons voir que les deux ensembles sont indépendants, et peuvent être traités simulanement. C'est pourquoi, nous pouvons voir que le GPU comporte un grand nombre d'ALU et non de mémoire. Nous pouvons également voir que le nombre d'unité de controle est faible, cela vient du fait qu'aucune sécurité n'est mise en place pour accélerer les calculs. Les vérifications effectuées sont le dépassement de mémoire ou les opérations non autorisées, comme la division par 0.

Puissance de calcul

Le nombre de FLOPS est une mesure commune de la vitesse d'un système informatique. Un FLOP signifie une opération à virgule flottante par seconde.

Texte remplaçant l'image

D'aprés ce graphique, nous pouvons voir qu'avant la sortie du GPU Computing, et plus précisement CUDA, la puissance des GPU et CPU étaient semblabes. Aprés la présentation des outils de NVidia, les constructeurs ont entrepris d'améliorer les performances des cartes graphiques pour attirer un nouveau public, voulant utiliser la puissance des GPU. De plus, nous pouvons voir que la puissance des CPU reste relativement constante, à cause de problèmes matériels, tels que la température croissante causant l'endommagement des composants (Il y a 10 ans, la finesse de gravure était de 96 nm, actuellement elle est de 32 nm. Cela permet un meilleur refroidissement, et ainsi une plus basse consommation calorifique).