OpenCL se montre peu à peu

Florian Innocente |
NVIDIA a livré cette semaine un kit de développement et des pilotes pour OpenCL, cette collection d'interfaces de programmation qui figurera dans le prochain système d'Apple (voir l'article OpenCL accéléré pour Snow Leopard).

OpenCL permettra aux développeurs de logiciels, pas exclusivement issus du domaine graphique, d'accélérer l'exécution de leurs applications en utilisant les capacités de calculs de la carte graphique. Et plus largement, les unités de traitement présentes dans un ordinateur, et à terme dans les mobiles.

NVIDIA et Apple comptent parmi les principaux architectes d'OpenCL, leurs ingénieurs ayant été présents en nombre dans la définition de ces API. AMD, Intel et ARM y ont également largement contribué afin d'en faire une solution ouverte, multi-plateforme et débarrassées de royalties.

Côté Mac, Apple n'a guère produit d'exemples - du moins hors du cercle des développeurs - sur les avantages amenés par OpenCL. La prochaine conférence développeur le 8 juin amènera peut-être du frais sur ce point. On trouve toutefois ça et là des exemples, non spécifiques au Mac. Par exemple sur YouTube la première démo réalisée par NVIDIA avec une simulation de mouvements de particules. Et chez Havok avec la démonstration très réaliste de mouvements de tissus et de matières dont le rendu a été réalisé via OpenCL.

havockopencl

Tags
avatar Yohmi | 
Je la trouve bizarre comme démonstration... le but d'Open CL est d'utiliser la carte graphique pour faire autre chose que de la 3D car le reste du temps elle est inutilisée, et là, la démonstration, c'est en faisant de la 3D. Wah, ma carte 3D sait faire de la 3D moche si j'utilise sa toute nouvelle fonction, trop d'la balle :P
avatar raoultcool | 
Impressionnant les démos !! Ca met l'eau à la bouche ! Kiss. Tony.
avatar Florent Morin | 
@Yohmi L'intérêt de ces démos est que ces calculs sont habituellement réalisés par le CPU, avec donc de moindres performances. Cela démontre que l'on peut vraiment pousser la carte dans ses derniers retranchements... ;-)
avatar oomu | 
les cartes vidéo ne font pas tant que ça de la "3d" (calcul de projections de rayons : raytracings) . Il s'agit bien là de déporter des calculs traditionnellement sur le cpu vers le "gpu" (processeur graphique).
avatar youpla77 | 
@FloMo : +1 En fait à côté des vidéos il aurait fallu montrer l'usage du CPU et voir que celui-ci ne bouge quasiment pas...
avatar YARK | 
Quelqu'un peut m'expliquer vite fait les différences entre OpenGL, OpenCl et DirectX ? Merci.
avatar lemail2mi | 
@YARK je tente: OpenGL: "Open Graphic library" Librairie de fonctions pour faire du graphisme (2D et 3D), avec une interface standard quelque soit la carte graphique ou le processeur utilisé. Elle est ouverte dans le sens que n'importe qui connait les spécifications. Elle est gratuite pour les utilisateurs, les fabricants des cartes graphiques payent leur cotisation à un consortium pour pouvoir l'utiliser. Elle existe en plusieurs versions (v1, v2, v3 et ES pour systemes embarqués) et fonctionne sur Linux, OsX et Wndows et SGI et PS3 et Wii et .... DirectX: La même chose mais made in microsoft (directx fait d'autre choses aussi) elle n'est disponible que dans les produits microsoft (windows, Xbox...) Elle n'est pas publique et est protégée. Les fabricants de cartes graphiques payent microsoft pour avoir le droit de s'en servir. OpenCL: "Open Computational library" librarie de fonction pour le calcul intensif (en exploitant entre autre le parallélisme) Elle fournit une interface standard pour pouvoir exploiter indifféremment les processeurs, cartes graphiques, unités vectorielles (mmx, sse, altivec...) ou tout autre bidule permettant de faire ce genre de calcul. Le but de toute ces librairies (comme toutes les librairies d'ailleurs) est de rajouter une couche "d'abstraction" pour facilité la programmation. Le programmeur appelle une fonction de la librairie pour faire une opération particulière, la librairie (par l'intermédiaire des drivers) la transforme en ce qu'il faut pour que ca marche sur la ressource (processeur, carte graphique ou autre). Les drivers sont écrits par les fabricants de matériel qui sont les personnes qui le maitrisent le mieux. On se partage aisin le travail et on gagne en efficacité et en rendement.
avatar nicolas | 
j'aime bien la démo des particules de nVidia qui est assez sympa! @yohmi aujourd'hui l'essentiel des calculs 3D ne concernant que les volumes bruts (accélération, choc, poupée de chiffon, fluides, particules etc...) est réalisé par le processeur principal,d'où l'utilité de leurs unités vectorielles, la carte graphique ne fait "qu'habiller" tout ça (textures + différents effets, etc...)
avatar BioSS | 
OpenCL ne sera pas tellement utile pour les jeux. A l'heure actuelle, aucun jeu n'arrive à mettre à genoux un Core 2 Quad, voir même un Core 2 Duo. Par contre même les cartes graphiques les plus puissantes ne sont pas encore capable de faire tourner crysis en 1920, AAx4 et Aniso X16.
avatar oomu | 
"Si le CPU a autant d'importance comment expliquer qu'un jeu rame autant ou ne tourne même pas sur une config qui aurait un très gros CPU mais un GPU plus faible ? " parce que votre carte graphique est aussi un goulot d'étranglement et les jeux vidéos sont aussi conçus en tenant compte de cela. Ils mettent donc l'accent sur les textures, les polygones, chose que votre carte graphique fait TRES rapidement. Mais le processeur sert (pour de plus en plus de choses : calculs physiques, ia, son, etc), et si on donne plus d'outils aux développeurs pour diversifier les calculs fait par les meilleurs composants des machines, on pourra faire des choses impossibles actuellement.
avatar Almux | 
Avec mon Mac Pro Rev1, j'attends la sortie de Snow pour connaître quelle sera la meilleure (ou moins pire) carte graphique pour utiliser tout ça... @oomu: ...Je vois encore les démos de mercure liquide en blob sur une station SGI (il y a de cela +/- 20 ans)...! ;)
avatar iLazoW | 
@lemail2mi : merci ça éclaircit pour moi une grosse zone d'ombre informatique ;) on a le temps de voir ce que ça donnera définitivement, après il faut espérer que les développeurs exploiteront au maximum OpenCL.
avatar Yohmi | 
Ce n'est pourtant pas ce que l'on lit du tout lorsque l'on recherche la définition d'OpenCL sur le site d'Apple. Inclus dans Snow Leopard, OpenCL est censé soulager ou soutenir le CPU pour le "general purpose", en faisant participer le GPU à ces tâches variées et non plus uniquement les applications dédiées au rendu graphique temps réel comme c'était le cas jusqu'à présent. Le concept ne semble donc pas de demander aux cartes graphiques de travailler plus intelligemment, mais d'être sollicitées dans des applications où elles ne le sont à l'origine pas du tout. D'où ma perplexité face à la pertinence de cette démonstration, et je continue à l'être, car juger d'un gain de performance dans des applications de tous les jours (bureautique etc.) en faisant afficher des morceaux de tissus en temps réel, je trouve cela bizarre...
avatar lemail2mi | 
@Yohmi T'inquiète pas on trouvera comment utiliser cette puissance de calcul pour te faire des trucs tellement bien que tu demandera après comment tu pouvait vivre sans avant!!!
avatar Hindifarai | 
J'ai hâte de tester openCL en lancer de rayons et surtout en calcul de radiosité. L'accent semble porté sur les z-buffers qui sont monnaie courante, j'espère que ce n'est que la ligne de communication(qui est normale) plutôt qu'une optimisation pour ce type de rendu au détriment des rendus 3D plus performants.

CONNEXION UTILISATEUR