On Tue, 30 Apr, 2002 � 01:55:49PM +0200, frederic massot wrote:
> georges mariano wrote:
> > 
> > ...
> > 
> > > Pourquoi Debian fait �a ?
> > > - Parce que le gain de vitesse en compilant pour i686 est ridicule
> > > pour la plupart des applications.
> 
> Cela veut-il dire que la plus part des am�liorations apport�es aux
> processeurs (ajout de nouvelles instructions, ...) sont in�fficaces ?

Pas du tout.
Prenons un brave programmes compil� pour 386. Prenons 2 machines
relativement identique (m�me fr�quence, m�me RAM), l'une dot� d'un 386
original et d'un 387 et l'autre d'un Pentium (I, II, III, Xeon, peu
importe). Je ne sais pas � quelles turpitudes il faut se livrer pour
trouver une 386 et un Pentium qui se ressemble � ce point, mais passons.

Le programme va tourner (� fr�quences �gales je le rappelle), nettement
plus vite sur le Pentium, de 2 � 5 fois plus vite grosso-modo. Magie ?
Non, une m�me instruction s'ex�cute en moins de cycle d'horloge. Sur un
386, bon nombre d'instruction s'ex�cutent en plus de 10 cycles, sur un
pentium, peu d'instructions n�cessite plus de 3 cycles. De plus le
pentium dispose de quelques avantages : m�moire cache int�gr� au proc,
meilleure gestion du cache, pr�diction de branchement (� partir du II il
me semble) possibilit� de parall�liser certaines instruction (�a ne va
pas bien loin, mais on peut faire un calcul FPU en m�me temps qu'un
op�ration CPU simple pour les premiers pentiums alors que les r�cents
ont 2 ALU je crois).

En fait, le 686 a �t� con�u pour am�liorer les perfs des programmes fait
pour le 386, c'est pour cela que la recompil n'apporte que des gains
marginaux.

> Quels sont les changements apport�s � un programme compil� avec l'option
> i686 � la place de i386 ?

D'abord, �viter les branchements (*), alignements m�moire sur des multiples
de 4 plus strict. Apr�s, �a d�pend de la qualit� du compilateur,
utiliser des instructions sp�cifiques pour certaines op�rations peut
repr�senter un gain de temps significatif (BSET par exemple).

En g�n�ral, �a ne vaut le co�t de compiler sp�cialement que pour tirer
parti de sp�cificit�s : MMX, SSE. �a peut �tre int�ressant pour optimiser
certains calculs d'une librairie scientifique, mais �a ne concerne en
g�n�ral qu'une partie d'une librairie.

(*) Dans l'absolu (en nb de cycles perdus), les branchements ne sont pas
plus grave pour un 686 qu'un 386 mais en vitesse relative c'est la cata
: perdre 10 cycles sur un 386 correspond au temps d'une instruction,
alors que 10 cycles sur un 686 c'est de 5 � 15 instructions de perdues.

-- 
 ( >-   Laurent PICOULEAU                                      -< )
 /~\       [EMAIL PROTECTED]                                    /~\
|  \)    Linux : mettez un pingouin dans votre ordinateur !    (/  |
 \_|_    Seuls ceux qui ne l'utilisent pas en disent du mal.   _|_/


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Répondre à