Index

Savoir

Faire

Miscellaneous

Choisir un CPU

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