OpenCL accéléré pour Snow Leopard

Florian Innocente |
OpenCL sera l'une des vedettes invisibles de Snow Leopard. Un nouveau moteur caché dans le système d'exploitation pour accélérer l'exécution des applications. Il est destiné à devenir un standard ouvert sur les ordinateurs comme sur les téléphones. Ses créateurs ont annoncé avoir quasiment terminé leur travail. Car Apple a besoin d'OpenCL, et vite.

Ce début semaine fut donc l'occasion de faire un bilan d'étape. Lors d'une réunion en marge de la conférence Super Computing 08 au Texas, Neil Trevett, président du Khronos Group (et par ailleurs responsable chez NVIDIA) flanqué de deux représentants d'AMD et d'Intel a dressé un constat positif (présentation en PDF). Une technologie dont Mac OS X Snow Leopard va faire grand usage.

Un accélérateur clef en main
L'idée d'OpenCL est de proposer une trousse à outils logicielle, sans royalties, détachée de toute tutelle d'un OS, d'un éditeur ou d'un fabricant. Afin que les développeurs puissent créer plus facilement des applications capables de tirer profit de l'intégralité des capacités de calcul contenues dans un ordinateur. Plutôt que de s'arracher les cheveux à faire du point de croix pour accélérer son logiciel, un développeur disposera de fonctions toutes prêtes, tandis que le système prendra aussi en charge automatiquement certaines affectations de ressources.

OpenCLSummarydiag


Il s'agit d'optimiser l'utilisation, simultanée, du processeur principal avec ses multiples coeurs, de celui de sa carte graphique, ou de puces de traitement spécialisées (DSP). Progressivement les cartes graphiques par exemple, au vu de leur puissance, deviennent de parfaits auxiliaires au processeur principal pour le décharger de tâches courantes.

Un moteur pour tous
OpenCL a été initié par Apple avec le concours d'Intel, d'AMD et de NVIDIA. L'été dernier la supervision de son développement a été confiée au consortium Khronos Group (qui pilote déjà d'autres standards, comme OpenGL) avec pour mission de l'ériger en standard. D'autres acteurs soutiennent OpenCL, issus de l'électronique comme du logiciel et de la téléphonie : IBM, Motorola, Samsung, Texas Instruments, Electronic Arts, Nokia, etc.

OpenCLcontributeurs


Trevett a souligné à quel point les travaux sur OpenCL avaient vite progressé. Le record du Khronos Group pour définir un standard avait été de 12 mois (en général cela prend plutôt quelques années), mais dans le cas d'OpenCL la mise au point de ses caractéristiques n'aura pris que 6 mois. La version 1.0 finalisée est attendue pour la fin de l'année.

Le carburant qui a permis d'avancer aussi vite fut le calendrier imposé par Apple pour Mac OS X 10.6 a expliqué le représentant d'Intel, Tim Mattson "Qu'Apple s'engage à intégrer OpenCL dans Snow Leopard si nous arrivions à tenir cet impossible délai a été un gros plus et d'ajouter sur le ton de la plaisanterie du coup on a divorcé d'avec nos familles, on a eu deux conférences téléphoniques par semaine, des réunions et je ne sais même plus combien d'heures j'ai passées là-dessus. Je suis presque raide mort, complètement vanné. Et je faisais partie de ceux, dès le départ lors des toutes premières réunions, qui disaient : C'est impossible. On n'y arrivera pas. Ça ne marchera pas. Eh bien j'avais tort, on l'a fait."

Malheureusement, aucune démonstration n'a été produite qui aurait pu illustrer les possibilités d'OpenCL. Et pour cause a expliqué Tim Mattson "Aujourd'hui on a établi les caractéristiques techniques. Maintenant les avocats de chacune des entreprises participantes vont les passer à loupe et s'assurer qu'il n'y a pas de violation de copyright à un endroit ou à un autre et que tout est d'équerre." Un processus qui peut durer au maximum 30 jours, et pendant lequel le code est tenu à l'ombre.

