Speculatively Vectorized Bytecode [abstract] (ACM DL)
Erven Rohou, Sergei Dyshel, Dorit Nuzman, Ira Rosen, Kevin Williams, Albert Cohen, and Ayal Zaks
Proceedings of the 6th International Conference on High Performance and Embedded Architectures and Compilers (HiPEAC), January 2011.
Diversity is a confirmed trend of computing systems, which
present a complex and moving target to software developers.
Virtual machines and just-in-time compilers have been
proposed to mitigate the complexity of these systems. They
do so by oring a single and stable abstract machine model
thereby hiding architectural details from programmers.
SIMD capabilities are common among current and expected
computing systems. Efficient exploitation of SIMD
instructions has become crucial for the performance of many
applications. Existing auto-vectorizers operate within traditional
static optimizing compilers, and use details about the
target architecture when generating SIMD instructions. Unfortunately,
auto-vectorizers are currently too complex to be
included in a constrained Just-In-Time (JIT) environment.
In this paper we propose Vapor SIMD: a speculative approach
for ective just-in-time vectorization. Vapor SIMD
first applies complex ahead-of-time techniques to vectorize
source code and produce bytecode of a standard portable
format. Advanced JIT compilers can then quickly tailor this
bytecode to exploit SIMD capabilities of appropriate platforms,
yielding up to 14.7x and 11.8x speedups on x86 and
PowerPC platforms (including JIT-compilation time). JIT
compilers can also seamlessly revert to non-vector code, in
the absence of SIMD capabilities or in the case of a third party
non-vectorizing JIT compiler, yielding 93% or more of
the original performance.