AMD FX-8150 et FX-6100, Bulldozer débarque sur AM3+

Publié le 12/10/2011 par
Imprimer
Les unités de calculs
Chacune des deux unités d'exécution x86 du module Bulldozer est composée de deux ALUs (unités arithmétiques et logiques) ainsi que de deux AGUs (unités de génération d'adresse). Plus précisément, AMD parle en fait d'AGLUs plutôt que d'AGUs, ces unités étant capables d'effectuer des opérations simples.


A contrario, l'architecture K10 proposait 3 ALUs et 3 AGUs, ce qui fait qu'avec 3 ALUs contre 2 ALUs Bulldozer peut dans le pire des cas ne pas dépasser 67% d'un K10 sur un seul thread.

Côté FPU chaque module est doté d'une seule FPU partagée entre les deux cœurs. Capable de gérer 2 thread, un pour chacun des cœurs parents, elle peut également combiner ses deux unités FMAC 128 bits pour traiter les opérations AVX 256 bits.

Qu'en est-il en pratique ? Nous avons effectué à l'aide d'AIDA  une mesure de la latence et du débit pour les instructions sur K10, Bulldozer et Sandy Bridge dont voici un extrait. La latence représente le délai, exprimé en cycle, pour traiter une seule instruction, alors que le débit mesure la vitesse entre chaque instruction traitée lorsqu'on en traite plusieurs.


Par rapport à K10, on peut voir que Bulldozer améliore très légèrement la division entière 32 ou 64 bits (IDIV). Cette dernière reste par contre nettement plus rapide en 32 bits sur Sandy Bridge, mais plus lente en 64 bits. La multiplication entière (IMUL) souffre par contre sur Bulldozer tant en terme de latence que de débit, alors que les opérations plus simples telles que la copie (MOV) ou l'addition (ADD) conservent une bonne latence mais voir leur débit baisser, ce qui est lié au passage de 3 à 2 ALUs.

Du côté des nombres flottants (x87), et hormis le calcul du sinus qui souffre beaucoup par rapport à K10 qui était nettement plus rapide que SNB, on note une amélioration globale des débits, un bon point si on enchaine le même type d'instruction. Malheureusement c'est loin d'être systématique et la latence souffre beaucoup. Du côté des instructions SSE2, qui sont également exécutées par la FPU, on note le même phénomène.

Comme prévu les instructions AES apportent une amélioration des performances importantes, puisque l'on obtient les scores suivants en fonction des architectures (fréquence fixe de 3.2 GHz) sous le test AES de AIDA 64 :

- 35 315 pour Yorkfield (Core 2 Quad 65nm)
- 433 093 pour Sandy Bridge (Core i7 32nm)
- 35 743 pour Deneb (Phenom II X4)
- 52 833 pour Thuban (Phenom II X6)
- 344 131 pour Zambezi (FX-8)

L'apport de l'AVX et du SSE4 est pour sa part plus délicat à démontrer, d'autant plus qu'il est difficile de trouver des versions d'un même programme optimisées correctement pour chaque niveau de jeu d'instruction et pour chaque architecture. Le logiciel y-cruncher  par exemple dispose d'une version AVX qui est environ 13% plus rapide que la version SSE3 (les versions SSE4 n'étant pas plus rapide que la version SSE3) sur Sandy Bridge. Ce même code AVX, qui a été optimisé sur la seule architecture AVX disponible (Sandy Bridge) est 10% moins rapide que la branche SSE3 sur Zambezi.

En ce qui concerne le FMA4 et le XOP, AMD nous a fournit il y a 48h une version de x264 censée tirer partie de ces instructions. Malheureusement sur nos tests nous n'avons noté aucune amélioration de performances par rapport à la version classique, que ce soit sur la 1ère ou la 2ème passe d'un encodage. Il faut bien dire que les optimisations XOP/FMA4 sont encore au stade de développement pour x264 et n'ont pas intégré la branche de développement principale. Voilà donc une partie qui reste à explorer quant aux performances de l'architecture Bulldozer.
Vos réactions

Top articles