Vectorization Technology To Improve Interpreter Performance - Université de Rennes Accéder directement au contenu
Article Dans Une Revue ACM Transactions on Architecture and Code Optimization Année : 2013

Vectorization Technology To Improve Interpreter Performance

Erven Rohou
David Yuste
  • Fonction : Auteur
  • PersonId : 885836

Résumé

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.

Domaines

Autre [cs.OH]

Dates et versions

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

Identifiants

Citer

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⟩
235 Consultations
0 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More