Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/05/2010, à 21:37

TatrefThekiller

Logiciel open-source / proprio & optimisations

Salut !

Un truc me trotte dans la tête depuis un petit moment :
Lorsque l'on compile un logiciel open-source, on peut l'optimiser avec -Ox, ou bien avec -march afin d'obtenir de meilleures performances.
Je me demande alors comment font les logiciels proprios pour avoir de bonnes performances (par exemple les jeux vidéo), sachant qu'ils compilent un exécutable qui marche sur quasiment tous les CPU X86 ?
Est-il possible de créer un exécutable avec plusieurs version d'une librairie, et sélectionner celle qui correspond à l'architecture au moment de l'exécution ?

Merci d'avance pour vos réponses !

Hors ligne

#2 Le 29/05/2010, à 21:47

Le Farfadet Spatial

Re : Logiciel open-source / proprio & optimisations

Salut à tous !

   C'est possible, mais c'est un mécanisme extrêmement difficile et complexe à mettre en place, sans parler du nombre de combinaisons à prendre en compte, donc très délicat à mettre en place.

   L'approche classique consiste plutôt à déporter les éléments critiques à une bibliothèque tierce, ce qui permet de ne pas nécessiter d'options d'optimisations trop agressives, donc de proposer un exécutable utilisable sur toutes les architectures (qui peut tout de même être optimisé sur plusieurs points). Un bon exemple de bibliothèque tierce est OpenGL. Sous Windows, la majorité des jeux utilisent Direct X, dans la mesure où c'est le mieux supporté.

   À bientôt.

   Le Farfadet Spatial

Hors ligne

#3 Le 29/05/2010, à 21:59

TatrefThekiller

Re : Logiciel open-source / proprio & optimisations

Merci pour la réponse !
Quand je parlais de CPU, je pensais plutôt à "catégorie de CPU" par exemple Core i7, Pentium M...
Ou bien par rapport aux fonctionnalités supportées par le CPU (SSE, 3D now...).

Est-ce que tu aurais un lien qui explique comment faire (google n'a pas été mon ami sur ce coup là !) ?

Hors ligne

#4 Le 29/05/2010, à 22:27

Link31

Re : Logiciel open-source / proprio & optimisations

Si tu compiles avec le compilateur Intel, celui-ci insère des routines de détection des capacités du CPU (cpuid) qui permettent d'utiliser certaines portions de code optimisées si le processeur le permet. Tu peux bien évidemment faire la même chose à la main (c'est le cas dans mplayer par exemple).

Mais finalement, ce n'est pas si compliqué. La plupart des jeux commerciaux indiquent que le processeur doit être, par exemple, un Pentium 4 au minimum, donc > i686. Ça permet déjà une large gamme d'instructions optimisées. De plus, le CPU est loin d'être le facteur de performances le plus important si le jeu est en 3D.

Hors ligne