Apple met les pieds dans la guerre du GPGPU
par Arnauld de La Grandière le Jeudi 21 Août 2008 à 12:19
Les cartes graphiques qui équipent nos machines sont des monstres de puissance brute : un processeur comme le RV770 d'ATI déploie un téraflops (voir Du cinéma 2.0 dans Mac OS X 10.5.5?) alors qu'un Core 2 Duo moyen ne grimpe qu'au quart de ce chiffre.
Toute cette puissance dédiée au seul rendu de modèles 3D, si beaux soient-ils, c'est un peu du gâchis. D'où l'idée de faire plus ample usage de ces processeurs pour toutes les tâches du quotidien, un peu comme un super co-processeur (d'ailleurs à ce stade on pourrait se demander qui est le co-processeur de qui…).
Une réserve de puissance La technique promet de donner un sacré coup de fouet à nos machines, d'autant qu'elle pourra théoriquement être mise en œuvre sur n'importe quel ordinateur équipé d'une carte graphique.
Ces processeurs sont cependant archi-spécialisés dans des tâches spécifiques, propres au broyage de coordonnées 3D à tirelarigot : calcul trigonométrique, interpolation linéaire, calcul décimal et structure parallèle, voilà les maîtres mots.
Le GPU n'est pas à même de suppléer totalement au CPU, seuls certains calculs s'y prêteront particulièrement, notamment ceux qui se plieront facilement au parallélisme. Par opposition au calcul séquentiel, le calcul parallèle consiste à parceller une tâche pour en exécuter plusieurs composants simultanément. L'avènement des machines multiprocesseurs et multicores d'une part, et l'implémentation des vertex shaders de l'autre, ont d'ailleurs constitué une première étape qui a rapproché la nature de certaines tâches exécutées par les CPU et les GPU.
Pour les calculs qui s'y prêtent en revanche, le gain devrait être substantiel, puisque le GPU est à même de faire un calcul donné jusqu'à 40 fois plus vite que le CPU. De quoi rendre nos machines actuelles méconnaissables !
Une nouvelle jungle Si l'idée d'exploiter ces processeurs graphiques pour des tâches moins spécifiques n'est pas née d'hier, puisqu'on en faisait les premières applications dans le domaine scientifique, ça n'est pourtant que ces derniers mois que les initiatives s'accélèrent. Et les constructeurs de retomber dans leurs vieux travers, avec chacun leur propre langage permettant d'exploiter leurs cartes maison.
La logique économique n'est pas toujours frappée au coin du bon sens : ainsi, le premier constructeur à mettre une telle fonction à disposition des développeurs a-t-il plus de chances de voir l'initiative se transformer en un surcroît de ventes de ses cartes auprès des utilisateurs finaux.
Pour les plus anciens utilisateurs d'ordinateurs, cela rappellera sans doute des souvenirs, comme les différents standards de cartes sonores sur PC avant que SoundBlaster ne s'impose, ou encore la guerre des cartes 3D en l'absence d'API génériques.
On prend les mêmes, et on recommence : premier à ouvrir le feu, NVidia avec Cuda, suivi mollement par ATI avec Stream Computing, et même Intel s'y met dans une certaine mesure avec son processeur Larabee, alors que Microsoft promet de quoi gérer la chose dans DirectX 11, et RapidMind propose de son côté RMDP.
En outre, NVidia a également annoncé l'accélération matérielle de PhysX, le modèle physique d'Ageia, dont elle a fait récemment l'acquisition et qui nécessitait autrefois une carte spécifique. Son accélération matérielle pourra désormais se faire directement à l'aide des GPU de NVidia. Adobe de son côté a fait une impressionnante démonstration d'une version prototype de Photoshop tirant parti de Cuda.
S'il s'agit d'un calcul à court terme qui peut payer, en revanche une fois que tous les constructeurs ont sorti leur SDK, on en arrive à un véritable casse-tête pour les développeurs qui doivent supporter toutes les plate-formes, et donc tous les langages !
Et c'est là que l'on constate les limites structurelles du marché : le bateau n'a pas de capitaine. Les fabricants de matériel fabriquent, les éditeurs de logiciels éditent, mais toute l'industrie ignore royalement les contraintes qu'elle se génère elle-même. Toute ? Non ! Quelques fabricants portent également la casquette d'éditeur, et il est tout dans leur intérêt de faire en sorte de concilier ces différents aspects.
Toute cette puissance dédiée au seul rendu de modèles 3D, si beaux soient-ils, c'est un peu du gâchis. D'où l'idée de faire plus ample usage de ces processeurs pour toutes les tâches du quotidien, un peu comme un super co-processeur (d'ailleurs à ce stade on pourrait se demander qui est le co-processeur de qui…).
Une réserve de puissance La technique promet de donner un sacré coup de fouet à nos machines, d'autant qu'elle pourra théoriquement être mise en œuvre sur n'importe quel ordinateur équipé d'une carte graphique.
Ces processeurs sont cependant archi-spécialisés dans des tâches spécifiques, propres au broyage de coordonnées 3D à tirelarigot : calcul trigonométrique, interpolation linéaire, calcul décimal et structure parallèle, voilà les maîtres mots.
Le GPU n'est pas à même de suppléer totalement au CPU, seuls certains calculs s'y prêteront particulièrement, notamment ceux qui se plieront facilement au parallélisme. Par opposition au calcul séquentiel, le calcul parallèle consiste à parceller une tâche pour en exécuter plusieurs composants simultanément. L'avènement des machines multiprocesseurs et multicores d'une part, et l'implémentation des vertex shaders de l'autre, ont d'ailleurs constitué une première étape qui a rapproché la nature de certaines tâches exécutées par les CPU et les GPU.
Pour les calculs qui s'y prêtent en revanche, le gain devrait être substantiel, puisque le GPU est à même de faire un calcul donné jusqu'à 40 fois plus vite que le CPU. De quoi rendre nos machines actuelles méconnaissables !
Une nouvelle jungle Si l'idée d'exploiter ces processeurs graphiques pour des tâches moins spécifiques n'est pas née d'hier, puisqu'on en faisait les premières applications dans le domaine scientifique, ça n'est pourtant que ces derniers mois que les initiatives s'accélèrent. Et les constructeurs de retomber dans leurs vieux travers, avec chacun leur propre langage permettant d'exploiter leurs cartes maison.
La logique économique n'est pas toujours frappée au coin du bon sens : ainsi, le premier constructeur à mettre une telle fonction à disposition des développeurs a-t-il plus de chances de voir l'initiative se transformer en un surcroît de ventes de ses cartes auprès des utilisateurs finaux.
Pour les plus anciens utilisateurs d'ordinateurs, cela rappellera sans doute des souvenirs, comme les différents standards de cartes sonores sur PC avant que SoundBlaster ne s'impose, ou encore la guerre des cartes 3D en l'absence d'API génériques.
On prend les mêmes, et on recommence : premier à ouvrir le feu, NVidia avec Cuda, suivi mollement par ATI avec Stream Computing, et même Intel s'y met dans une certaine mesure avec son processeur Larabee, alors que Microsoft promet de quoi gérer la chose dans DirectX 11, et RapidMind propose de son côté RMDP.
En outre, NVidia a également annoncé l'accélération matérielle de PhysX, le modèle physique d'Ageia, dont elle a fait récemment l'acquisition et qui nécessitait autrefois une carte spécifique. Son accélération matérielle pourra désormais se faire directement à l'aide des GPU de NVidia. Adobe de son côté a fait une impressionnante démonstration d'une version prototype de Photoshop tirant parti de Cuda.
S'il s'agit d'un calcul à court terme qui peut payer, en revanche une fois que tous les constructeurs ont sorti leur SDK, on en arrive à un véritable casse-tête pour les développeurs qui doivent supporter toutes les plate-formes, et donc tous les langages !
Et c'est là que l'on constate les limites structurelles du marché : le bateau n'a pas de capitaine. Les fabricants de matériel fabriquent, les éditeurs de logiciels éditent, mais toute l'industrie ignore royalement les contraintes qu'elle se génère elle-même. Toute ? Non ! Quelques fabricants portent également la casquette d'éditeur, et il est tout dans leur intérêt de faire en sorte de concilier ces différents aspects.
| |
3
2
1
Vos réactions (34 réactions)
josephsardin
[21/08/2008 12:52]
Bien bien bien tout ça...
Bien bien bien tout ça...
anthony.n
[21/08/2008 12:54]
"Avec de telles cartes en main, Apple a une chance de marquer une sacrée différence avec Windows… sur des machines pourtant identiques d'un point de vue architectural." Cette phrase résume tout : le Mac n'est pas un PC comme les autres : il possède OS X -- et les optimisations et nouvelles technologies de Mac OS X Snow Leopard feront des Macs des machines qui tirent parti de la puissance mise à disposition par le matériel. Enfin, il faut espérer...
"Avec de telles cartes en main, Apple a une chance de marquer une sacrée différence avec Windows… sur des machines pourtant identiques d'un point de vue architectural." Cette phrase résume tout : le Mac n'est pas un PC comme les autres : il possède OS X -- et les optimisations et nouvelles technologies de Mac OS X Snow Leopard feront des Macs des machines qui tirent parti de la puissance mise à disposition par le matériel. Enfin, il faut espérer...
bigmac2
[21/08/2008 12:56]
Exellent article!!
Exellent article!!
Weedou
[21/08/2008 13:24]
Résumé de l'article "de nos jours, il ne fait pas bon être programmeur !!"
Résumé de l'article "de nos jours, il ne fait pas bon être programmeur !!"
Nicolas
[21/08/2008 13:27]
euh...j'ai un iBook G4 1,2 GHz avec une ATI9200 32Mo
ah ben, on dirait que SnowLeopard n'est pas pour moi....snif...obligé d'acheter un MacBookPro...
la vie est dure :/
euh...j'ai un iBook G4 1,2 GHz avec une ATI9200 32Mo
ah ben, on dirait que SnowLeopard n'est pas pour moi....snif...obligé d'acheter un MacBookPro...
la vie est dure :/
deftones
[21/08/2008 13:37]
@ Nicolas
Lol... Cela dépend des programmes que tu utilises ou que tu développes.
Si tu fais à fond de la puissance de calcul, je pense que ton G4 doit être limite depuis quelques temps, non?
Je fais du dév d'applicatifs ne faisant guère de calculs de grande puissance ;) Je pense donc que mon MacBook (pas pro :P) me servira encore longtemps :D Tout comme iMac 20" d'il y a 3 ans :)
Après, tu n'auras pas SnowLeopard .... mais en auras tu besoin ? :?
@ Nicolas
Lol... Cela dépend des programmes que tu utilises ou que tu développes.
Si tu fais à fond de la puissance de calcul, je pense que ton G4 doit être limite depuis quelques temps, non?
Je fais du dév d'applicatifs ne faisant guère de calculs de grande puissance ;) Je pense donc que mon MacBook (pas pro :P) me servira encore longtemps :D Tout comme iMac 20" d'il y a 3 ans :)
Après, tu n'auras pas SnowLeopard .... mais en auras tu besoin ? :?
YAZombie
[21/08/2008 13:52]
En fait, je trouve qu'il manque une pièce maîtresse à votre article cher Arnaud, qui m'empêche de prendre toute la mesure de cette avancée indéniable: je crois comprendre que les cartes graphiques elles-mêmes doivent supporter lesdits langages (Cuda, OpenCL, DirectX 11, etc.) pour que les logiciels puissent tirer partie du GPGPU. Est-ce ainsi, ou OpenCL n'a-t-il besoin que d'être inscrit dans l'OS pour fonctionner sur n'importe quelle carte graphique supportée? Cela me surprendrait au vue du secret qui semble souvent entourer les specs des cartes graphiques (voir les difficultés que rencontrent les développeurs Linux avec certaines d'entre elles, notamment pour permettre à X11 de tirer partie de toutes leurs caractéristiques).
En fait, je trouve qu'il manque une pièce maîtresse à votre article cher Arnaud, qui m'empêche de prendre toute la mesure de cette avancée indéniable: je crois comprendre que les cartes graphiques elles-mêmes doivent supporter lesdits langages (Cuda, OpenCL, DirectX 11, etc.) pour que les logiciels puissent tirer partie du GPGPU. Est-ce ainsi, ou OpenCL n'a-t-il besoin que d'être inscrit dans l'OS pour fonctionner sur n'importe quelle carte graphique supportée? Cela me surprendrait au vue du secret qui semble souvent entourer les specs des cartes graphiques (voir les difficultés que rencontrent les développeurs Linux avec certaines d'entre elles, notamment pour permettre à X11 de tirer partie de toutes leurs caractéristiques).
Halx
[21/08/2008 13:53]
Snow Leopard va être très intéressant. Après l'inflation des OS provoquée par une surenchère de fonctions et d'effets graphiques plus ou moins utiles, on peut s'attendre à une guerre de l'optimisation. Pour l'instant, avantage Apple qui a déjà beaucoup d'avance par rapport à Windows. Les développeurs ne peuvent plus se reposer exclusivement sur l'accroissement de puissance des CPU pour s'affranchir du travail d'optimisation de leurs applications. Apple prend un nouveau virage au bon moment. J'ai hâte de voir le résultat de ce travail d'optimisation que j'attendais depuis des siècles. Cela permettra à OSX de fonctionner très confortablement sur des machines portables aux caractéristiques modestes, c'est le but non avoué, mais cela aura aussi des effets sensibles sur les configurations plus puissantes.
Snow Leopard va être très intéressant. Après l'inflation des OS provoquée par une surenchère de fonctions et d'effets graphiques plus ou moins utiles, on peut s'attendre à une guerre de l'optimisation. Pour l'instant, avantage Apple qui a déjà beaucoup d'avance par rapport à Windows. Les développeurs ne peuvent plus se reposer exclusivement sur l'accroissement de puissance des CPU pour s'affranchir du travail d'optimisation de leurs applications. Apple prend un nouveau virage au bon moment. J'ai hâte de voir le résultat de ce travail d'optimisation que j'attendais depuis des siècles. Cela permettra à OSX de fonctionner très confortablement sur des machines portables aux caractéristiques modestes, c'est le but non avoué, mais cela aura aussi des effets sensibles sur les configurations plus puissantes.
oomu
[21/08/2008 14:11]
yazombie : opencl est une extension au langage C pour permettre de programmer des traitement sur la carte vidéo. au compilateur adéquat de se débrouiller.
yazombie : opencl est une extension au langage C pour permettre de programmer des traitement sur la carte vidéo. au compilateur adéquat de se débrouiller.
Pleinpopossum
[21/08/2008 14:12]
Excellent article ! Il me donne envie de faire un bon dans le futur pour voir comment tout ceci va se passer. J'ai juste une appréhension sur la question "pourquoi programmer plusieurs fois la même chose pour chaque carte en utilisant chaque kit, quand on peut s'adresser à toutes avec une seule et même commande ?"
Il me semble que c'est le cas avec OpenGL. OpenGL est supporté sous OSX, Windows et Linux. Si je ne m'abuse ATI et NVidia supportent les instructions OpenGL. Et malgré cela la majorité des jeux sont des jeux directX.
Il suffirait que Microsoft sorte un outil propriétaire qui amène une facilité ou gain de productivité par rapport à OpenCL et une partie des devs et des décideurs pressés choisiront cette voie. S'ils peuvent gagner presque autant (windows reste archi dominant dans le monde) plus rapidement, quitte à se couper d'une partie de leur clientèle ils le feront...
Pour Snow Leopard ça sent bon. Prendre un chemin différent au lieu de jouer les monsieur plus me semble emprunt de sagesse... en attendant les OS réellement orientés Web.
Excellent article ! Il me donne envie de faire un bon dans le futur pour voir comment tout ceci va se passer. J'ai juste une appréhension sur la question "pourquoi programmer plusieurs fois la même chose pour chaque carte en utilisant chaque kit, quand on peut s'adresser à toutes avec une seule et même commande ?"
Il me semble que c'est le cas avec OpenGL. OpenGL est supporté sous OSX, Windows et Linux. Si je ne m'abuse ATI et NVidia supportent les instructions OpenGL. Et malgré cela la majorité des jeux sont des jeux directX.
Il suffirait que Microsoft sorte un outil propriétaire qui amène une facilité ou gain de productivité par rapport à OpenCL et une partie des devs et des décideurs pressés choisiront cette voie. S'ils peuvent gagner presque autant (windows reste archi dominant dans le monde) plus rapidement, quitte à se couper d'une partie de leur clientèle ils le feront...
Pour Snow Leopard ça sent bon. Prendre un chemin différent au lieu de jouer les monsieur plus me semble emprunt de sagesse... en attendant les OS réellement orientés Web.
pvmstg
[21/08/2008 14:17]
Oui mais est-ce que le standard sera suivi ou pas.... il y a bien des standards pour le web mais, avec le poids de micro... il faut toujours faire des passes passes. Alors avec directx de micro et son poids... pour 80% du marché....
Comme même apple offre des kits pour autre chose que open cl.... voir l'annonce du kit pour cuda que vient de sortir apple.
L'avenir nous le dira....
Oui mais est-ce que le standard sera suivi ou pas.... il y a bien des standards pour le web mais, avec le poids de micro... il faut toujours faire des passes passes. Alors avec directx de micro et son poids... pour 80% du marché....
Comme même apple offre des kits pour autre chose que open cl.... voir l'annonce du kit pour cuda que vient de sortir apple.
L'avenir nous le dira....
Feroce
[21/08/2008 14:26]
"il possède OS X -- et les optimisations et nouvelles technologies de Mac OS X Snow Leopard feront des Macs des machines qui tirent parti de la puissance mise à disposition par le matériel."
Drôle de conception de l'optimisation.
Il y a presque 20 ans, sur ST, Amiga etc... le développeur mettait les bouchées double pour que ses programmes / OS tournent à fond de balle sur du matériel plutôt basique (et quand Steinberg annonçait qu'il fallait passer de 512ko à 1Mo de Ram pour Cubase, en voyant le soft, on savait que c'était justifié).
Aujourd'hui, exploiter à fond des machins monstrueux (comme les cartes graphiques actuelles) est un signe d'optimisation ? Tout ça pour que l'OS ne se traîne pas trop lamentablement...
C'est beau la programmation de haut niveau :-/
"il possède OS X -- et les optimisations et nouvelles technologies de Mac OS X Snow Leopard feront des Macs des machines qui tirent parti de la puissance mise à disposition par le matériel."
Drôle de conception de l'optimisation.
Il y a presque 20 ans, sur ST, Amiga etc... le développeur mettait les bouchées double pour que ses programmes / OS tournent à fond de balle sur du matériel plutôt basique (et quand Steinberg annonçait qu'il fallait passer de 512ko à 1Mo de Ram pour Cubase, en voyant le soft, on savait que c'était justifié).
Aujourd'hui, exploiter à fond des machins monstrueux (comme les cartes graphiques actuelles) est un signe d'optimisation ? Tout ça pour que l'OS ne se traîne pas trop lamentablement...
C'est beau la programmation de haut niveau :-/
melaure
[21/08/2008 14:33]
Et dans ma boite de dev, j'ai toujours les mêmes abrutis dans notre agence du sud qui affirment encore et encore qu'Apple est ce qu'il y a de plus propriétaire ...
C'est pas gagné pour Apple.
Et dans ma boite de dev, j'ai toujours les mêmes abrutis dans notre agence du sud qui affirment encore et encore qu'Apple est ce qu'il y a de plus propriétaire ...
C'est pas gagné pour Apple.
Scypher
[21/08/2008 14:33]
@Halx
" Cela permettra à OSX de fonctionner très confortablement sur des machines portables aux caractéristiques modestes, c'est le but non avoué, mais cela aura aussi des effets sensibles sur les configurations plus puissantes. "
C'est un troll sa ? Où on à pas la même vision de: machine à faible puissance...
Je crois pas qu'un Core 2 Duo 45nm avec 3mb de L2 Cache soit vraiment un processeur à faible puissance. Je considère plutôt sa comme un monstre de calcul. Si je prend exemple sur mon ancien iMac Core 2 Duo, il fonctionnait beaucoup mieux sous XP que sous OS X en terme de performances.
Alors là si on vient parler de calcul assisté par la CG on est plus du tout dans le bas de gamme...
Donc bon, OS X léger on en reparlera hein... Alors que je peine à utiliser 512mb de ma Ram sous Ubuntu Hardy Heron avec les effets 3d activés et une carte graphiques intégré, mon Imac sous OS X prend presque 512mb en idle.
Par comparaison, mes versions optimisées de windows XP en prennent 180mb en idle souvent même....
@Halx
" Cela permettra à OSX de fonctionner très confortablement sur des machines portables aux caractéristiques modestes, c'est le but non avoué, mais cela aura aussi des effets sensibles sur les configurations plus puissantes. "
C'est un troll sa ? Où on à pas la même vision de: machine à faible puissance...
Je crois pas qu'un Core 2 Duo 45nm avec 3mb de L2 Cache soit vraiment un processeur à faible puissance. Je considère plutôt sa comme un monstre de calcul. Si je prend exemple sur mon ancien iMac Core 2 Duo, il fonctionnait beaucoup mieux sous XP que sous OS X en terme de performances.
Alors là si on vient parler de calcul assisté par la CG on est plus du tout dans le bas de gamme...
Donc bon, OS X léger on en reparlera hein... Alors que je peine à utiliser 512mb de ma Ram sous Ubuntu Hardy Heron avec les effets 3d activés et une carte graphiques intégré, mon Imac sous OS X prend presque 512mb en idle.
Par comparaison, mes versions optimisées de windows XP en prennent 180mb en idle souvent même....
Tequilaforce
[21/08/2008 14:33]
Il ya 20 ans, le mec était tout seul sur ça planète. De nos jours avec internet...
Il ya 20 ans, le mec était tout seul sur ça planète. De nos jours avec internet...
3
2
1
Réagir
Cinq consignes avant de réagir :
- Rester dans le cadre de la dépêche. Pour des discussions plus générales, vous pouvez utiliser nos forums.
- Développer son argumentation. Les messages dont le seul but est de mettre de l'huile sur le feu seront modifiés ou effacés sans préavis par la rédaction.
- Respecter les acteurs de l'informatique et les autres lecteurs. Les messages agressifs, vulgaires, haineux, etc. seront modifiés ou effacés sans préavis par la rédaction.
- Pour toute remarque concernant le contenu de l'article, pour nous signaler une erreur, une faute d'orthographe, une omission, merci de nous contacter exclusivement par e-mail.
- Relisez-vous, et pour les utilisateurs de Safari profitez de l'aide du navigateur : activez le menu édition > Orthographe > Vérifier l'orthographe lors de la frappe.





Mai 2012