OpenCL: Installation de l'environnement de developpement
OpenCL est une API et un langage de programmation pour tirer partie de la puissance de calcul parallèle des CPU et GPU. OpenCL est standard ouvert proposé par le Kronos Group. Pourquoi choisir OpenCL?
1 - Introduction
OpenCL c'est quoi?
OpenCL est une API et un langage de programmation pour tirer partie de la puissance de calcul parallèle des CPU et GPU. OpenCL est standard ouvert proposé par le Kronos Group.
Pourquoi choisir OpenCL?
- API ouverte
- permet d'utiliser le GPU mais aussi le CPU, cela est intéressant pour les CPU comme le Cell d'IBM qui est présent dans la PS3.
- Multiplateforme (logiciel et matériel)
- Le code parallèle s'écrit en C
Sous Mac OS X:
L'utilisation d'OpenCL sous Mac OS X nécessite:
- Mac OS X Snow Léopard (10.6)
- XCode 3.2
Sous Linux:
L'utilisation d'OpenCL sous Linux nécessite:
- Une carte NVidia Cuda avec les drivers 190.29 (Attention 190.53 ne contient pas opencl) : http://developer.nvidia.com/object/opencl-download.html Note : la dernier version supportant OpenCL est la 195.36.15 ou
- Une carte ATI 4xxx ou 5xxx et le ATI STREAM SDK 2.0 : http://developer.amd.com/gpu/ATIStreamSDK/Pages/default.aspx ou
- Un CPU x86 avec SSE3 (la plus part des CPU Intel et AMD) et le ATI STREAM SDK 2.0 : http://developer.amd.com/gpu/ATIStreamSDK/Pages/default.aspx
2 - Installation de l'environnement OpenCL
Télécharger le SDK Cuda chez NVIDIA: http://www.nvidia.com/object/cuda_get.html
# sh cudasdk_2.3_linux.run
Télécharger le SDK OpenCL chez NVIDIA: http://developer.nvidia.com/object/opencl-download.html
# sh gpucomputingsdk_2.3a_linux.run
Si vous utilisez gcc 4.4, il faut modifier 2 fichier source du sdk: http://www.piotrkrzyzek.com/nvidia-cuda-sdk-gcc-4-4-problems-solved-in-k... Pour avoir des explications sur l'installation manuel des driver propriétaire Nvidia sous Ubuntu: http://doc.ubuntu-fr.org/nvidia.run
3 - Installation de l'environnement de développement C/C++/Python
Pour l'installation de l'environnement de développement, j'ai souhaité séparer les différents environnement C, C++ et Python.
Bibliographie:
- OpenCl Spécification Overview (Kronos Group) : http://www.khronos.org/developers/library/overview/opencl_overview.pdf
- OpenCL 1.0 Reference Pages (Kronos Group) : http://www.khronos.org/opencl/sdk/1.0/docs/man/xhtml/