Pour tenter de sauver OpenCL, ses concepteurs reviennent en arrière

Nicolas Furno |

OpenCL est une technologie qui permet d’utiliser une carte graphique pour réaliser des tâches normalement réservées au processeur. Apple a créé à la fin des années 2000 ce qui est devenu un standard de l’industrie, mais après des départs prometteurs, OpenCL a rapidement connu une perte de vitesse. Le désintérêt de Nvidia qui a toujours privilégié CUDA, une solution maison concurrente, y a beaucoup contribué. Et plus récemment, son abandon par Apple au profit de Metal a terminé d’isoler cette technologie.

Khronos, le consortium en charge du développement d’OpenCL, n’a pas dit son dernier mot toutefois. Le groupe vient de présenter OpenCL 3.0, une mise à jour majeure qui est en fait… un retour en arrière. En effet, cette nouvelle version se base sur OpenCL 1.2 sortie en novembre 2011 et elle rend tout ce qui a été effectué depuis sur OpenCL 2.0 complètement optionnel.

Pourquoi ce retour en arrière ? Les ajouts effectués à partir d’OpenCL 2.0 n’ont pas été bien accueillis, à tel point que la majorité des acteurs en sont restés à la branche précédente. Apple, par exemple, n’a jamais dépassé OpenCL 1.2 et macOS n’a pas bénéficié des nouveautés les plus récentes. Sans entrer dans les détails, disons simplement que le consortium a voulu répondre aux besoins de trop d’acteurs différents en intégrant trop de fonctionnalités en un seul bloc. Cette complexité a nui au projet, à tel point que personne n’a adopté OpenCL 2.2, la version la plus récente sortie en 2017.

Pour sauver OpenCL, l’idée est donc de revenir à ce qui marchait, c’est-à-dire la simplicité d’OpenCL 1.2. Pour autant, les ajouts de la branche suivante ne sont pas complètement abandonnés, mais ils deviendront optionnels. Le système sera désormais modulaire, ce qui veut dire qu’un acteur pourra compléter la base très simple d’une ou deux fonctions plus complexes si elles lui sont nécessaires, sans pour autant devoir intégrer la totalité des fonctions.

On imagine mal Apple faire marche arrière et réintégrer OpenCL maintenant qu’elle a l’équivalent avec Metal, même si ce retour quelques années en arrière pourrait l’inciter davantage à le faire. Même si ce n’est pas le cas, le consortium a une autre idée : adapter OpenCL sur Metal. Ce ne serait plus une couche aussi bas niveau qu’avant, mais ce pourrait être une solution pour maintenir la compatibilité avec toutes les plateformes, un point fort de cette technologie.

Le consortium envisage d’adapter OpenCL pour le faire tourner au-dessus de Metal, l’API bas niveau d’Apple.

Hors de l’écosystème Apple, OpenCL devrait d’ailleurs être intéropérable avec Vulkan, l’API 3D du même consortium. Et Microsoft va travailler sur une version adaptée d’OpenCL pour la faire tourner sur DirectX 12, l’API 3D de Windows.

Est-ce que tout cela suffira à replacer OpenCL sur le devant de la scène ? Réponse dans les prochaines années, mais il faudra d’abord finaliser la version 3.0, ce qui devrait se faire dans les mois à venir.

avatar Scooby-Doo | 

Un pas en avant, un pas en arrière, vont finir par nous danser le tango !

😁

avatar Dev | 

Il n’y a que les vielles machine qui l’utilisent après tout 🙃

avatar nicolas | 

Je croyais que OpenCL était progressivement abandonné au profit de Compute Shaders dans Vulkan.

avatar ney | 

@nicolas

Je me demandais aussi, Vulkan était pas censé remplacer OpenGL et OpenCL ?

avatar Scooby-Doo | 

@ney,

+1

Je pensais que Vulkan allait remplacer OpenGL et OpenCL !

Me serais-je gourré...

🙄

CONNEXION UTILISATEUR