Nvidia ferait tout pour se débarrasser d'OpenCL

Christophe Laporte |
Plusieurs développeurs accusent Nvidia de tout faire pour décourager les développeurs à utiliser OpenCL. Lancée par Apple en 2009 avec Snow Leopard, cette technologie permet de confier des tâches de calcul au GPU. Elle a rapidement connu un certain succès auprès des personnes qui font du calcul scientifique et du traitement d'images.

Aujourd'hui, OpenCL est utilisé dans de nombreux programmes : Final Cut Pro X, Aperture, DxO, Photoshop pour n'en citer que quelques-uns. Son développement tout comme OpenGL est chapeauté par le Khronos Group.

La montée en puissance de cette technologie ne fait pas que des heureux. En effet, elle menace une technologie phare de Nvidia, Cuda, qui est plus ou moins sur le même créneau.

Pourtant, tout avait bien commencé au début : la société se félicitait d'être la première à avoir sorti des pilotes compatibles, puis des SDK et des tutoriels pour permettre aux développeurs de s'y mettre. La suite est moins rose. Nvidia a trainé des pieds pour livrer des pilotes compatibles OpenCL 1.1. Ces derniers sont arrivés un an après ceux d'AMD.

Pire, Nvidia a été pris en flagrant délit de retirer de la documentation et des tutoriaux dédiés à OpenCL dans ses kits de développement ainsi que sur son site. Et en coulisse, il se murmure tout simplement que Nvidia ferait pression auprès de certains éditeurs pour qu'ils arrêtent leurs développements OpenCL.

Face à cela, certains ont décidé de ne pas rester les bras croisés. Vincent Hindriksen a lancé une pétition afin d'obtenir le retour des SDKs et tutoriels Nvidia.

L'enjeu est de taille : si Nvidia parvient à imposer CUDA face à OpenCL, elle restreint le choix du GPU à ses solutions. L'avantage d'OpenCL est d'être géré aussi bien par Intel, AMD que Nvidia. Toutefois, les développeurs estiment qu'avec un support irréprochable d'OpenCL, Nvidia rendrait ses solutions encore plus séduisantes !
Tags
avatar zzBoibes | 

Toujours le même crédo : ne pas utiliser les mêmes solutions que les concurrents dans le seul but d'être le grand gagnant en imposant SA solution. Nvidia est comme tous les autres. Ne voient-ils pas que ça les dessert plutôt qu'autre chose ? En tout les cas, mauvaise pub.

avatar redchou | 

Je n'aime plus Nvidia depuis un moment avec tous leurs mauvais coups "de pub"...

avatar MiGaNuTs | 

Pendant ce temps intel joue le jeu d'openCL, et meme si leurs produits sont un peu en retrait niveau perfs dans ce domaine (pas sur que ca va encore durer longtemps, intel a les moyens en r&d et en production de se refaire la dessus), au moins intel peu se passer de nvidia pour avoir des systemes qui fonctionnent.
L'inverse n'est pas tellement vrai.

Nvidia prends un gros risque a ce petit jeu, pas sur qu'au final ils s'en sortent bien.

avatar Yo Eight | 

Sans doute mais en utilisant CUDA on profite également de certaines optimisations impossibles en passant par OpenCL qui est plus général.

avatar thefolken | 

@zzBoibes :
C'est vrai qu'Apple ne le fait pas du tout.

avatar lmouillart | 

NVIDIA à créee à l'aide d'universitaire le GPGPU, puis l'a industrialisé grace à CUDA. Quelques années après Apple/AMD/Intel puis Microsoft (DirectCompute) et Google (Renderscrip) ont sauté le pas.

Il faut voir que Intel et AMD construisent du CPU x86 (les CPU X86 sont environ 20 à plus de 40 fois plus cher que de l'ARM), c'est un business très rentable.

Intel à refuser à NVIDIA les licences sur tout une partie de ses technologies, car NVIDIA à l'époque est arrivé avec des solutions tout en un très performante et nuisible à Intel.

Intel à repris les solution tout en un de NVIDIA pour proposer des solutions intégrées et peu cher, AMD à fait pareil en intégrant ATI. NVIDIA s'est donc fait sortir du marché des solutions d'entrée de gamme.

Intel est leader sur le marché des solutions d'entrée de gamme, graphiques pour desktop. Les solutions Intel à chaque génération grapille du terrain sur les terres de NVIDIA.

Recement Intel à sorti des solutions Xeon bridé pour le calcul : Phi, allant encore plus grapiller sur les terres de NVIDIA.

Voyant ses PDM menacés NVIDIA verrouille le marché, c'est assez typique de l'ensemble de l'industrie.

avatar Artanis | 

@Yo Eight :
lesquelles?

OpenCL est incontestablement plus pénible pour les débutants ou les petits programmes, avec toute la machinerie à mettre en place à la main.
Mais une bonne bibliothèque peut changer ça, il faut juste que quelqu'un s'y mette.
En principe CLU devrait jouer ce rôle.

Cela dit je n'ai pas entendu parler de désavantage d'OpenCL en terme de performances.
Au contraire, les performances d'un programme CUDA sur un GPU ATI tendent vers zéro...

avatar JLG47 | 

Face à l'ouverture du marché, NVIDIA risque de s'isoler, et donc de perdre.

avatar ilyon | 

Hé hé, Yo Eight, retourne vite sur P4G ...
Je ne suis pas d'accord concernant ton approche de CUDA vs OCL. J'ai abandonné CUDA il y a un an pour OpenCL, et ça m'a bien piqué pour une unique raison au départ: l'absence de la solution clé en mains et les outils excellents d'NVIDIA.
Mais aujourd'hui, je ne regrette pas, le SDK d'AMD permet même de compiler pour les IGP intel ... et bien sur Nsight Visual Studio permet aussi de faire de l'OpenCL.
N'oublions pas la machine à lessiver Microsoft qui arrive avec son C++ AMP, qui est extrêmement simpliste car entièrement transparent pour l'utilisateur sous VS2012. A mon avis NVIDIA fait le mauvais choix à moyen terme.

@lmouillard: je crois - je ne suis pas sur - que les premiers à avoir tenté le GPGPU ont été ATi avec Close To Metal, avec la grande époque du VLIW. Depuis GCN, AMD a rejoint NVIDIA sur l'architecture GPU (et NVIDIA aussi un peu, bref, chacun a pris les bonnes idées de l'autre) et ces archis GPU, avec un compilateur solide, devraient pouvoir faire quelque chose de bien à moyen terme.

