OpenCL et Programmation Générale sur GPU
Comment Programmer ?
Architecture de la solution
Le développement avec OpenCL se fait avec plusieurs outils :
|
Comment Programmer sur GPU ?
Pour programmer l'exécution de code sur un GPU avec OpenCL, il faut d'abord paramètrer le GPU.
Ainsi, le code à exécuter sur le GPU est défini par le programmeur en une fonction en C respectant certaines contraintes, et est appelé "kernel" selon la terminologie OpenCL.
Exemple de code (calculer le carré d'un nombre)
Comme exemple, le calcul du carré de chaque nombre de chaque case d'un tableau.
La comparaison est faite entre du code Java et du code OpenCL pour obtenir le même résulat.
Code Java : Dans ce cas, le thread principal appelle la fonction qui, dans une boucle, calcule le carré de chaque case du tableau. |
Code OpenCL : Ici, on déclare un kernel qui, en premier lieu, récupère l'indice du tableau qui lui a été assigné. Ensuite, il se sert de cet indice pour racupérer la valeur dans le tableau et la multiplie par elle-même pour avoir le carré. Pour que le programme OpenCL se termine, on rajoute un condition si l'index est au-delà de la taille du tableau. |