L'auto-vectorisation est une technique de compilation de langage de programmation, permettant d'adapter automatiquement des boucles de fonctions traitant des vecteurs, ou, plus généralement, des matrices, à un processeur vectoriel ou bien un SIMD. On appelle plus généralement, le fait d'adapter des traitements à des processeurs vectoriels, de façon manuelle ou automatique, une vectorisation.

Le compilateur Gnu GCC utilise des techniques d'auto-vectorisation basées en 2011 sur le framework tree-ssa[1] pour la majorité des SIMD (3DNow!, SSE (et SSE2, SSE3), ARM NEON et l'équivalent d'ARM pour l'embarqué, MVE.

Le compilateur LLVM, supportant les mêmes SIMD, utilise également ce type de technique donnant des résultats meilleurs ou moins bon selon les cas[2].

Liens internes modifier

Liens externes modifier

(en) Automatically Tuned Linear Algebra Software – théorie de l'auto-vectorisation.
(en) Auto-vectorization in GCC (auto-vectorisation dans GCC).
(en) Auto-Vectorization in LLVM (auto-vectorisation dans LLVM).

Notes et références modifier

  1. « Auto-vectorization in GCC », sur gcc.gnu.org
  2. (en) « Auto-Vectorization in LLVM », sur llvm.org