Vectorization Technology To Improve Interpreter Performance

Erven Rohou 1 Kevin Williams 1 David Yuste 1
1 ALF - Amdahl's Law is Forever
Inria Rennes – Bretagne Atlantique , IRISA-D3 - ARCHITECTURE
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.
Type de document :
Article dans une revue
ACM Transactions on Architecture and Code Optimization, Association for Computing Machinery, 2013, 9 (4), pp.26:1-26:22. 〈10.1145/2400682.2400685〉
Liste complète des métadonnées

https://hal.inria.fr/hal-00747072
Contributeur : Erven Rohou <>
Soumis le : mardi 30 octobre 2012 - 14:27:36
Dernière modification le : mercredi 16 mai 2018 - 11:23:28

Lien texte intégral

Identifiants

Citation

Erven Rohou, Kevin Williams, David Yuste. Vectorization Technology To Improve Interpreter Performance. ACM Transactions on Architecture and Code Optimization, Association for Computing Machinery, 2013, 9 (4), pp.26:1-26:22. 〈10.1145/2400682.2400685〉. 〈hal-00747072〉

Partager

Métriques

Consultations de la notice

518