Le retour du supercalculateur
À défaut de démos, des perspectives ont été tracées pour les premières mises en service de ces librairies. Et l'on se sent revenir aux premiers temps du G4 et de l'Altivec dans les promesses de sursaut des performances "Si Apple s'en tient aux objectifs qu'elle s'est fixés pour l'utilisation d'OpenCL dans Snow Leopard, je pense qu'y aura des opportunités pour les éditeurs de logiciels d'image et de vidéo pour profiter des bonnes choses offertes par les processeurs graphiques a estimé Neil Trevett tout le monde a un supercalculateur enfermé à l'intérieur de son Mac, mais il est difficile d'y accéder. Et OpenCL va libérer le potentiel de ce supercalculateur."

openclLeopard


S'ils ne sont pas entrés dans les détails, les intervenants ont laissé entendre que même une machine dotée d'une simple puce graphique intégrée (comme les premiers MacBook et les Mac mini) pourrait bénéficier d'OpenCL en cas de présence d'un double coeur "Tout l'intérêt d'OpenCL est de reléguer au second plan le matériel, qu'importe de quoi il est constitué, s'il peut être programmé, alors OpenCL permettra aux développeurs d'en tirera avantage."

OpenCL a été conçu pour fonctionner aussi bien sur un supercalculateur (un vrai, un gros) que sur un smartphone. Ses caractéristiques ont été rédigées afin de laisser une grande latitude aux éditeurs "Je n'insisterai jamais assez sur le fait que l'on va pouvoir écrire un programme et, après recompilation, le voir fonctionner autant sur un téléphone portable que sur un MacBook."

L'idée de voir OpenCL opérer sur les téléphones portables n'est peut-être pas si éloignée selon Neil Trevett. Il voit d'abord les ordinateurs personnels s'en servir, mais il imagine que les processeurs pour appareils mobiles vont s'adapter en conséquence et qu'OpenCL arrivera peut-être plus rapidement qu'on ne le pense sur les smartphones.

Sur le même sujet :
Snow Leopard disponible début 2009 ?

Crédit image en page d'accueil : Flickr - tomxcoady

