|

|
Note : cette page,
originellement datée du 31 mai 2000, a
été mise à jour le17 août 2000,
suite à l'exécution des tests sur l'Athlon
sous Linux au lieu de Windows 98. Les tests compilés
avec GCC ont donné de meilleurs résultats que
ceux obtenus sous Windows avec les deux compilateurs
commerciaux à notre disposition. Les modifications
à la page originale sont reconnaissables à
leur couleur
bleue.
But : évaluer la performance en calcul
brut, l'influence de la mémoire, et aussi le
comportement dynamique du processeur
Moyens : utilisation de benchmarks testant
uniquement le CPU sur des
calculs sur entiers et sur flottants, puis testant la mémoire en
général (accès séquentiel ou
pas, en entier et flottant, dans le cache ou pas, avec ou
sans calcul), et enfin le comportement dynamique en calcul
entier (avec sauts
conditionnels), le tout sur Alpha 164 et 264, PPC G3, Athlon
et PII.
Résultats : les résultats, analysant le nombre
de cycles d'horloge par opération en langage C, sont
synthétiquement résumés
ci-après :
- la performance en virgule
flottante, sur du code présentant du
parallélisme, est quasiment identique pour le PII,
l'Athlon et les Alpha 164 et 264 (moins de 10% de
dispersion) ;
le PowerPC G3 (ainsi que le G4, partiellement
testé) délivre lui une performance qui peut
facilement atteindre le double (ie deux fois moins de
cycles en moyenne) ;
dans le pire des cas en
virgule flottante (aucun parallélisme possible),
les Alpha 164 et 264 ainsi que le PII et l'Athlon sont aussi groupés (moins de
12% de dispersion), tandis que les PowerPC sont 33% plus
performants ;
cependant un tel cas semble être rare ;
- la performance en calcul
entier, sur du code présentant beaucoup de
parallélisme, est aussi identique pour les deux
Alpha et le PII (moins de 6% de dispersion) ; l'Athlon se détache avec 33%
de performance en plus, et les PowerPC une nouvelle fois
avec une performance double ;
dans le pire des cas en
entier (toujours aucun parallélisme), Athlon et
PowerPC fixent la norme, les Alpha sont deux fois moins
performant, et le PII se situe entre, avec 33% de
performance en moins que les meilleurs ou 33% en plus que
les Alpha ; une nouvelle fois un tel cas est
relativement rare.
Ramenés aux
fréquence disponibles actuellement, ces constatations
font que :
- en virgule flottante, il-y-a
quasiment égalité entre tous les
protagonistes, car le PowerPC est cadencé en
moyenne deux fois moins rapidement que ses
concurrents ;
l'Alpha souffre un peu de n'atteindre actuellement que
les 700MHz environ, mais à la fin de cette
année, avec 1400MHz pour les Athlon et PII,
1200MHz pour l'Alpha 264 et 700MHz pour les PowerPC,
l'égalité sera quasiment
retrouvée ;
- en calcul entier, le
même constat qu'en flottant s'impose, à un
bémol près :
alliant bonne performance en cycles d'horloge et
fréquence de fonctionnement des plus
élevées (1 GHz), l'Athlon se détache
en entier de 33% environ.
En ce qui concerne la performance
mémoire, deux constatations s'imposent :
- les processeurs ayant
beaucoup de mémoire cache premier niveau (Alpha
264 et Athlon) sont avantagés, car cette
mémoire répond très rapidement
à toutes les sollicitations sans aucune
faiblesse :
il vaut donc mieux en avoir la plus grande
quantité possible dans la majorité des
cas ;
- la performance mémoire
de machines ayant des configurations mémoire
identiques est... identique, ce qui signifie que la
mémoire, comme on pouvait s'y attendre, nivelle
radicalement la performance des processeurs (au
désavantage relatif des processeurs les plus
puissants, bien évidemment).
En ce qui concerne le
comportement dynamique du processeur, la hiérarchie
s'établit comme suit :
- performance G3 400MHz =
performance Athlon 600MHz = 2*performance Alpha 164
400MHz = 2*performance PII 400MHz (350MHz ramené
à 400MHz par linéarité)
- performance G3 400MHz =
2*performance Alpha 264 500MHz quand la prédiction
est très difficile
- performance G3 400MHz =
1.2*performance Alpha 264 500MHz quand la
prédiction est relativement aisée
Notes : fin 2000, le G4e
bénéficiera d'unités en calcul entier
supplémentaires, et le Willamette devrait aussi
bénéficier de modifications de son
architecture de calcul en entier (meilleur
enchaînement des opérations, mais aussi
incompatibilités entre certaines opérations
successives qui peuvent doubler le temps de cycle). Dans les
deux cas la latence sera probablement augmentée, avec
pour conséquence que les améliorations
sus-citées ne tiennent pas sensiblement leurs
promesses.
Pour les puristes, les
résultats des principaux tests menés sur des
machines réelles sont les suivants :
Virgule flottante :
Premier : PowerPC G3/G4 400MHz : 374 millions
d'opérateurs C/seconde
Deuxièmes ex-aequo : Athlon 600MHz : 253
millions d'opérateurs C/seconde et Alpha 264 500MHz : 247 millions d'opérateurs
C/seconde
Quatrièmes ex-aequo : Alpha 164 400MHz :
174 millions d'opérateurs C/seconde et Pentium II
350MHz : 161 millions d'opérateurs
C/seconde
Calcul entier :
Premier : PowerPC G3/G4 400MHz : 895 millions
d'opérateurs C/seconde
Deuxième : Athlon 600MHz : 783 millions
d'opérateurs C/seconde
Troisième : Alpha 264 500MHz : 635 millions
d'opérateurs C/seconde
Quatrième : Alpha 164 400MHz : 397 millions
d'opérateurs C/seconde
Cinquième : Pentium II 350MHz : 334
millions d'opérateurs C/seconde
Comportement
dynamique :
|
Processeur
|
Test des 3
cavernes
|
Test des 10
cavernes
|
Commentaire
|
|
PowerPC G3/G4
400MHz
|
7.67 s
|
4.67 s
|
Pipeline court
avantageux pour les branchements
|
|
Athlon 600MHz
|
7.87 s
|
4.58 s
|
Préfère
légèrement le code sans trop
d'incertitude de branchement
|
|
Alpha 164 400MHz
|
15.7 s
|
9.50 s
|
Pipeline relativement
long et prédiction de branchement
moyennement efficace
|
|
PII 350MHz
|
17.9 s
|
12.3 s
|
Idem Alpha 164
|
|
Alpha 264 500MHz
|
13.7 s
|
6.02 s
|
La logique de
prédiction de branchement est un point
sensible du 264, traité à l'aide de
beaucoup de transistors, mais le long pipeline
semble très pénalisant quand il y a
beaucoup de fautes de prédiction
|
|
|