11.10.1.2 : Vectorisation



Il existe différents types de vectorisation.

L'auto-vectorisation est effectuée par le compilateur, mais nécessite un apport d'indices de la part du développeur, car le compilateur ne peut pas deviner a priori l'utilisation désirée. Cette méthode permet une bonne portabilité des applications.

La programmation par fonctions intrinsèques produit du code bien plus optimisé que celui produit par un compilateur au prix d'une portabilité diminuée.

La génération de code (Tensorflow, Loopy) permet d'effectuer des optimisations que les compilateurs ne peuvent pas faire, comme adapter le code au nombre de cœurs/GPU statiquement. Cette dernière technique préserve la portabilité, mais complexifie la construction de l'exécutable puisqu'un compilateur récent doit être disponible sur la machine cible.