Dynamic Re-Vectorization of Binary Code - INRIA - Institut National de Recherche en Informatique et en Automatique Accéder directement au contenu
Communication Dans Un Congrès Année : 2015

Dynamic Re-Vectorization of Binary Code

Résumé

In many cases, applications are not optimized for the hardware on which they run. Several reasons contribute to this unsatisfying situation, including legacy code, commercial code distributed in binary form, or deployment on compute farms. In fact, backward compatibility of ISA guarantees only the functionality, not the best exploitation of the hardware. In this work, we focus on maximizing the CPU efficiency for the SIMD extensions and propose to convert automatically, and at runtime, loops vectorized for an older version of the SIMD extension to a newer one. We propose a lightweight 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 dependences and reductions. We obtain speedups in line with those of a native compiler targeting AVX. The re-vectorizer is implemented inside a dynamic optimization platform; it is completely transparent to the user, does not require rewriting binaries, and operates during program execution.
Fichier non déposé

Dates et versions

hal-01155207 , version 1 (26-05-2015)

Identifiants

  • HAL Id : hal-01155207 , version 1

Citer

Nabil Hallou, Erven Rohou, Philippe Clauss, Alain Ketterlin. Dynamic Re-Vectorization of Binary Code. International Conference on Embedded Computer Systems: Architectures, Modeling and Simulation - SAMOS XV, Jul 2015, Agios Konstantinos, Greece. ⟨hal-01155207⟩
312 Consultations
0 Téléchargements

Partager

Gmail Facebook X LinkedIn More