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 :
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.
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.
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).