Translations:CUDA tutorial/1/fr
Introduction
Dans ce tutoriel, nous présentons le composant de calcul hautement parallèle qu'est le processeur graphique (ou GPU pour graphic processing unit) et nous abordons le modèle CUDA avec quelques-unes de ses librairies numériques utilisées en calcul de haute performance.
Ce tutoriel dé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 de tirer le meilleur profit des exercices. Si CUDA sert aussi aux programmes en Fortran, nous nous limitons ici à CUDA pour C/C++ en utilisant le terme CUDA C. Il s'agit essentiellement de C/C++ permettant d'exécuter des fonctions sur les CPUs et les GPU.
- Comprendre l'architecture d'un GPU
- Comprendre le déroulement d'un programme CUDA
- Comprendre et gérer les différents types de mémoire GPU
- Écrire et compiler du code CUDA simple avec des exemples
Qu'est-ce qu'un GPU?
Un GPU (pour graphic processing unit), est un processeur monopuce capable d'effetuer des calculs mathétiques rapidement; initialement, on l'utilisait surtout pour produire des rendus d'images. Depuis quelques années, la puissance du GPU sert à 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'abbré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