CUDA et Programmation Générale sur GPU
Le Futur : OpenCL
CUDA, un framework propriétaire
La nature propriétaire de CUDA est un frein à son développement, car les développeurs qui peuvent être intéressés par la solution peuvent avoir peur de développer du code qui ne sera pas réutilisable, et à la merci du futur que reserve nVIDIA à la norme.
C'est pour cela (et pour unifier le marché avec ATI et Intel), qu'est née la norme OpenCL. Soutenue par le Khronos Group, cette norme a pour but de proposer des extension pour le C permettant d'exécuter du code indépendament sur le CPU ou sur un GPU supportant cette norme.
Les spécifications viennent d'être publiées (novembre 2008), et son support est notamment prévu pour le prochain OS d'Apple, Mac OS X 10.6 Snow Leopard.
... et alors ?
Les similitudes avec CUDA sont omniprésentes :
![]() |
Le Compute Device correspond à une carte graphique, le Compute Unit à un multiprocesseur, et un Processing Element à un processeur. |
![]() |
Les kernels sont exécutés sous forme de work-items (threads) regroupés en work-groups (blocs). Tous les work-groups d'un kernel sont regroupés en NDRange (grille). |