Un GPU (pour ''graphics processing unit''), est un processeur monopuce capable d'effectuer des calculs mathématiques rapidement pour produire des rendus d'images.
Un GPU (pour ''graphics processing unit''), est un processeur monopuce capable d'effectuer des calculs mathématiques rapidement pour produire des rendus d'images.
Depuis quelques années, la puissance du GPU sert aussi à accélérer l'exécution de calculs intensifs dans plusieurs domaines de la recherche scientifique de pointe.
Depuis quelques années, la puissance du GPU sert aussi à accélérer l'exécution de calculs intensifs dans plusieurs domaines de la recherche scientifique de pointe.
=Qu'est-ce que CUDA?=
CUDA est l'abréviation de ''Compute Unified Device Architecture''. Il s'agit d'un environnement logiciel flexible et d'un modèle de programmation pour le traitement de calculs parallèles intensifs.
=Architecture du GPU=
Un GPU comporte deux types d'éléments principaux :
* la mémoire globale
** est semblable à la mémoire du CPU
** est accessible par un CPU et un GPU
* des multiprocesseurs en continu (SM pour ''streaming multiprocessor'')
** chaque SM est formé de plusieurs processeurs en continu (SP pour ''streaming processor'')
** qui effectuent les calculs
**chaque SM est doté d'une unité de contrôle, de registres, de pipelines d'exécution, etc. qui sui sont propres
=Modèle de programmation=
Voyons d'abord quelques termes importants :
*'''Hôte''' : désigne le CPU et la mémoire principale
*'''Composant''' : désigne le GPU et sa mémoire
Revision as of 19:54, 29 September 2017
Introduction
Dans ce tutoriel, nous présentons le composant de calcul hautement parallèle qu'est le processeur graphique (ou GPU pour graphics processing unit) et nous abordons le modèle CUDA avec quelques-unes de ses librairies numériques utilisées en calcul de haute performance.
Prérequis
Ce tutoriel montre comment utiliser CUDA pour accélérer des programmes en C ou en C++. Une bonne connaissance d'un de ces langages vous permettra d’en tirer le meilleur profit. Si CUDA sert aussi aux programmes en Fortran, nous nous limiterons ici à CUDA pour C/C++ et utiliserons le terme CUDA C. Il s'agit essentiellement de produire des fonctions en C/C++ pouvant être exécutées par les CPUs et les GPUs.
Objectifs d'apprentissage
Comprendre l'architecture d'un GPU;
Comprendre le déroulement d'un programme CUDA;
Comprendre et gérer les différents types de mémoires GPU;
Écrire et compiler un exemple de code CUDA.
Qu'est-ce qu'un GPU?
Un GPU (pour graphics processing unit), est un processeur monopuce capable d'effectuer des calculs mathématiques rapidement pour produire des rendus d'images.
Depuis quelques années, la puissance du GPU sert aussi à accélérer l'exécution de calculs intensifs dans plusieurs domaines de la recherche scientifique de pointe.