Dynamic Re-Vectorization of Binary Code - Inria - Institut national de recherche en sciences et technologies du numérique
Conference Papers Year : 2015

Dynamic Re-Vectorization of Binary Code

Abstract

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.
No file

Dates and versions

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

Identifiers

  • HAL Id : hal-01155207 , version 1

Cite

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⟩
329 View
0 Download

Share

More