高性能Python 解釋器PyPy 開始支持AArch64 架構
PyPy官方宣布支持AArch64架構,它將PyPy的高性能JIT帶入AArch64平台,也就是64位ARM。現在PyPy一共支持6種架構,分別是x86(32和64位)、ARM(32和64位)、PPC64與s390x。
PyPy 是一個兼容性強大的 Python 解釋器,幾乎是CPython 2.7 與3.6 的直接替代品。由於其集成的JIT 編譯器,速度很快,為了展示新PyPy 的性能,此次官方公告中也進行了一次速度測試,如上圖所示,在一組基準測試中比較了PyPy 與CPython 的性能,同時對比x86_64 架構上PyPy 的結果。
圖中顯示了AArch64(hg id 2417f925ce94)上與CPython(2.7.15)相比PyPy 的速度提高,以及x86_64 Linux 筆記本電腦上最新版本PyPy 7.1.1 和CPython 2.7.16 相比的速度。結果顯示在大多數基準測試中,AArch64 上實現的加速與x86_64 筆記本電腦上實現的加速效果相當。AArch64 上的PyPy 相比 CPython 有 0.6x 到44.9x 的加速,x86_64 上是0.6x 到58.9x。
需要注意的是,這裡顯示的結果是在AWS的Graviton A1機器上測量的,Graviton A1是虛擬機,因此不適合進行基準測試。此外,此基準套件並不能夠反映平均水平。
下面的圖片比較了在AArch64 與x86_64 上實現的加速差距,也就是考察PyPy 在AArch64 上性能相比x86_64 提高多少,它可以粗略地了解新移植版本PyPy 的能力。
有三種結果:運行速度差不多、運行速度提高2 倍,以及速度為x86_64 的0.5 倍。
官方表示該版本還有許多改進的空間,AArch64 帶有大量的CPU 寄存器,PyPy 後端是用x86(32 位變體)編寫的,它的寄存器數量非常少。官方認為可以在機器碼方面進行改進,這可能對AArch64 的影響大於對x86_64 的影響。此外AArch64 後端還有許多缺少的功能,這些功能目前使用昂貴的函數調用實現,而不是內聯原生指令,可以進行改進。
詳情查看:
https://morepypy.blogspot.com/2019/07/pypy-jit-for-aarch64.html