retour à l'accueil dernière actualité articles interviews qcm dictionnaires bibliothèque forums inscription membre profile recherche sauvegardes contacts aides
entete 0titre de la page
menu du haut




Les calculs de physique dans les jeux : le temps du choix est arrivé
 Auteur : JF Maquiné Dernière révision : 09 Novembre 2005
Faire un commentaire :   0 message(s)








Introduction
   

L'une des lignes directrices que suit la majorité des concepteurs de jeux et plus génériquement d'animation 3D est l'augmentation du niveau de réalisme. Par réalisme, il ne faut pas entendre seulement et spécifiquement une copie conforme de notre monde au pixel près, mais du fonctionnement de notre monde. Ainsi même dans un jeu comme Serious Sam 2, les concepteurs tentent d'augmenter le réalisme non pas par des effets graphiques spéficiques mais par des effets physiques.

La conception de jeux est arrivée à un tournant où l'augmentation de réalisme par la seule augmentation des qualités graphiques est devenue insuffisante. Cette prise de conscience fait que depuis 1 an on voit s'activer divers projets et diverses sociétés sur le devant de la scène médiatique. On a eu droit au processeur spécifiquement dédié au calcul physique (Le PPU - physic processor unit) par la société Ageia. Plus récemment Havok, une solution logiciel, a fait son show en présentant une version de son moteur physique exploitant les possibilités de calcul des GPU (graphic processor unit) au lieu d'exploiter celles du CPU. Ces deux solutions ont en commun de trouver des solutions pour le calcul autre que le processeur central qui n'offre aujourd'hui pas les possibilités de calcul requises pour les besoins d'un réalisme accru. Toutefois la solution de calcul par les CPU n'a pas dit son dernier mot, ne serait-ce qu'à cause de l'arrivée des processeurs n-core. Mais pas seulement.

Je vous invite donc dans cet article à faire un petit tour du propriétaire et surtout à voir le pour et le contre de chacune de ces évolutions dans un contexte global.

Bonne lecture :)





La physique par le PPU
   

Le PPU est un processeur spécialisé qui dispose de sa propre carte sur laquelle il est monté ainsi que de sa propre mémoire. Disposer d'un processeur dédié à une tâche hyperspécialisée et très exigeante en terme de puissance n'est pas nouveau. On peut donner l'exemple le plus important, à savoir celui de la 3D et des processeurs graphiques. Que de chemin parcouru en 10 ans pour les GPU ! Peut-on envisager que les PPU suivent la même voie ? Ce qui, reformulé autrement, consiste à se demander si l'utilisation de PPU a un avenir ? A mon avis, il faut regarder cela sous deux aspects, le bénéfice pour les animations 3D par rapport à l'apport de puissance, ensuite l'état du marché pour voir l'accueil qui peut leur être fait.

A moins que les concepteurs de PPU soient totalement incompétents, l'utilisation d'un processeur spécialisé dans les calculs mathématiques spécifique aux calculs physiques est un plus indéniable. On peut donc raisonnablement penser que la puissance de calcul physique brut sera importante. Par rapport à quoi ? Au GPU et CPU évidemment, quoique cela ne soit pas aussi évident que cela comme nous allons le voir à présent.

Si les performances brutes ne sont pas à remettre en question, il existe quand même un petit souci. Celui de la communication entre le PPU et les autres processeurs. En effet cette communication ne dispose pas d'un canal privilégié comme en disposent le GPU et le CPU. Bien sûr on peut envisager à terme qu'une carte équipée d'un PPU dispose, comme pour les cartes graphiques, d'un canal privilégié. Les cartes graphiques n'ont-elles pas commencé sur un simple bus ISA puis PCI comme toutes les autres cartes avant d'avoir un port AGP et maintenant PCI-e x16 ? Mais pour que cela arrive, faut-il encore que les PPU soient adoptés par le marché et là c'est plus délicat.

Le problème des PPU c'est qu'on ajoute un processeur spécialisé à une structure (le PC) qui est déjà fortement équipé en processeur de tout genre. Les utilisateurs seraient-ils d'accord pour ajouter encore une carte à leur PC ? Ma foi si elle ne coutait que 30€ je pense que la pilule passerait mais c'est plutôt dans les 100€ à 150€ que la première carte PPU est prévue. En fait cela se comprend. On peut même envisager que certains utilisateurs, et donc part du marché, ne comprennent pas pourquoi ils devraient acheter quelque chose dont ils ne voient pas concrètement l'utilité. Qui a déjà du changer de machine ou d'éléments de son PC parce que le calcul physique ne suivait pas ? Donc hormis les spécialistes de la question, l'intérêt d'achat d'un PPU semble totalement abstrait.

