11.3.1 : Principe de la vectorisation
Les processeurs actuels peuvent, depuis 2004 (voir table 2), effectuer un même calcul sur plusieurs nombres flottants ou entiers en même temps (voir figure 37).
Techniquement, la vectorisation est permise par la duplication des unités de calcul au sein des CPU. Sur certains programmes, cette capacité à effectuer $N$ calculs en même temps (où $N$ dépend de l'architecture) peut être exploitée pour rendre les programmes $N$ fois plus rapides.
Instruction | Release | First | Nb float | Nb int |
Set | Date | CPU | per instruction | per instruction |
SSE2 | 2003 | 2004 | $2$ | $1$ |
SSSE3 | 2004 | 2005 | $2$ | $2$ |
SSE4.1 | 2006 | 2007 | $4$ | $2$ |
SSE4.2 | 2007 | 2008 | $4$ | $4$ |
AVX | 2008 | 2011 | $8$ | $4$ |
AVX2 | 2012 | 2013 | $8$ | $8$ |
AVX 512.1 | 2013 | 2016 | $16$ | $8$ |
AVX 512.2 | 2015 | 2018 | $16$ | $16$ |
Table 2 : Évolution des capacités de vectorisation des processeurs Intel[52]Architecture software developer's manual volume 1, 2016.