EA2014 GPGPU

From air
Jump to navigation Jump to search
Logo d'OpenCL

Présentation

  • Enseignants : Georges-Pierre Bonneau, Didier Donsez (EA2014)
  • Sujet : GPGPU
  • Date : 17 octobre 2014
  • Auteur : William Bobo <william.bobo@e.ujf-grenoble.fr>
  • Lien vers les slides de la présentation : [Transparents]

Résumé

GPGPU ou General-purpose Processing on Graphics Processing Units. C'est une méthode permettant l’exécution de calculs hautes performances sur des GPU. Ces calculs peuvent ne pas être des calculs graphique pour lesquels ont été conçu les GPU à l'origine. Nous prenons OpenCL comme exemple pour l’exécution de calcul sur le GPU.

Mots Clés

GPU, calculs hautes performances, OpenCL

Abstract

GPGPU or General-purpose Processing on Graphics Processing Units. It's a methodology for high-performance computing that uses graphics processing. Accelerated algorithms can be others than graphics algorithms that have enabled the development of GPU. We will use OpenCL to run algorithms on a GPU.

Key Words

GPU, HPC, OpenCL

Synthèse

Introduction

Puissances de calcul brutes comparées entre GPU NVidia et CPU Intel de 2003 à 2008.

Les GPU ont été à l'origine concu pour les calcul graphique permettant l'affichage sur un écran. Leurs architecture est différente des CPU, les GPU contiennent beaucoup plus de cœurs permettant la parallélisation d'une même tache. Les écrans se modernisant, les besoins en calcul ont aussi augmenté et avec leurs nombre coeur, les GPU ont gagné en puissant brut comparé aux CPU. En 2002, une importante avancée dans la flexibilité de la programmation des GPU facilite les calculs autres que graphiques sur ces circuits. C'est la naissance de la méthode GPGPU.

Representation schematique des coeurs des CPU et GPU

Motivations

De nombreux domaines nécessitent de calcul à haute performance. Le fait d'utiliser GPGPU pour une application est appelé acceleration GPU. Les principaux domaines sont :

  • Le traitement de l'image
  • Les simulations (Météorologique, simulation neuronal, simulation de fluide etc )
  • Les outils scientifique tel que Matlab
  • Tout ce qui calcul sur de grand ensemble de données (Moteur physique etc..)

Les calculs hautes performances peuvent aussi être fait sur des CPU à l'aide de cluster mais le coût est incomparable. Le rapport prix/puissance baisse régulièrement grâce aux jeux vidéos qui démocratise l'utilisation de GPU.

Pre-conditions

Les algorithmes exécuté sur les GPU ne sont pas les même que ceux sur les CPU. Les algorithmes doivent être re-écris pour une exécution parallèle.

Exécution en série et exécution parallèle

Ce type d’exécution rend très efficace le traitement de grands ensembles de données dans le cas où le traitement est identique pour chacun de ces éléments.

Solutions

Il y a trois grand type de solution. La plus ancienne est celle des shaders qui semblera familière aux utilisateurs d'OpenGL. La second méthode est conçu par les constructeurs de GPU. Nvidia a fait CUDA et AMD FireStream par exemple. La dernière méthode et celle qui est présenté est OpenCL.

OpenCL

Notes et références

-