Tags
avatar kubernan | 
@Pyslo : Si tu voulais jouer à ni OUI ni NON, t'a perdu.
avatar Atlante | 
[i]*Le paysan, il y a 200ans*[/i] _"J'aimerais bien voir un meilleur moyen de transport que le cheval!" Kubernan: "Ah bon et pourquoi?" [i]*70 ans plus tard*[/i] L'ouvrier: "J'aimerai voir un moyen de locomotion plus rapide que le bateau à vapeur, pour visiter le monde!" Kubernan: "Ah bon et pourquoi?" [i]*40 ans plus tard*[/i] Le soldat: "J'aimerai voir un véhicule de combat plus rapide que la voiture pour accéder aux territoires ennemi, comme un bateau pour les côtes mais dorénavent pour la terre!" Kubernan: "Ah bon et pourquoi?" [i]*90 ans plus tard*[/i] Atlante: ""J'aimerais voir un Os microsoft valable, qui bouffera snow leopard, et qui sera tellement érgonomique et stable que je switcherai sur PC!" Kubernan: "Ah bon et pourquoi?" [b]Leçon de l'histoire: [/b] Kubernan est immortel.
avatar Gavroche1973 | 
La vache... j'attends avec impatience Handbrake écrit en OpenCL pour que mon mac miniencode en H.264 à la vitesse de la lumière ... :-))))))
avatar ambrine | 
ça plus un quadri-coeur, mazeeeette, vivement janvier :)
avatar treizep | 
@Gavroche1973 Très drole :o)
avatar Gimli fils de Gloin | 
C'est une reunion de clowns ici ? Pour ma part j'ai hate de l'utiliser pour mes applications multithreadées.
avatar dark juju | 
"ça plus un quadri-coeur, mazeeeette, vivement janvier :)" Un double coeur doit déjà donner quelque chose de pas mal !
avatar studdywax | 
dites : ca ne sera pas un nid a faille ce genre de chose "open" ? enfin moi j'y connais rien...
avatar lemail2mi | 
Il n'y a pas spécialement de failles dans du code ouvert. C'est plutôt (le chien de Mickey) le contraire en général. Un code ouvert est accessible à plus de développeurs qui peuvent plus facilement identifier les failles potentielles et proposer des correctifs.
avatar stefhan | 
Merci pour l'intéressant article !
avatar MadMax | 
Moi je n'ai compris. Mais c'est super. Est-ce que Snow Leopard sera blanc?
avatar apreslapluie | 
J'espère que cette technologie ne fondera pas comme snow au soleil !
avatar oldjohn | 
Mais pas microsoft, damned...
avatar Obidjoule | 
@ Gimli Uèp, et en plus ils font du lancer de nain... moi, ch'rais toi... :-)
avatar Hindifarai | 
Le boulot concernant OpenCL doit être monumental. Je me permets juste de poser un bémol sur la fin de l'article relatant un propos de Neil Trevett [quote]"Je n'insisterai jamais assez sur le fait que l'on va pouvoir écrire un programme et, après recompilation, le voir fonctionner autant sur un téléphone portable que sur un MacBook."[/quote] Dire cela à l'heure où les vms java allegées et optimisées sont si porteuses sur le marché est complètement décalé. Considérer que les processeurs des smartphones vont s'adapter à la techno OpenCL alors que java est omniprésents sur les smartphones(ormis iphone) pour des tas d'applis pro et c'est à la vm de s'adapter les propos de Neil Trevett pretent à sourir même si l'on sait que c'est purement commercial et basé sur des hypothèses futures à propos d'une techno future.
avatar joeldu18cher | 
y aura t il encore rosetta dans snow leopard ?
avatar SUiiT_ | 
[b]Snow Leopard[/b], on t'attend avec impatience... [i]Ca va être le top avec mon nouveau MacBook Alu.[/i]
avatar Dr_cube | 
La vraie programmation parallèle n'est vraiment pas simple. Je ne parle pas des applications multi-threadées habituelles, mais du calcul parallèl ou autres choses du genre. Nos Core2Duo sont très mal utilisés de ce point de vue, et des logiciels commerciaux qui font beaucoup de calcul (graphisme, vidéo, 3D...) ne font souvent pas les calculs en parallèl. OpenCL c'est très bien, mais le système Snow Leopard et les applications actuelles d'Apple n'en auront quasiment aucune utilité. De plus, il faudra trouver des programmeurs qui connaissent la programmation parallèle, ce qui à mon avis n'est pas courant. Seules les applications calculatoires qui auront été spécialement écrites de manière parallèle (non séquentielle) pourront vraiment utiliser les bienfaits d'OpenCL.
avatar Hindifarai | 
@ Dr_cube J'ose espérer que OpenCL ne nécessitera pas de connaître les algos de fidge&mattern par exemple pour être utilisé, sinon ça ne sert tout simplement à rien comme techno. Le but, d'après ce que j'ai compris, est de cacher au maximum le parallelisme des calculs inhérents aux applications, via un appel de framework ayant tout une interface bien pensée.
avatar Augustin Caron | 
@ Gavroche Investis dans une [url=http://www.elgato.com/elgato/int/mainmenu/products/Accessories/Turbo264/product1.fr.html]clé Turbo.264[/url] !
avatar Zouba | 
>Considérer que les processeurs des smartphones vont s'adapter à la techno OpenCL alors que java est omniprésents sur les smartphones(ormis iphone) pour des tas d'applis pro et c'est à la vm de s'adapter Ouais enfin c'est pas comme si l'iPhone qui donne le la depuis quelques mois, n'était pas conçu par une entreprise ayant rachetée PASemi en cours d'année hein !
avatar Dr_cube | 
@ Hindifarai : J'espère que t'as raison et que ça marchera vraiment comme ça. En ce qui me concerne je sue avec MPI en ce moment, et j'espère que je n'aurai pas à faire ce genre de choses toute ma vie ^^. Concernant l'article : c'est amusant de voir comment Apple impose ses délais. On connaissait l'application du champ de distorsion de Steve Jobs sur les employés d'Apple, mais ce n'est que récemment qu'on voit qu'il s'applique aussi sur les partenaires d'Apple : Intel est souvent pressé par Apple (notamment pour le processeur du MacBook Air), et maintenant OpenCL qui a été largement boosté par Apple. En tout cas quand on voit les capacités de calculs des cartes graphiques, ça donne vraiment envie. Des dizaines ou des centaines de cores seront bientôt à notre portée pour toute sorte d'applications. Je me demande ce que ça donnera sur les MacPro. Vont-ils être de nouveaux classés parmi les meilleurs calculateurs comme ce fut le cas avec le Power Mac ?
avatar lemail2mi | 
@Dr_cube Le parallélisme recherché n'est pas forcément pas forcément un parallélisme de tâches, mais plutôt exploiter le parallélisme naturel existant dans certains processeurs tels que les gpu ou les co-processeurs vectoriels (sse, altivec...) en proposant une interface unifiée. Le développeur de l'application utilisera l'interface unifiée proposée par openCL sans s'occuper de la ressource disponible sur la machine. A charge du développeur de l'OS, du fabricant de la carte graphique ou de n'importe quel co-processeur de fournir le code qui permettra de fonctionner de façon optimale sur sa machine. La partie compliquée de programmation parallèle est faite une seule fois dans "l'OS" et le programmeur lambda utilise des primitives de calcul fournies sans se soucier de la façon dont ce fonctionne réellement. @Hindifarai Java c'est bien mais ça ne fait pas tout, surtout dans un téléphone portable. N'importe quelle application java fait appel à tout un tas de librairies qui sont en fait programmer en C. Tu veux un exemple, regarde Android, plateforme où la seule interface accessible de programmation est en java, toutes les librairies pour traiter les données multimédia, toutes les bibliothèque de services sont écrites en C (et heureusement). C'est là que la performance est essentielle et qu'il faut coller au mieux au matériel et aux ressources disponibles. OpenCL permet d'ajouter une couche d'abstraction et de mutualiser le travail. On porte OpenCL une fois sur toutes les plateformes et on peut réutiliser tout le code pour le traitement multimédia sur chaque plateforme. La qualité du portage garantie l'utilisation optimale des ressources matérielles et les meilleurs performances pour toute les applications utilisant OpenCL.
avatar oomu | 
idem que lemail2mi en quoi JAVA est il un obstacle à l'utilisation d'opencl ? des millions de lignes de codes utilisés par java sont écrites en C, comme toujours. et rien n'empêchera d'exposer openCL via une api java. combien même, je crois qu'on se fiche globalement de java ici. Il s'agit surtout d'évolutions du langage C. ce qui profite à _tous_
avatar oomu | 
@ studdywax "dites : ca ne sera pas un nid a faille ce genre de chose "open" ? enfin moi j'y connais rien..." effectivement, vous n'y connaissez rien. et je dis cela avec tout la condescendance, arrogance et le ton pincé que vous puissiez imaginer. Depuis des milliers de produits industriels, articles, et usages par l'industrie, vous en êtes encore à réfléchir sur la pertinence du "ouvert" et sa "sécurité" ? - oui, évidemment que ce "opencl" est "ouvert", il s'agit d'un ajout à C, C qui est normalisé depuis des lustres ! OPENGL qui est normalisé, collaboratif et ouvert entre tout un consortium de constructeurs et éditeurs depuis des SIECLES (ok, plus de 10 ans) et le tout dans des implémentations libres et ouvertes de références. enfin bon bref, réveillez vous et sortez dehors un peu. - on parle ici de travaux industriels, PAS de petits logiciels utilisé par 5 profs de maths. - le code OUVERT permet à plus de gens de le tester, juger, critiquer, et réparer. Cela permet à toute entreprise motivée de l'améliorer, et cela permet aux organismes de sécurités nationaux de les surveiller et faire tester . C'est BON et SAIN. et on ne revient pas en arrière, bien au contraire, parce que c'est plus efficace et MOINS cher que des solutions propriétaires en concurrence avec tout le reste. - notons ici que nous parlons d'un consortium d'industriels et non pas simplement d'un projet "ouvert" par une seule société.

Pages

CONNEXION UTILISATEUR