AMD - Intel : 32 Vs 64 bits
By Samuel D. - 24/01/2005
Sommaire:

 

32 Vs 64 Bits :
Tests Linux (2/2)

 

Comme nous l'avons vu dans les tests précédents, le 64-bit semble bien avoir un intérêt dans la pratique puisque le gain de performances peut exister dans certaines applications. Ce gain est, pour l'heure actuelle, dû quasi exclusivement à la hausse du nombre de GPR et pas à la taille des registres en eux-mêmes. Continuons maintenant les benchmarks sous Linux avec d'autres tests.

 

  • nBench 2.2.1

nBench est un portage de la version 2 du benchmark "ByteMark" de Byte's magazine. On peut le retrouver sur cette page dans sa version la plus récente. Ce benchmark, conçu en 1997, est clairement représentatif des applications anciennes, où les développeurs ne pensaient pas à paralléliser leur code. Pour ce test, nous avons compilé ce benchmark en mode x86-64 et en mode 32 bits classique, puis nous avons exécuté le test a partir des exécutables compilés (que nous avons également mis à disposition ici en version 32 et 64 bits). Voyons tout de suite les résultats bruts :

 

 

Comme on le voit ici, c'est l'Opteron qui domine la marche, à part dans deux tests. Concernant le 64-bit, on voit qu'il peut, selon les cas, soit apporter un fort gain en performance, soit entraîner une légère perte. Cette légère perte peut s'expliquer de la façon suivante : Dans le cas où l'augmentation des GPRs n'est pas utilisé au compilateur, la perte peut être entraînée par la saturation du cache avec des registres qui font maintenant deux fois la taille des GPR 32 bits classiques. Ainsi, stocker la valeur "1" d'un GPR en cache consomme 32 bits en mode 32 bits, mais 64 bits en mode x86-64. Ce qui entraîne une diminution de la taille utile du cache dans ce cas. nBench fournit, a la fin du test, un récapitulatif sous forme d'un score en entier (Integer) et en flottant (Floating point). Voici ces intéressants résultats :

 

 

Ce test démontre bien la suprématie de l'architecture K8 face au P4 sur d'anciennes applications. Pour parler de l'Opteron, on peut dire que le passage en mode x86-64 sur ce type d'application influe beaucoup sur les performances entière (logique, vu l'augmentation des GPR) et à un effet nul ou légèrement négatif sur les performances flottantes (ce qui est également logique vu que le FPU est traitée en SSE dans ce mode). Concernant le Xeon Nocona, si le gain 32 -> 64 bits en entier est de 47.5% (contre 38.7% sur Opteron), on peut s'étonner de la perte impressionnante de performances en FPU, puisque celle-ci est de 25%. Selon toute vraisemblance, cette chute est due encore une fois au compilateur, puisque le passage de registres x87 vers des registres SSE ne semble pas avoir été faite correctement.

 

  • SSBENCH 1.06b

Continuons maintenant avec SSBench, que l'on peut trouver sur cette page. Ce benchmark est une suite de 8 tests entiers et 8 tests flottant et utilise des methodes de calcul plus récente que nBench. Encore une fois, nous avons compilé ce programme en version 32 et 64 bits. Vous pouvez trouvez ces exécutables ici. Voyons les résultats :

 

 

Sur ce test, le gains sont très limités sur Opteron (moins de 5%) et carrément négatif sur Xeon. En effet, le Nocona se comporte mieux en mode 32 bits qu'en mode x86-64, où il subit une perte d'environ 5%. Preuve que, selon les tests, le mode 64 bits n'a pas toujours l'effet escompté et peu très bien ne rien apporter. Concernant le Xeon, c'est encore une fois le compilateur qui permettra d'obtenir des résultats comparables entre AMD64 et EM64T. GCC ayant bénéficié d'un temps de développement bien plus long sur le premier que sur le second.

 

  • NPB 3.1

NPB, ou NAS parallel Benchmark, est encore une fois un test de calcul scientifique, cette fois développé par pas moins que la NASA. Comme pour les autres tests, nous avons compilé ce programme en 32 et 64 bits. Malheureusement, la politique très restrictive d'utilisation de ce logiciel nous empêche de mettre les binaires en download. Toutefois, les sources sont disponibles sur le site de la NASA, plus précisément ici. Nous avons compilé les 10 tests de la suite NPB3.1-OMP avec la commande "make suite". Toutefois, il est nécessaire de dire un mot sur le fichier de configuration qui se trouve dans config/suite.def . Ce fichier permet de configurer la complexité des calculs, ceux-ci allant de quelques secondes à plusieurs jours. Nous avons donc choisi la suite "A" pour tous les tests. Voyons les résultats commentés :

 

 

Comme on le voit, les résultats sont partagés. le mode x86-64 apporte parfois quelque chose (résultats en vert), parfois une perte de performance (résultat en rouge). Au final, le Nocona fini premier 3 fois sur 10 tests, dont seulement une fois grâce à l'EM64T. Par contre, l'Opteron finit 4 fois premier grâce au 64 bit sur 7 succès. Nous avons récapitulé ici les résultats :

 

 

Comme on le voit, les gains du passage au 64 bits sont de -0.39% sur Intel et 8.13% sur plate-forme AMD. Sur ce benchmark, l'Opteron 2 GHz est 6.45% plus performant que le Xeon 3.0 GHz en mode 32 bit et 14.32% en mode 64 bits. Ces mauvais résultats peuvent encore s'expliquer par le compilateur. Cette fois, il s'agit du compilateur Fortran. A noter que si l'on reproduit ces tests avec les librairies Fortron optimisées d'Intel, le Xeon 3.0 GHz, finit devant l'Opteron avec un gain de 37% en 32 bit et ... 195% en 64 bit ! Preuve que le compilateur jour beaucoup sur l'application exécutée par la suite...

 

Suite ( 32 Vs 64 bits : Tests Windows x64 )

Fermer