Understanding Multi-Core and GPU Architectures

Page 1 sur 19Lecteur de document UniversityLib

Understanding Multi-Core and GPU Architectures

Computer Science, Architecture, Parallel Computing · course

•

« multi-cœur » est employé pour décrire un processeur composé d'au moins deux cœurs (ou unités de calcul) gravés au sein de la même puce

multiplier la puissance grâce à une architecture parallèle. augmenter la puissance de calcul sans augmenter la fréquence d'horloge

(cid:1) Les systèmes multiprocesseurs consomment beaucoup d'énergie

chaleur; d'énergie et dégagent beaucoup de chaleur

(cid:1) La technologie multicœurs (multicore en anglais) permet d'assembler deux cœurs de processeurs côte-à- (cid:1) La technologie multicœurs (multicore en anglais) permet d'assembler deux cœurs de processeurs côte-à-

côte sur le silicium ; (cid:1)(cid:1) uneune consommation

consommation etet unun dégagement

dégagement dede chaleur

réduits chaleur réduits

1

multicoeurs Types d’architectures multicoeurs Types d’architectures

Mémoires caches des cœurs sont distinctes

2

multicoeurs Types d’architectures multicoeurs Types d’architectures

Mémoire cache des cœurs est commune

3

multicoeurs Types d’architectures multicoeurs Types d’architectures

Solution « prétendument » Quad-Core d’Intel

Publicité

4

(cid:2)Les programmes doivent être repensés, dans le cas

contraire, ils utilisent seulement un des cœurs.

(cid:2)Très peu de logiciels gèrent le bi-cœurs.

(cid:2)Les logiciels ne sont pas conçus pour tirer le maximum (cid:2)Les logiciels ne sont pas conçus pour tirer le maximum

de cette technologie.

(cid:2)Les performances se détacheront nettement dans les

applications gourmandes comme les jeux vidéo.

(cid:2)Les quadri-cœurs, formés de 4 cœurs, sont entrain de le passage à cette de quasiment

les bi-cœurs,

remplacer architecture modification logicielle.

demande

pas

car

ne

5

• GPU ou processeur graphique «Graphics Processing Unit » est un circuit intégrée présent sur une carte graphique et assurant les fonctions de calcul de l'affichage.

• Un processeur graphique a généralement une structure • 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, la gestion de la mémoire vidéo, traitement du signal vidéo,….

•Le processeur graphique (GPU ou encore VPU pour Visual Processing Unit) sert à libérer le micro-processeur de la carte mère en prenant en charge les calculs spécifiques à l’affichage et la coordination de graphismes 3D

Publicité

•Cette division des tâches entre les deux processeurs libère le la processeur central de l’ordinateur et en augmente d’autant puissance apparente.

•Le processeur graphique est très souvent muni de son propre •Le processeur graphique est très souvent muni de son propre radiateur ou ventilateur pour évacuer la chaleur qu’il produit.

(cid:3)une carte graphique (cid:4) ou encore un adaptateur graphique, est une carte d’extension d’ordinateur dont le rôle est de produire une image affichable sur un écran. (cid:4) La carte graphique envoie à l’écran des images stockées dans (cid:4) La carte graphique envoie à l’écran des images stockées dans sa mémoire.

• Peu d’entreprises conçoivent de tels processeurs : NVIDIA, ATI/AMD, Intel, S3 Graphics.

• Les deux principaux acteurs du marché AMD (ex ATI) et NVIDIA proposent de multiplier la puissance de traitement par des technologies permettant d’utiliser plusieurs cartes graphiques sur un seul ordinateur.

• Le gain est évident : la puissance est réellement augmentée dans de grandes proportions

• la mémoire graphique est presque aussi importante que le GPU.

• la mémoire graphique joue un rôle proche de celui de • la mémoire graphique joue un rôle proche de celui de la RAM pour un processeur d’ordinateur. Sa vitesse de fonctionnement mais également sa taille sont autant de critères qui peuvent lourdement influer sur les performances d’une carte graphique.

