supinfo
supinfo
Connexion :
Abonnement NewsletterOk
 

Valve : un moteur 3D optimisé pour le multicore

Publiée par Vincent le Jeudi 2 Novembre 2006

Brève Processeur

Intel Core 2 Quad
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.


Half Life 2 Particle Benchmark


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.
Actu précédente
Brève suivante
Les Commentaires des lecteurs
_
le 02 Nov. 06 à 18h53
Edition
 
ça c'est une bonne chose ... il été temp
 
le 02 Nov. 06 à 18h53
Edition
 
Rha nan mais nan quoi... J'ai acheter mon FX 57 ya pas 4 mois!

Hors de question de passer au dual core lol!

Bah tant mieux pour les possesseurs de dual core, dommage pour les autres...
 
le 02 Nov. 06 à 18h54
Edition
 
Arf, j'ai dit dans les commentaires du test du QX6700 que vALVE avait dit qu'ils ne travaillerait aps sur le multi-core avant un bout de temps! xD
 
le 02 Nov. 06 à 18h55
Edition
 
il fallait bien y arrivait un jour!, :clap: alors il est ce benchmark? :miam:
 
le 02 Nov. 06 à 18h55
Edition
 
Non, ceux qui n'ont pas de Dual Core, ben, ils ne gagneront rien, mais ne perdront rien non plus :)

Sinon, ça me ferait trop plaisir de voir des "anciens" jeux patchés pour supporter les dernières technos. :)
 
le 02 Nov. 06 à 18h59
Edition
 
Vincent a écrit:
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.

Bref ils expliquent la base de la gestion multihreads, reste qu'il faut pas se planter sur ce qu'on lit non plus, mais en vrai ca reste tellement plus complexe que ca ne semble, mais c'est bien que le monde informatique s'y mette vraiment.
 
le 02 Nov. 06 à 19h01
Edition
 
Dit Mr Clubic, c pas plutot substituer plutot que subjuguer ? Parce que subjuguer c'est :
"Soumettre à son ascendant." "Réduire en sujétion par la force des armes."

:jap:
 
le 02 Nov. 06 à 19h02
Edition
 
après les Blue Screen Of Death, voici...
Vincent a écrit:
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.

DEAD LOCK OF DEATH POWAAAA !

Aaaah ! C'est toujours du bonheur de travailler avec des ressources partagés. :bounce:
 
le 02 Nov. 06 à 19h05
Edition
 
herwawan a écrit:
Rha nan mais nan quoi... J'ai acheter mon FX 57 ya pas 4 mois!


Si tu voulais un processeur tourné vers l'avenir il fallait plutot prevoir un double-coeur :neutre:

Enfin bon c'est comme ca on ne peut rien contre l'evolution du matos :D
 
le 02 Nov. 06 à 19h20
Edition
 
Tient, ils ont appris à utiliser les Mutex et autres sections critiques ainsi que les Worker Threads ... chouette.
 
le 02 Nov. 06 à 19h24
Edition
 
Vincent a écrit:
le "thread maître" peut se subjuger aux autres si cela est nécessaire.
Ce qui veut dire? :whistle:

Non, je demande... Parce que c'est un mot qui n'apparait ni dans le Larousse, ni dans le Petit Robert, ni même dans le Littré... Même Google a du mal... :paf:
 
le 02 Nov. 06 à 19h25
Edition
 
il ferais mieux de crée un nouveau moteur le gabe parcque le source il est bien depassé maintenant :hello:
 
le 02 Nov. 06 à 19h28
Edition
 
Source Engine dépassé? LOL... Il n'en est qu'à ses débuts...
 
le 02 Nov. 06 à 19h32
Edition
 
herwawan a écrit:
Rha nan mais nan quoi... J'ai acheter mon FX 57 ya pas 4 mois!



Matchou_V a écrit:
Si tu voulais un processeur tourné vers l'avenir il fallait plutot prevoir un double-coeur  :neutre:


Plutôt d'accord :p Clairement c'était pas très malin de prendre un fx-57 y a 4 mois au lieu d'un dual-core (enfin c'est peut-être différent suivant les utilisations mais je vois difficilement laquelle dans ce cas précis)
:p
 
le 02 Nov. 06 à 19h39
Edition
 
J0uM a écrit:
Source Engine dépassé? LOL... Il n'en est qu'à ses débuts...


C'est pas contradictatoire, c'est juste qu'il est dépassé des les débuts.

Suffit de voir Dark Messiah c'est joli mais avec une gestion dynamique de l'éclairage l'ambiance aurait été infinemment meilleur.
 
le 02 Nov. 06 à 19h41
Edition
 
Je crois que le problème vient des développeurs et non du moteur de rendu! Mais là... Il ne s'agit que d'une opinion basée sur rien du tout. :paf:
 
le 02 Nov. 06 à 19h42
Edition
 
herwawan a écrit:
Rha nan mais nan quoi... J'ai acheter mon FX 57 ya pas 4 mois!

Hors de question de passer au dual core lol!

Bah tant mieux pour les possesseurs de dual core, dommage pour les autres...


quelle idée d'acheter un processeur hors de prix en monocore :paf:
 
le 02 Nov. 06 à 19h44
Edition
 
ParkerLewis a écrit:
Matchou_V a écrit:

herwawan a écrit:

Rha nan mais nan quoi... J'ai acheter mon FX 57 ya pas 4 mois!

Hors de question de passer au dual core lol!

Bah tant mieux pour les possesseurs de dual core, dommage pour les autres...

Si tu voulais un processeur tourné vers l'avenir il fallait plutot prevoir un double-coeur :neutre:

Enfin bon c'est comme ca on ne peut rien contre l'evolution du matos :D


Plutôt d'accord :p Clairement c'était pas très malin de prendre un fx-57 y a 4 mois au lieu d'un dual-core (enfin c'est peut-être différent suivant les utilisations mais je vois difficilement laquelle dans ce cas précis)
:p

Et bien je suis d'accord aussi!
Maintenant, c'est bien vrai que dans l'état actuel des choses, le dual-core :sarcastic: disons que j'aimerai bien avoir aussi un FX-57 :ange:
Pour être un peu :ane:, je pourrai même dire que tu aurais du attendre le Core2Duo :paf:
 
le 02 Nov. 06 à 20h01
Edition
 
Nutz a écrit:
C'est pas contradictatoire, c'est juste qu'il est dépassé des les débuts.

Suffit de voir Dark Messiah c'est joli mais avec une gestion dynamique de l'éclairage l'ambiance aurait été infinemment meilleur.

Je suis pas trop d'accord...
Half Life 2 est encore assez loin d'être moche, même s'il n'est pas tout à fait du niveau de ce que l'on peut voir sur les vidéos de Crysis ou UT2007, je pense qu'il y ait encore de belles choses à faire avec. Maintenant, tu "râles" parce que dans un jeu, ils n'ont pas jugés nécessaire d'inclure une certaine fonction... Et puis, l'absence de gestion dynamique peut aussi entrer dans une certaine ligne de style. Pensez à tout ce qui se fait maintenant pour tenter de s'éloigner du "Photo-réalisme" que bien des moteurs vont presque jusqu'à promettre; pensez à des jeux comme Darwinia avec ses graphismes en "fil de fer" ou "XIII" tout de "Cell Shading" habillé...
Parce que maintenant, déjà avec le Source Engine, on est plus très loin de ça:






...
Enfin, un avis très personnel, hein :neutre:
 
 



<