Python interpreter PyPy JIT starts supporting Aarch64 architecture

PyPy officially announced support for the AArch64 architecture, which brings PyPy’s high-performance JIT to the AArch64 platform, which is 64-bit ARM. PyPy now supports a total of six architectures, x86 (32 and 64 bit), ARM (32 and 64 bit), PPC64 and s390x.

PyPy is an alternative implementation of the Python programming language to CPython, which is the standard implementation of Python. PyPy often runs faster than CPython, because PyPy is a just-in-time compiler, while CPython is an interpreter. Most Python code runs well on PyPy, except for code that depends on CPython extensions, which either does not work or incurs some overhead when run in PyPy. Functionally, PyPy is designed around the technique known as meta-tracing, which transforms an interpreter into a tracing just-in-time compiler.

The following graph shows the speedups on AArch64 of PyPy (hg id 2417f925ce94) compared to CPython (2.7.15), as well as the speedups on a x86_64 Linux laptop comparing the most recent release, PyPy 7.1.1, to CPython 2.7.16.


Due to its integrated JIT compiler, it is very fast. In order to demonstrate the performance of the new PyPy, a speed test was also conducted in this official announcement. As shown in the above figure, the performance of PyPy and CPython is compared in a set of benchmark tests, also, compare the results of PyPy on the x86_64 architecture. The results show that in most benchmarks, the acceleration achieved on AArch64 is comparable to that achieved on x86_64 laptops. PyPy on AArch64 has an acceleration of 0.6x to 44.9x compared to CPython and 0.6x to 58.9x on x86_64.