avatar BKN1 | 

@iLyon
Bof, ton histoire de C++ AMP…si tu crois que c'est si compliqué la gestion d'OpenCL sous xcode…
Petit cours de rattrapage :-D :
http://developer.apple.com/library/mac/#documentation/Performance/Conceptual/OpenCL_MacProgGuide/XCodeHelloWorld/XCodeHelloWorld.html#//apple_ref/doc/uid/TP40008312-CH10-SW2

avatar ilyon | 

Disons que C++ AMP va être une bonne machine de guerre pour Microsoft dans la mesure où c'est du C++ que le compilateur se chargera de réadresser. Et dans mon entourage de C++ addicts, ça parait tout de suite plus simple qu'apprendre OCL.
C'est là qu'était mon point de vue sur AMP, pas sur une éventuelle guerre AMP/OCL.

avatar dandu | 

Petite remarque, Intel et OpenCL, c'est pas trop ça quand même.

L'Intel HD 4000 est pas OpenCL sous Mac OS X et sous Windows, c'est buggé jusqu'à la moëlle. Techniquement, c'est OpenCL dans la doc Intel, dans la pratique pas trop

avatar ilyon | 

J'ai du "fonctionnel" sous Windows et avec AMD SDK. Après, je doute qu'intel pousse à l'adoption d'OpenCL ...

avatar en ballade | 

Langages entre experts ça rafraîchit par rapport aux fana..

avatar EBLIS | 

@En Ballade
C'est exactement ce que je me disais, pas de posts de fanas, très peu de posts en tout, j'y comprends rien mais ça a l'air d'être intéressant :-)

avatar Kenikine | 

@EBLIS :
+1
Plus on lit moins on comprends..... Mais j'ai l'impression que Nvidia est plus performant qu'Intel, que Nvidia ne souhaite plus developper OpenCl que les autres utilise, que ça peut se retourner contre eux et que les autres peuvent refaire leur retard et que j'aurai pas dû prendre une puce intelHD sur mon mbp13' ;D

avatar NicolasO | 

Le probleme de NVidia c'est qu'ils sont tres en avance sur le GPGPU et que la norme OpenCL ne leur permet pas de tirer parti de leur materiel.
(Les autres membres de Khronos sont pas chauds pour laisser NVidia ajouter des choses qu'ils font mieux qu'eux.)
Cést pour cela que NVidia veut pousser Cuda. (Qui est tres largement utilise dans le calcul haute performance sur cluster de GPUs.)

avatar Jitech | 

C'est pour ça que je n'aime pas nvidia. Ils avaient déjà fait la même chose en faisant pression sur les développeurs de jeux afin qu'ils n'utilisent pas directX 10 que seul les cartes AMD géraient.

avatar rikki finefleur | 

Je trouve cela dommage cette guerre..
cela va m'obliger a prendre du nvidia a cause du cuda..
La encore un monopole tente de "désertifier" un marché..

bravo a intel d'avoir exclu nvidia de l'atom, depuis ce jour l'atom a perdu une grande part de son interet et aujourd’hui en passe d’être rejoint par arm.. Bravo encore intel!! Encore un stupide monopole qu'une entreprise a essayé de se créer ..et ce n'est pas la seule, j'en connais d''autres.

avatar albinoz | 

Heuuu ??/!, c'est maintenant que vous le remarquez, sérieux ?
ca vous parait pas un peu évident comme annonce ?
Enfin, moi, c'est mon ressenti…

avatar Yo Eight | 

Sans rentrer dans les détails: CUDA est fait par nVidia pour tourner sur du nVidia. Tandis qu'openCL est une spécification à implémenter sur les architectures cibles comme OpenGL. Le but est de rendre le code source portable indépendamment de l'OS mais surtout du GPU cible. Plus il y a d'abstraction par rapport au support, plus les perfs diminues. Je veux bien continuer mais pas dans une zone de commentaires :)

avatar Armas | 

Ca me decoit beaucoup d'un acteur phare du marché qui vend au deumeurant de tres bon produits bien mieux optimisés que la concurrence ...

avatar ashurao | 

Nvidia cherche en effet à imposer CUDA, mais pas à imposer ou restreindre le choix du GPU

Petite piqure de rappel publier ici même sur macgé en 2011.

https://www.macg.co/news/voir/227012/nvidia-ouvre-le-code-de-cuda

avatar codeX | 

"Toujours le même crédo : ne pas utiliser les mêmes solutions que les concurrents dans le seul but d'être le grand gagnant en imposant SA solution"

Ça, c'est ballot. Une entreprise commerciale qui veut imposer SA solution ..... mais où va t'on ?

CONNEXION UTILISATEUR