Runtime Optimization of Binary Through Vectorization Transformations - Inria - Institut national de recherche en sciences et technologies du numérique Accéder directement au contenu
Thèse Année : 2017

Runtime Optimization of Binary Through Vectorization Transformations

Optimisation de binaire à l'exécution par la vectorisation

Résumé

In many cases, applications are not optimized for the hardware on which they run. This is due to backward compatibility of ISA that guarantees the functionality but not the best exploitation of the hardware. Many reasons contribute to this unsatisfying situation such as legacy code, commercial code distributed in binary form, or deployment on compute farms. Our work focuses on maximizing the CPU efficiency for the SIMD extensions. The first contribution is a lightweight binary translation mechanism that does not include a vectorizer, but instead leverages what a static vectorizer previously did. We show that many loops compiled for x86 SSE can be dynamically converted to the more recent and more powerful AVX; as well as, how correctness is maintained with regards to challenges such as data dependencies and reductions. We obtain speedups in line with those of a native compiler targeting AVX. The second contribution is a runtime auto-vectorization of scalar loops. For this purpose, we use open source frameworks that we have tuned and integrated to (1) dynamically lift the x86 binary into the Intermediate Representation form of the LLVM compiler, (2) abstract hot loops in the polyhedral model, (3) use the power of this mathematical framework to vectorize them, and (4) finally compile them back into executable form using the LLVM Just-In-Time compiler. In most cases, the obtained speedups are close to the number of elements that can be simultaneously processed by the SIMD unit. The re-vectorizer and autovectorizer are implemented inside a dynamic optimization platform; it is completely transparent to the user, does not require any rewriting of the binaries, and operates during program execution.
Dans plusieurs cas, les applications ne sont pas optimisées pour le matériel sur lequel elles s’exécutent. De nombreuses raisons contribuent à cette situation insatisfaisante, comme les logiciels hérités, ou code commercial distribué sous forme binaire, ou le déploiement des prgrammes dans des fermes de calcul. On se concentre sur la maximisation de l’efficacité du processeur pour les extensions SIMD. Dans la première contribution, nous montrons que de nombreuses boucles compilées pour x86 SSE peuvent être converties dynamiquement en versions AVX plus récentes et plus puissantes; Ainsi que la façon dont l’exactitude est maintenue en ce qui concerne les défis tels que les dépendances de données et les réductions. Nous obtenons des accélérations conformes à celles d’un compilateur natif ciblant AVX. La deuxième contribution est la vectorisation en temps réel des boucles scalaires. Nous avons intégrés logiciels libres pour (1) soulever dynamiquement le binaire x86 vers la forme de représentation intermédiaire du compilateur LLVM, (2) abstraire les boucles fréquemment exécutées dans le modèle polyédrique, (3) utiliser la puissance de ce model mathématique pour les vectoriser, et (4) enfin les compiler en utilisant le compilateur Just-In-Time de LLVM. Les accélérations obtenues sont proches du nombre d’éléments pouvant être traités simultanément par l’unité SIMD. Notre plate-forme d’optimisation est dynamique; elle ne nécessite aucune réécriture des binaires et fonctionne pendant l’exécution du programme.
Fichier principal
Vignette du fichier
RuntimeOptimizationOfBinaryThroughVectorizationTransformations_Final.pdf (1.76 Mo) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

tel-01795489 , version 1 (23-12-2017)
tel-01795489 , version 2 (18-05-2018)

Identifiants

  • HAL Id : tel-01795489 , version 1

Citer

Nabil Hallou. Runtime Optimization of Binary Through Vectorization Transformations. Other [cs.OH]. Université de Rennes 1 [UR1], 2017. English. ⟨NNT : 2017REN1S120⟩. ⟨tel-01795489v1⟩
475 Consultations
1281 Téléchargements

Partager

Gmail Facebook X LinkedIn More