Donc indépendamment de toute concurrence, le PPU n'est déjà pas un choix facile, mais si en plus il entre en concurrence avec d'autres solutions alors l'accueil par le marché risque d'être assez froid. En parlant de concurrence, il faut savoir qu'à part Ageia aucune autre société n'a déclaré vouloir attaquer le marché des cartes physiques avec PPU. Or les utilisateurs ont l'habitude de la concurrence sur ce marché.





La physique par les GPU
   

Cela fait plusieurs années que des groupes de recherches tentent de développer des projets mettant en oeuvre les possibilités de calcul des cartes graphiques pour du calcul scientifique (exemple : projet brookGPU). Il n'y a donc rien de surprenant à entendre parler de projet visant à faire exécuter les calculs de physique par les GPU. A une petite exception près. Une toute petite exception de rien du tout. Le GPU devra continuer à faire son travail 3D en même temps. Et là ça change tout. Si un GPU dispose d'une grande puissance de calcul, il n'en reste plus grand chose quand il est en plein boulot. Ou alors on nous ment, les processeurs 3D sont si peu exploités qu'il peuvent faire des choses très complexes et lourdes en plus ! J'ironise, mais je vais vous expliquer pourquoi.

Vouloir faire croire que l'exécution des calculs physiques en parallèle des calculs 3D n'aura pas d'impact sur les calculs 3D est un mensonge. A une exception près. C'est en supposant que les besoins en calcul 3D et physique aient une progression lente et que donc l'évolution technologique de l'architecture des GPU et de leur conception pourra le supporter. Malheureusement, d'une part, les processeurs sont toujours dans une course effrénée à la puissance parce que les besoins de plus de puissance sont bien là et bien pesants. D'autre part, si on souhaite faire faire des calculs de physique par le biais d'un processeur dédié ou par un GPU c'est que les besoins de calcul physique ont urgemment besoin de puissance pour s'exprimer. Il y a donc malaise. D'un côté en voulant déporter les calculs physiques sur le processeur, on affirme qu'il y a des besoins urgents, d'un autre côté, on peut douter fortement qu'une telle solution puisse permettre d'exécuter des calculs 3D et de physique ayant une forte croissance et très complexe sans que l'un ne nuise à l'autre. Je ne doute pas que ça soit possible. Ce dont je doute c'est que si on entre dans une telle situation, cela ne va pas imposer des restrictions à la vitesse d'évolution des besoins de calcul 3D et de physique. Les évolutions d'architecture et de conception des GPU ne le supporteront pas. Elle ne le supporteront pas parce que les contructeurs poussent déjà au maximum les possibilités. Il suffit de voir la courbe d'évolution de consommation des cartes graphiques alors que toute l'industrie informatique a commencé à s'orienter vers le contrôle de la consommation et des solutions de plus en plus mobiles et portables (portable, console portable, ... ).

Il est à noter que la société Havok qui propose un moteur physique logiciel qui équipe déjà des jeux comme Half-life 2, a choisi la voie du GPU et proposera en 2006 son moteur physique havokFX pour toute carte disposant des fonctionnalités pixel shader 3.

Concernant les coûts. Si en première réflexion on peut affirmer que l'utilisation d'un processeur existant (le GPU) pour les moteurs physiques est une bonne manière de maîtriser les coûts, dans une réflexion plus poussée, on peut avoir des craintes. On sait que l'exécution des moteurs physiques, même si ce n'est qu'une partie de leurs fonctionnalités, a un coût en terme de performances sur la partie 3D. Cet impact pourrait être un appel du pied à ATI et NVidia à démocratiser leurs solutions multi-GPU pour compenser cette perte. Ce n'est pas une certitude, mais donner un satisfecit à la solution GPU, c'est prendre le risque de la donner aussi aux solutions multi-GPU. Dans cette situation, le gain en coût (prix du produit) est totalement illusoire. En ce qui me concerne, je suis fermement opposé au déploiement des solutions multi-GPU dans la mesure où les constructeurs NVidia et ATI sont toujours dans une dynamique de toujours plus et pas de maîtrise de la consommation de leur produit. Développer des solutions abondantes dans la surconsommation, aux ventilateurs surdimensionnés, ... n'est plus le sens de l'histoire de l'évolution des technologies informatiques. C'est un concept qui n'a pas d'avenir.





La physique par le CPU
   

