Présentation

Article

1 - DU CPU AU GPGPU

  • 1.1 - Évolution du CPU vers le parallélisme
  • 1.2 - Évolution des cartes graphiques

2 - ARCHITECTURES ACTUELLES NVIDIA ET ATI/AMD POUR LE CALCUL GÉNÉRALISTE

3 - LANGAGES DE PROGRAMMATION DE HAUT NIVEAU

4 - PROGRAMMATION AVEC CUDA

5 - ÉVOLUTIONS

  • 5.1 - Matériels
  • 5.2 - Abstractions logicielles

| Réf : TE5990 v1

Évolutions
Calcul généraliste sur carte graphique - Du rendu au calcul massivement parallèle

Auteur(s) : Guillermo B. ANDRADE

Date de publication : 10 févr. 2010

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

RÉSUMÉ

Cet article s'intéresse à la programmation des cartes graphiques dans le but de réaliser des calculs. D'abord, est décrite l'évolution des processeurs vers le parallélisme, et celle des cartes graphiques vers la programmation généraliste et le calcul massivement parallèle. Ces avancées poussent à s'intéresser aux cartes graphiques comme outils d'accélération des calculs, mais aussi comme objet d'entraînement pour la programmation des futures architectures des PC. Les principales architectures des cartes graphiques et les outils logiciels disponibles pour les programmer sont exposées. Une description plus détaillée des cartes NVIDIA et du langage de programmation CUDA est effectuée, suivie d'un exemple de programmation et d'optimisation. Pour finir, un aperçu des résultats obtenus et des évolutions techniques possibles est donné.

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

ABSTRACT

General-purpose calculation on graphic card - From rendering to massively parallel calculation

This article focuses on the programming of graphic cards in order to carry out calculations. This article starts by describing the evolution of processors leading to parallelism, and that of graphic cards leading to general-purpose programming and massively parallel calculation. Due to these advances, interest in graphic cards has grown as tools to accelerate calculations and as training tools in order to program future PC architectures. The principal architectures of available graphic cards and software tools in order to program them are presented. A more detailed description of NVIDIA cards and CUDA programming language is provided, followed by an example of programming and optimization. This article concludes with an overview of the results obtained and possible technical developments.

Auteur(s)

  • Guillermo B. ANDRADE : Docteur en informatique - Ingénieur de recherche à l'Institut National de Recherche en Informatique et Automatique (INRIA) de Rennes Bretagne Atlantique

INTRODUCTION

L'évolution des cartes graphiques ces dernières années se caractérise par un parallélisme massif et par la généricité de programmation.

Augmenter le parallélisme a permis une augmentation du débit du rendu à la fois par la multiplication de la fréquence d'images générées et par accroissement en taille de ces dernières. La généricité a facilité l'émergence de nouveaux effets de rendu en temps réel grâce à l'apparition de composants programmables comme les unités de pixelisation programmables (programmable pixel shaders units).

Ces deux facteurs réunis ont rendu les cartes graphiques actuelles très attractives pour réaliser des calculs intensifs dépassant le cadre du rendu visuel. La puissance de crête d'une des nouvelles cartes dépasse celle de certains super-calculateurs pour un prix de quelques centaines d'euros ! C'est l'émergence d'une nouvelle technique appelée programmation généraliste de cartes graphiques (GPGPU, General-Purpose computation on Graphics Processing Units).

Le GPGPU est soutenu par les constructeurs des cartes graphiques comme NVIDIA et ATI/AMD qui y voient un nouveau marché pour leurs produits haut de gamme. Ils ont introduit des langages de haut niveau et des environnements de développement facilitant l'accès aux non spécialistes. Aujourd'hui, le calcul massivement parallèle se démocratise. L'évolution des processeurs des ordinateurs s'oriente aussi vers le parallélisme. Il est donc possible que les techniques du GPGPU d'aujourd'hui deviennent les bases de la programmation des PC de demain.

Cet article donne les clefs pour comprendre comment utiliser les cartes graphiques pour augmenter la puissance utile de calcul des ordinateurs. Une première partie est consacrée à l'évolution des cartes graphiques qui permettent de faire du GPGPU. Dans une deuxième partie, une description des architectures actuelles permet au lecteur de saisir les qualités et limitations des cartes graphiques pour le calcul. La troisième partie décrit les principaux langages de programmation orientés pour le calcul des cartes graphiques. Un exemple concret dans la quatrième partie permettra au lecteur d'apercevoir les enjeux de ces techniques et va l'aider à comprendre quel type de calcul est possible d'y être porté avec un bon retour d'investissement. La dernière partie décrit les évolutions à venir qui permettront une convergence plus forte entre CPU (Computer Processor Unit) et GPU (Graphic Processor Unit), ainsi que les évolutions de la couche logicielle en vue d'une standardisation de la programmation pour assurer la portabilité des développements.

Les références entre crochets sont développées dans la rubrique Pour en savoir plus.

