高性能 Python 解釋器 PyPy 開始支持 AArch64 架構


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

.

Leave a Comment