OpenCL : le GPU Computing enfin démocratisé ?

Tags : GPGPU; OpenCL;
Publié le 12/12/2008 par
Imprimer
Portabilité : oui… mais…
Une API qui supporte une large gamme de périphériques simplifie de par sa nature la portabilité entre ceux-ci. Néanmoins, développer un code OpenCL compatible avec plusieurs accélérateurs sera complexe. Il faudra écrire un code différent pour chaque matériel supporté, puisque l'implémentation efficace d'un algorithme peut être très différente d'une architecture à l'autre, bien plus qu'en 3D. Ou alors il faudra se contenter d'un code moins optimisé mais basé sur les points communs des différentes architectures, ce qui peut être envisagé dans le cas de GPUs différents mais pas dans le cas d'un GPU et du Cell par exemple.


Dans le domaine professionnel, nous pouvons estimer que c'est la première solution qui primera et qu'en fin de compte un code OpenCL pour cartes Tesla ne sera pas vraiment plus compatible avec les cartes FireStream qu'un code C pour CUDA même si le développeur se sentira moins tributaire d'un fabricant donné. Plus le code sera optimisé moins il sera portable et dans le secteur HPC les algorithmes sont bien entendu optimisés autant que possible.

Dans le domaine grand public il est difficile de savoir ce qui va se passer. A ce niveau il est très décevant qu'OpenCL n'encadre pas les spécifications et ne standardise rien du tout. S'il est bien entendu plus simple d'utiliser OpenCL pour les GeForce et les Radeon que C pour CUDA d'un côté et Brook+ de l'autre, le travail reste fastidieux. OpenCL souffre d'ailleurs ici du même problème qu'OpenGL, mais nettement amplifié, et il faudra probablement attendre DirectX 11 pour que l'utilisation des GPUs en tant que coprocesseurs massivement parallèles puisse être simplifiée du côté grande public. A moins que les développeurs ne décident d'exploiter OpenCL en ayant en tête la base commune définie par DirectX 11, de manière à fixer de « bonnes pratiques » pour la portabilité entre GeForce et Radeon. Nvidia et AMD pourraient alors avoir en tête ces « bonnes pratiques » lors du développement de leurs futurs GPUs. Mais tout cela n'est que suppositions.

Avec OpenCL, le groupe Khronos a une nouvelle fois mis au point une API qui ouvre de nombreuses portes, mais sans rien imposer, ce qui a autant d'avantages que d'inconvénients. S'il est indéniable que l'univers grandissant du calcul massivement parallèle se voit ainsi doté d'un nouvel outil aux usages multiples, ce n'est malheureusement pas le messie tant attendu qui du jour au lendemain va permettre aux développeurs d'utiliser facilement et d'une manière standardisée, tout le potentiel de puissance de calcul des machines modernes.
Sommaire
3 - Nvidia et OpenCL
4 - Portabilité : oui… mais…
Vos réactions

Top articles