Valve : un moteur 3D optimisé pour le multicore

02 novembre 2006 à 18h43
0
00FA000000385433-photo-intel-core-2-quad.jpg
Alors qu'il y a quelques mois, Gabe Newell cofondateur et directeur de Valve (a qui l'on doit Half-Life 2) rechignait au sujet de l'arrivée des Processeurs multicores (voir la brève Le dual-core dans la douleur pour les jeux 3D ?), Valve a officiellement fait savoir qu'il travaillait « finalement » sur une mise à niveau de son moteur 3D qui permettra de tirer profit de ces nouveaux concentrés de silicium.

L'annonce qui tombe à pic pour le lancement des processeurs Intel Core 2 Quad (voir 4 coeurs sur une puce: Intel Core 2 Extreme QX6700 ... drôle de coïncidence ?) a été couverte par notre confrère Bit-tech. On y apprend des choses intéressantes et notamment que Valve travaille sur une méthode « personnalisée » de gérer le multicore :

« Notre système est développé spécialement pour régler les problèmes des jeux 3D et de la programmation multicore. Il permet notamment d'occuper à 100% les cores des processeurs. Nous faisons en sorte qu'il y est N-1 threads pour N cores, le thread restant étant le "thread maître" qui gère la synchronisation de l'ensemble. Ce système permet d'allouer du travail à tous les cores dès qu'ils sont disponibles. Par ailleurs, le "thread maître" peut se subjuger aux autres si cela est nécessaire.

Nous essayons également de régler un problème majeur avec le multithreading : l'accès aux données. Nous avons tous rencontré ce problème, lorsqu'on édite une base de données ou une page alors qu'elle est en train d'être éditée par quelqu'un d'autre : les données sont écrasées par l'une ou l'autre des modifications. Le problème est le même avec le multicore lorsque plusieurs "threads" tentent d'avoir accès à certaines données du jeu [...] Nous avons toutefois réalisé que 95% du temps, les opérations consistent seulement à lire des données et que les 5% restants sont liés à des écritures/modifications. Nous avons donc décidé d'autoriser la lecture à l'ensemble des threads et l'écriture n'est autorisée que lorsque telle ou telle donnée est attribuée et "fermée" par tel ou tel thread
», explique Valve.


0190000000386386-photo-half-life-2-particle-benchmark.jpg


Notre confrère a publié un premier Benchmark qui exploite les techniques de Valve pour gérer le multicore. Ce benchmark, qui s'appuie sur la gestion physique de nombreuses particules, permet de profiter de 23 images/seconde sur une machine dotée d'un processeur Intel simple coeur T7600 et de 44 images/seconde avec un double coeur T7600.

Questionné à propos des cartes de gestion de la physique (comme le PhysX de AGEIA), Valve a fait savoir qu'il n'écartait pas de prendre en charge ce type de carte avec les prochaines versions de son moteur, si et seulement si ces cartes deviennent populaires. Ce qui n'est pas vraiment le cas pour le moment.

Les premières optimisations pour le multicore dans le moteur de Valve pourraient être introduites avec Half-Life 2 : Episode Two. Mais Valve n'écarte pas la possibilité de proposer (sous la forme de patchs ?) des optimisations similaires pour Half-Life 2 et Half-Life 2 : Episode One. Il faudra donc attendre encore plusieurs mois avant de pouvoir juger réellement cette nouvelle approche de gestion du multicore.
Vous êtes un utilisateur de Google Actualités ou de WhatsApp ? Suivez-nous pour ne rien rater de l'actu tech !
google-news

A découvrir en vidéo

Rejoignez la communauté Clubic S'inscrire

Rejoignez la communauté des passionnés de nouvelles technologies. Venez partager votre passion et débattre de l’actualité avec nos membres qui s’entraident et partagent leur expertise quotidiennement.

S'inscrire

Commentaires

Haut de page

Sur le même sujet