Quel processeur exécute actuellement les calculs physiques ? Le CPU. Mais le pauvre a bien du mal et les concepteurs de jeux doivent limiter leur ardeur. Il faut bien reconnaître que depuis ces 2 dernières années les performances des processeurs n'ont pas ébloui beaucoup de gens. Le monde des CPU n'est pas dans la même dynamique que celui des GPU. Il suffit de regarder du côté des innovations pour voir, à chaque sortie d'un GPU, toutes les analyses qui s'en donnent à coeur joie pour essayer de comprendre et de faire comprendre toutes les nouveautés. Il est clair qu'avec une dynamique aussi poussive, beaucoup de professionnels ne voient pas le CPU comme un choix crédible.

Est-ce la seule raison, la vrai raison ? Effectivement si ces deux dernières années ont été mornes, plusieurs indicateurs semblent montrer que le marasme dans le monde des CPU va prendre fin. Non seulement on va assister à une généralisation des solutions n-core (pour les portables, les PC et les consoles de jeux), mais le retour sur la scène d'Intel avec une architecture nouvelle promet quelques gains substantiels de performances. Un peu plus loin, c'est l'utilisation de DSP c'est-à-dire de processeur spécialisé (dans le cas présent, spécialisé dans le calcul) intégré au CPU qui risque de faire son apparition. Et même si ce n'était pas le cas les processeurs à 4 cores et plus suffiraient à combler bon nombre de professionnels.

Mais voilà, qui dit n-core, dit aussi programmation multi-thread et là on sait que les concepteurs de jeux ne sont pas chauds. Pourquoi ? Parce que ce n'est pas performant ? Non parce qu'il faut qu'ils se mettent au boulot. La question est alors si un processeur 2-core pourrait être efficace pour satisfaire les besoins de calcul pour l'année 2006 et 2007 ? Je réponds sans difficulté oui !

Il y a une chose, une distinction importante qu'on oublie quand on parle de moteur physique. C'est que c'est de la programmation trationnelle, certes spécialisée mais traditionnelle. Or les calculs scientifiques, comme tout programme traditionnel, sont gourmands en mémoire cache. Et voilà le point fort des CPU, ils peuvent mettre une quantité de mémoire cache très importante à disposition des moteurs physiques.

Un autre atout des CPU. C'est que l'industrie des CPU vient de faire sa révolution. Elle termine de digérer les multi-cores et le 64 bits. Elle en a terminé avec des architectures à forte consommation. Ceci implique que la multiplication des cores ne signifiera pas une course à la surconsommation comme pour les GPU. C'est aussi une industrie qui distingue bien le monde professionnel du simple utilisateur. Elle ne proposera donc pas des solutions multi-CPU à des utilisateurs pour soi-disant satisfaire leurs besoins.





Conclusion
   

Techniquement, la solution la plus intéressante est celle du PPU, indépendamment des coûts, de la mise en oeuvre, ... D'un point de vue adéquation au marché on peut quand même sérieusement s'interroger sur la pérénité de la démarche d'une société comme Agéia. Le point de départ de cette interrogation est qu'on dispose déjà de CPU, que que ceux-ci passent en multi-core ce qui devrait fournir une augmentation substantielle des capacités de calcul comme pourrait en avoir besoin un moteur physique. Alors pourquoi aller chercher un processeur dédié ? La situation est-elle si désespérée ? Bien sûr que non et les utilisateurs le sentent bien. Plus récemment, on leur a exposé la possibilité d'une autre solution à savoir celle de faire exécuter tous ou en partie les calculs physiques par le GPU. J'ai mis en avant le pour et le contre de cette solution mais il reste une question en suspend. Pourquoi les constructeurs de GPU sont-ils si intéressés à faire exécuter les moteurs physiques malgré les problèmes que cela pourrait engendrer ? C'est une question fondamentale pour comprendre et savoir si cette direction est viable. Malheureusement je crains fort que la réponse se situe du moins en partie dans une volonté de monopoliser les moyens technologiques sur leurs GPU afin de justifier certains débordements technologiques et tarifaires.

En conlusion et pour ce qui me concerne, la solution CPU est la plus sage, la plus mature et sans surprise tant en terme de prix, de consommation, ... La seule réserve qu'on peut avoir se situe dans l'engagement des développeurs à prendre le taureau par les cornes et à se mettre sérieusement au multi-thread.





Quelques liens utiles
   




YOUM
(analyseur syntaxique temps réel)
Nombre de définitions trouvées
35
Multi-dico par texte : actif   -   Multi-mots par définition : 4






fonction
menu de droite
fin de menu

qcm du mois
Télescope spatial Hubble
fin qcm


Page générée en : 0.007 secondes
ligne
Technologies Onversity : Hydrogen 1.0 (moteur de base de données) - SE.EN 1.0 (moteur de recherche) - YOUM 2.0 (analyseur syntaxique temps réel)
Tous droits réservés à Jean-François MAQUINÉ
ligne