Cuda débarque sur Mac OS X

Christophe Laporte |
Hakime nous signale l’arrivée de Cuda en bêta sur Mac OS X. Cette solution de développement comprenant notamment un compilateur C pour GPU, un débogueur/profiler, un pilote dédié et des bibliothèques standards, permet d’utiliser le processeur graphique comme coprocesseur mathématique. Fonctionnant sous Mac OS X 10.5.2, Cuda permet d’exploiter les GeForce de série 8 ainsi que les cartes Quadro.

La sortie de Cuda valide la rumeur voulant que Nvidia travaille en étroite collaboration avec Apple à la conception d'un GPGPU sur Mac. Nvidia en commercialise déjà sur PC sous la marque Tesla. Ces derniers, qui peuvent aussi bien prendre la forme d’une carte PCI-Express que d’une station externe, embarquent des processeurs graphiques dont l’unique fonction est de servir de super coprocesseur. Tesla permet de réduire jusqu'à 100 fois le temps de traitement d'une base de données sismique, de 240 fois celui de la dynamique moléculaire ou encore de 100 fois celui de la simulation neuronale.

avatar biniou | 

Voilà une bien bonne nouvelle :-)

avatar mattschudi | 

Très bonne, surtout quand on connaît l'attrait du grand public pour la dynamique moléculaire et les simulations neuronales !

avatar magicstick | 

A mon avis, c'est pour livrer un iSteve virtuel avec chaque mac, pour verifier qu'on les utilise bien comme ils l'ont decide a Cupertino

avatar jibbe | 

"Tesla permet de réduire jusqu'à 100 fois le temps de traitement d'une base de données sismique, de 240 fois celui de la dynamique moléculaire ou encore de 100 fois celui de la simulation neuronale."

Ah d'accord, il fallait le dire plus tôt, je ne comprenais pas très bien le début de l'article !

avatar pegetnico | 

Et dire que pour moi tesla c'était la méchante araignée dans Maya l'abeille, si je m'étais douté une seule seconde qu'elle pouvait "réduire jusqu'à 100 fois le temps de traitement d'une base de données sismique, de 240 fois celui de la dynamique moléculaire ou encore de 100 fois celui de la simulation neuronale", je l'aurais appréciée différemment.

avatar Mukei | 

! ici !
un interesse mdr
J'espere que je serai pas le seul haha ^_^

avatar Almux | 

Et tombent les derniers arguments qui peuvent encore justifier l'achat de stations PC pour les studios 3D et FX... Autodesk (entre autre) ferait bien d'enfin se réveiller!

avatar biniou | 

Avec les General-Purpose computation on GPUs (GPGPU), il est possible d'utiliser les cartes graphiques pour faire autre chose que du calcul/rendu graphique. Cela amène beaucoup de possibilités d'applications. C'est un domaine de recherche de l'industrie et du monde académique. C'est une très bonne chose pour Apple. http://www.gpgpu.org/

avatar nlex | 

Cuba débarque sur Mac ?? Tous aux abris !!

avatar KeepAlive | 

Les réactions à cette annonce sont tout de même d'un niveau pitoyable :-[

avatar pegetnico | 

Compte tenu du niveau de l'annonce les réactions ne peuvent être que pitoyables.

Maintenant si un développeur éclairé peut nous expliquer succinctement l'intérêt d'une telle prouesse, c'est avec grand plaisir

avatar NicolBolas | 

pegetnico> J'ai pas la prétention d'etre un expert dans le domaine, mais j'ai pas mal étudié les interêts concrets du GPGPU.

En gros, un CPU est conçu de façon a executer les unes après les autres des instructions très diverses. Grace à l'hyperthreading ou au multicore (SMT ou SMP), on peut effectuer plusieurs traitements simultanements sur des données différentes. Ces traitements peuvent rester tout aussi divers et variés que ce dont est capable un CPU moderne.

Les GPU sont conçus pour effectuer très rapidement un nombre d'opération limité, de façon parallelisée (memes traitements sur un lot de donnée). De cette façon, on a jusqu'à 128 unités de traitements en parralèle dans un GPU. La ou les cartes 3D utilisent les GPU pour traiter des pixels à afficher, on pourrait leur faire traiter autre chose, comme par exemple des fichiers photoshop sur les quels appliquer un filtre très lourd. Grace aux ressources de calcul très nombreuses (quoique spécialisées et pas nécessairement aussi précises qu'un CPU) et à la phénoménale bande passante mémoire des GPU haut de gamme, l'application d'un filtre classique comme le flou radial peut prendre 50 à 100 fois moins de temps sur un GPU que sur un CPU.

Les applications les plus évidentes sont bienentenduliées à la recherche, et c'est là que les benchmarks semblent les plus prometeurs. Mais dans une activité de traitement d'imagerie numérique, comme ce qu'on peut faire avec toshop, aperture ou d'autres, ça peut avoir son utilité, et apporter des ressources jusque là innexploitées.

L'inconvénient majeur est que la programmation en GPGPU n'est pas dans les habitudes de la plupart des programmeurs. Très peu ont été formés à l'utilisation de processeurs vectoriels, et le problème de sous-exploitation de ressources qu'on trouve jusque sur la PS3 en est un exemple. De plus tous les algos ne se prètent pas aussi bien à une implémentation sur processeur vectoriel.

avatar NicolBolas | 

Les tentatives de portages d'algorithmes de compression video complexes, par exemple, ne donnent pas de très bons résultats. Est ce du fait des programmeurs ou de la nature de l'algorithme à implémenter, je ne saurais pas le dire. Toujours est il que si on arrive a multiplier par 10 la vitesse de décodage et encodage h.264 et VC1 grace à l'ajout de d'une carte graphique dans un mac pro, ça va plaire aux professionels du montage video. Si on peut rendre l'application de filtres photoshops quasi instantanés, ça va accelerer le travail de tous les pros de l'image. Et si on peut se servir du GPU comme d'un DSP pour faire fonctionner les Audio Units de Logic Pro, ça permettra de bosser en 128 pistes toutes bardées d'effets, en live, et avec moins de 5ms de latence...

Un autre inconvenient est que les GPU AMD et nVidia ne sont pas conçus de la même façon et que le code GPGPU ne sera pas le même pour l'une ou l'autre de ces architectures. De plus les évolutions des GPU se font par palliers plus importants que celle des CPU : un G28 (GeForce 4) ne fonctionne pas DU TOUT de la meme façon qu'un G92, les instructions ne sont pas toutes les mêmes, le nombre d'unités, leur précision et leur utilisation a changé... Bref, même si un compilateur devrait pouvoir gerer ça, le terrain est plus glissant que la programmation sur CPU...

En tout cas c'est un sujet très vaste et on pourrait en parler pendant des heures. Il y a de nombreux articles parrus sur les travaux liés au GPGPU ces derniers mois, presques toutes les universités US ont au moins une équipe qui bosse sur des projets plus ou moins délirants à base de cartes graphiques. Ca va de la reconnaissance de forme à la compression video, en passant par le brute-force sur des données chiffrées...

Have fun !

avatar Le Suisse | 

G pu ou G pas pu?

OK> je vais voir dehors

avatar KeepAlive | 

Merci NicolBolas pour ces éclaircissements, au moins un post qui m'apprend quelque chose :-)

avatar pegetnico | 

ok

CONNEXION UTILISATEUR