Cet article est réservé aux abonnés.
Il vous reste 93% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

VERSIONS

Il existe d'autres versions de cet article :

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-te5990


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Présentation

5. Évolutions

Plusieurs évolutions importantes sont sur le point de se produire au moment où cet article est écrit. Il est fort probable qu'au moment où vous lirez ces lignes, ces évolutions aient changé grandement le paysage du calcul sur cartes graphiques et le calcul haute performance en général.

5.1 Matériels

HAUT DE PAGE

5.1.1 Larrabee d'Intel

La principale évolution matérielle pour la fin de l'année 2009 est la sortie des cartes graphiques disposant des puces nommée « Larrabee » d'Intel. Ces puces devraient disposer entre 10 et 64 cœurs avec une architecture proche des anciens processeurs Pentium 3 mais équipées, à la manière des instructions SSE, des instructions SIMD à 16 voies. Ces cartes seraient assez puissantes pour bousculer le marché dominé jusqu'à aujourd'hui par NVIDIA et ATI/AMD. De plus, il semble que le projet d'Intel à moyen terme soit d'intégrer les composants de ces GPUs directement dans le CPU. Cela rejoindrait le projet analogue « fusion » d'AMD. Les avantages seraient importants car ces CPU hybrides auraient un meilleur accès à la mémoire centrale que celui qui est disponible avec le bus PCI-e. Une conséquence serait que NVIDIA se dirigerait vers la fabrication de puces de type × 86, voire produirait directement des CPUs pour rester dans le marché.

HAUT DE PAGE

5.1.2 GT300

GT300 est le probable nom de la nouvelle génération de puces de NVIDIA. Elle disposerait de 512 unités de calcul. Contrairement au G200, les unités ne travailleraient plus en mode SIMD mais en mode MIMD (Multiple Instruction Multiple Data ). Grâce à ce mode de fonctionnement, le GPU pourrait traiter plusieurs noyaux en même temps. Le traitement des doubles serait amélioré. Avec l'augmentation de la fréquence prévue avec la gravure en 40 nm, cette puce pourrait développer le double des performances de la G200.

HAUT DE PAGE

5.1.3 RV870...

Cet article est réservé aux abonnés.
Il vous reste 92% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Évolutions
Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - TUCKER (L.W.), ROBERTSON (G.G.) -   Architecture and applications of the connection machine.  -  IEEE Comput., vol. 21, p. 26-38 (1988).

  • (2) - GUIDON (Y.) -   Soufflerie numérique. Simulation de l'écoulement de gaz dans une soufflerie.  -  Pascalissime, no 64, p. 16-42 (1996).

  • (3) - NYLAND (L.), HARRIS (M.), PRINS (J.) -   Fast N-body simulation with CUDA.  -  Addison-Wesley Educational Pub., ISBN 978-0321515261, Chapitre 31, GPU Gems 3 (2007).

  • (4) - GÖDDEKE (D.) et al -   Co-processor acceleration of an unmodified parallel solid mechanics code with FEASTGPU.  -  Inter. Jour. of Computational Sci. and Engineering (2009).

  • (5) - BRANDVIK (T.), PULLAN (G.) -   Acceleration of a 3D Euler Solver using commodity graphics hardware.  -  46th AIAA Aerospace Sciences Meeting and Exhibit (2008).

  • (6) - PREIS (T.), VIRNAU (P.), WOLFGANG (P.), SCHNEIDER (J.J.) -   GPU...

DANS NOS BASES DOCUMENTAIRES

1 Sites Internet

HARRIS Mark General-Purpose Computation on Graphics Hardware http://gpgpu.org/ (page consultée le 20 septembre 2009). Le plus important site sur le sujet avec des actualités, forums et tutoriels.

GAVRICHENKOV Ilya Intel Pentium Extreme Edition 965 CPU Review http://www.xbitlabs.com/articles/cpu/display/pentium-ee-965_8.html (page consultée le 20 septembre 2009). Revue du processeur avec la fréquence la plus élévée en 2006.

NVIDIA Corporation CUDA Zone – The resource for CUDA developers http://www.nvidia.com/object/cuda_home.html (page consultée le 20 septembre 2009). Le site met à disposition une excellente documentation et des outils logiciels pour le développement d'applications utilisant CUDA et les cartes graphiques NVIDIA, ce site maintient une importante liste de références de résultats d'utilisations de cartes graphiques pour le calcul.

Advanced Micro Devices, Inc. AMD Developer Central – ATI Stream Software Development Kit (SDK) http://developer.amd.com/gpu/ATIStreamSDK/Pages/default.aspx (page consultée le 20 septembre 2009). Le site contient les informations et les outils nécessaires pour le développement d'applications utilisant Brook+ et les cartes graphiques ATI/AMD.

Khronos Group http://www.khronos.org/opencl/ (page consultée...

Cet article est réservé aux abonnés.
Il vous reste 94% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(239 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS