GPGPU
et programmation de GPGPU
General-purpose Processing on Graphics Processing Units
Les GPU permettent plus de calcul que les CPU

2002: Importante avancé dans la flexibilité de programmation des GPU

Domaines interessés
- Traitement de l'image
- Prevision météorologique
- Simulation
- Rendu graphique
- Outils scientifique tel que Matlab
- Et d'autres..
Algorithme de traitement en série
Comment profiter de cette puissance de calcul ?
Algorithme de traitement simultanée

Trés efficace pour le traitement de grands ensembles de données
Solutions
Shader
CUDA et autres
OpenCL
OpenCL
Une API et un langage
Proposé par Khronos Group (Apple, ATI, Intel, Nvidia et AMD entre autres)
Va au dela de GPGPU : permet aussi l'execution sur CPU avec le même code.

Principes
Similaires aux shader, un programme OpenCl est construit à l'execution
Permet l'echange des données avec OpenGL
Principes
L'unité : Le work-item (ou thread en CUDA)

Synchronisation possible dans un work group
Principes

Exemple de programme OpenCl
__kernel void
SimpleKernel( const __global float *input, __global float *output)
{
size_t index = get_global_id(0);
for(int i = 0; i < ITER_NUM; i++)
{
output[index] = sin(fabs(input[index]));
}
}Demonstration
GPGPU
By Will Bobo
GPGPU
- 1,163