Intel Core i7 et Core i5 LGA 1155 Sandy Bridge

Advanced Vector Extension (AVX)
Sandy Bridge inaugure un nouveau jeu d'instructions vectoriel, l'AVX. AVX s'inscrit dans la famille des jeux d'instructions SIMD (Single Instruction, Multiple data) et opère sur des nombres flottants. Les opérandes peuvent atteindre 256 bits, mais AVX supporte également les opérandes 128 bits des jeux d'instructions SSE.

La difficulté lorsqu'un nouveau jeu d'instructions apparaît consiste à le faire adopter par les développeurs. Pour cela, Intel a particulièrement soigné son nouveau jeu d'instructions, et compte bien sur une adoption rapide et massive.

La première condition que doit remplir un jeu d'instructions pour séduire les développeurs est un gain de performance notable. Intel a ainsi porté ses efforts sur la vitesse de traitement des instructions AVX sur son nouveau processeur :

- la gestion des registres a été optimisée pour la manipulation des opérandes 256 bits, comme nous l'avons vu plus haut.
- les opérations les plus courantes s'enchaînent avec une latence de 1 cycle sur des opérandes 256 bits : multiplication, addition, réordonnancement de données (shuffle).
- ajout d'un second port de lecture 128 bits afin de doubler la capacité d'alimentation des unités en opérandes 256 bits. Il est intéressant de noter que la présence de ce second port accélère le traitement de certaines routines qui n'utilisent pas l'AVX.

La seconde condition réside dans la capacité des instructions proposées à faciliter le travail des développeurs, et notamment la mise en forme des données. En effet, les jeux d'instructions SIMD fournissent les performances maximales lorsqu'ils sont utilisés sur plusieurs données simultanément, c'est-à-dire en mode « vectoriel ». A contrario, dans le mode « scalaire », le registre ne contient qu'une seule donnée, ce qui réduit bien entendu l'intérêt du jeu d'instructions.

Hélas, la vectorisation, qui consiste à grouper les données de façon optimale dans les registres, est encore mal effectuée de manière automatique par les compilateurs, et les meilleurs résultats sont toujours obtenus par un travail manuel, long et souvent compliqué. Afin de faciliter cette mise en forme, AVX introduit de nombreuses nouvelles instructions (appelées primitives) dont le rôle est de faciliter ce travail de regroupement : déploiement de données, insertion, extraction, lectures et écritures conditionnelles … .


Intel a fait beaucoup d'efforts pour mettre en avant AVX, et les résultats dans les premiers benchmarks supportant le nouveau jeu d'instructions semblent très prometteurs. A noter que le support de l'AVX nécessite Windows 7 Service Pack 1, qui n'est encore disponible qu'en version release candidate.
Vos réactions

Top articles