[Zurück]


Vorträge und Posterpräsentationen (mit Tagungsband-Eintrag):

R. Plangger, A. Krall:
"Vectorization in PyPy´s Tracing Just-In-Time Compiler";
Vortrag: SCOPES 2016 - 19th International Workshop on Software and Compilers for Embedded Systems, St. Goar; 23.05.2016 - 25.05.2016; in: "SCOPES 2016 - 19th International Workshop on Software and Compilers for Embedded Systems", (2016), ISBN: 978-1-4503-4320-6; 10 S.



Kurzfassung englisch:
PyPy is a widely known virtual machine for the Python programming language. PyPy itself is implemented in the statically typed subset of Python called RPython. RPython includes a tracing Just-In-Time (JIT) compiler and is capable of generating the compiler for a language from the specification of the interpreter for that language. In PyPy 4.0.0 we extended the tracing JIT compiler to support vectorization of loops and emit code for the SSE4 vector operations of the x86 instruction set. This article presents the details of the new vectorizer of PyPy. The vectorizer uses a loop unrolling approach to vectorization. It has been designed for efficient compilation as the compilation is done during the execution of the application. The scientific library NumPy introduced arrays which are homogeneous, primitive typed and contiguous in memory. These kind of arrays are used to avoid the problems with dynamic typing. Our contribution to PyPy's new vectorizer supports scalar and constant expansion, accumulator splitting for reductions, guard strengthening and array bounds check removal. The empirical evaluation shows that the vectorizer can gain speedups close to the theoretical optimum of the SSE4 instruction set.


"Offizielle" elektronische Version der Publikation (entsprechend ihrem Digital Object Identifier - DOI)
http://dx.doi.org/10.1145/2906363.2906384

Elektronische Version der Publikation:
http://publik.tuwien.ac.at/files/publik_256523.pdf


Erstellt aus der Publikationsdatenbank der Technischen Universität Wien.