(cid:4) La mémoire graphique est presque aussi importante que le GPU. (cid:4)Il s’agit, d’un point de vue organisationnel, de la mémoire dans laquelle les données géométriques comme colorimétriques sont stockées et mises à disposition du processeur graphique. (cid:4)On devine alors que la mémoire graphique joue un rôle proche de celui de la RAM pour un processeur d’ordinateur. (cid:4)Sa vitesse de fonctionnement mais également sa taille sont autant de critères qui peuvent lourdement influer sur les performances d’une carte graphique.

1) Types On distingue deux grandes familles de mémoires graphiques : (cid:3) La mémoire partagée : est la solution la plus souvent retenue par les configurations économiques ou orientées vers la bureautique pure. Son principe est simple : une partie de la mémoire centrale de l’ordinateur RAM est réservée aux stockages destinés au processeur graphique. RAM est réservée aux stockages destinés au processeur graphique.

(cid:3) La mémoire dédiée: est le plus souvent embarquée sur la carte graphique dédiée (ou à proximité du GPU dans le cas d’un ordinateur portable) ce qui lui permet de bénéficier d’un bus dédié (voie de communication) à la communication avec le processeur graphique.

Carte graphique dédiée

Il s’agit du type de processeur graphique le plus puissant. Le processeur est généralement situé sur une carte interfacée avec la carte mère de l’ordinateur. Ces cartes disposent de leur propre Mémoire vive.

Processeur graphique intégré (IGP) Ces processeurs graphiques sont intégrés dans le northbridge sur la carte mère de Ces processeurs graphiques sont intégrés dans le northbridge sur la carte mère de l’ordinateur ou directement au processeur central et utilisent sa mémoire vive ou plus rarement une faible quantité de mémoire dédiée. Ces processeurs graphiques sont moins performants que ceux des cartes graphiques dédiées, mais ils sont moins couteux, plus facile a intégrer et moins consommateurs en énergie. Exemple: Les ordinateurs portables anciens et/ou bas de gamme utilisent cette méthode afin de réduire les coûts. Les IGP suffisent si le matériel n'est pas sollicité par les jeux modernes. Les cartes mères actuelles ont souvent un processeur graphique intégré et un (ou plusieurs) port permettant d’ajouter une carte graphique dédiée.

• GPU consacre plus de transistors aux unités arithmétiques et logiques et moins de caches par rapport aux CPU.

• GPU ont aussi généralement une bande

passante mémoire plus élevée par rapport aux CPU.

Les parties séquentielles sont traitées par le CPU, alors que le GPU gère et accélère les tâches de calcul les plus intensives

langages de programmation graphique : OpenGL et Cg ⇒programmer les applications scientifiques à la manière des applications graphiques ⇒limiter l’accessibilité aux performances des GPU pour les applications non graphiques applications non graphiques

Publicité

⇒ Nvidia propose un langage et un logiciel de haut niveau appelé Compute Unified Device Architecture (CUDA)

⇒ exploiter les capacités du calcul des GPUs en se basant sur le principe de programmation parallèle en utilisant des threads

CUDA est un API considéré comme une extension du langage C

CUDA logiciel est composé de trois modules : • une interface pour l’application des • une interface pour l’application des programmations ‘API’,

• un runtime qui joue le rôle intermédiaire entre l’utilisateur et le driver

• une librairie pour les outils mathématiques.

- CUDA exécute les parties parallèles de l’application

sur le GPU en tant que « Kernels »

- CUDA intègre des programmes CPU + GPU : - Kernel : code C qui s’execute sur le GPU - Kernel : code C qui s’execute sur le GPU - Serial : code C qui s’execute sur le CPU - Kernels s’executent en tant que threads

parallèles

• CUDA exécute une séquence de Kernels sur le GPU

• Un Kernel s’exécute comme une grille de blocs de threads

• Un bloc de threads est une liste de threads qui peuvent coopérer threads qui peuvent coopérer

• Les threads dans le même bloc se synchronisent et partagent les données dans la mémoire partagée (SM : Shared Memory)

• CUDA exécute les blocs de threads comme des CTA (Concurrent Thread Array) sur les cœurs SM