Vectorization Technology To Improve Interpreter Performance - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Journal Articles ACM Transactions on Architecture and Code Optimization Year : 2013

Vectorization Technology To Improve Interpreter Performance

Erven Rohou
David Yuste
  • Function : Author
  • PersonId : 885836

Abstract

In the present computing landscape, interpreters are in use in a wide range of systems. Recent trends in consumer electronics have created a new category of portable, lightweight software applications. Typically, these applications have fast development cycles and short life spans. They run on a wide range of systems and are deployed in a target independent bytecode format over Internet and cellular networks. Their authors are untrusted third-party vendors, and they are executed in secure managed runtimes or virtual machines. Furthermore, due to security policies or development time constraints, these virtual machines often lack just-in-time compilers and rely on interpreted execution. At the other end of the spectrum, interpreters are also a reality in the field of high performance computations because of the flexibility they provide. The main performance penalty in interpreters arises from instruction dispatch. Each bytecode requires a minimum number of machine instructions to be executed. In this work, we introduce a novel approach for interpreter optimization that reduces instruction dispatch thanks to vectorization technology. We extend the split-compilation paradigm to interpreters, thus guaranteeing that our approach exhibits almost no overhead at run time.We take advantage of the vast research in vectorization and its presence in modern compilers. Complex analyses are performed ahead of time, and their results are conveyed to the executable bytecode. At run time, the interpreter retrieves this additional information to build the SIMD IR (intermediate representation) instructions that carry the vector semantics. The bytecode language remains unmodified, making this representation compatible with legacy interpreters, and previously proposed JIT compilers. We show that this approach drastically reduces the number of instructions to interpret and decreases execution time of vectorizable applications. Moreover, we map SIMD IR instructions to hardware SIMD instructions when available, with a substantial additional improvement. Finally, we finely analyze the impact of our extension on the behavior of the caches and branch predictors.

Domains

Other [cs.OH]

Dates and versions

hal-00747072 , version 1 (30-10-2012)

Identifiers

Cite

Erven Rohou, Kevin Williams, David Yuste. Vectorization Technology To Improve Interpreter Performance. ACM Transactions on Architecture and Code Optimization, 2013, 9 (4), pp.26:1-26:22. ⟨10.1145/2400682.2400685⟩. ⟨hal-00747072⟩
241 View
0 Download

Altmetric

Share

Gmail Facebook X LinkedIn More