Analysis of Multi-Core and GPU Technologies

Page 1 sur 19Lecteur de document UniversityLib

Analysis of Multi-Core and GPU Technologies

Computer Architecture and Graphics Processing · notes

  • « 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

  • Les systèmes multiprocesseurs consomment beaucoup d'énergie et dégagent beaucoup de chaleur ;

La technologie multicœurs ( multicore en anglais) permet d ' assembler deux cœurs de processeurs côte - à côte sur le silicium ;

une consommation et un dégagement de chaleur réduits

1

Types d’architectures multicoeurs

Mémoires caches des cœurs sont distinctes 2

Types d’architectures multicoeurs

Mémoire cache des cœurs est commune 3

Types d’architectures multicoeurs

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

Publicité

Les programmes doivent être repensés, dans le cas contraire, ils utilisent seulement un des cœurs. Très peu de logiciels gèrent le bi-cœurs. Les logiciels ne sont pas conçus pour tirer le maximum de cette technologie. Les performances se détacheront nettement dans les applications gourmandes comme les jeux vidéo. Les quadri-cœurs, formés de 4 cœurs, sont entrain de remplacer les bi-cœurs, car le passage à cette architecture ne demande quasiment pas de modification logicielle.

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 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

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

  • L e processeur grap hi que est tr è s souvent mun i d e son propre radiateur ou ventilateur pour évacuer la chaleur qu’il produit.

une carte graphique

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.

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.

Publicité

  • 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 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.

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

    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.

    On devine alors que 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.

    1) Types On distingue deux grandes familles de mémoires graphiques :

    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 stocka g es destinés au p rocesseur g ra p hi q ue.

    Publicité

    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 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

    ⇒ 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 :

    programmations ‘API’,

    Publicité

    • 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 - 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

    • 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