Auto-vectorisation

Un article de Wikipédia, l'encyclopédie libre.

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 | modifier le code]

Liens externes[modifier | modifier le code]

(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 | modifier le code]

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