机器之心编辑部机器之心编译

更快、更强的Python实现:Pyston v2.0发布

比 Python 快 20% 的 Pyston v2.0 来了。

2014 年,Python 实现 Pyston 诞生。Pyston 的开发目标是开发高性能 Python 实现,使 Python 跻身 C++ 等传统系统级语言主导的领域。

Pyston 最初是由 Dropbox 推出的基于 JIT 的 Python 实现。Pyston 解析 Python 代码,并转换到 LLVM 中间表示(IR),然后 IR 通过 LLVM 优化器和 LLVM JIT 引擎,得到可执行的机器码。

六年过去,10 月 28 日 Pyston 团队发布了最新版本——Pyston v2。

Pyston v2:比 Python 快 20%

据官方介绍,在宏基准测试上 Pyston v2 比 Python 3.8 快了 20%。除了速度快,Pyston v2 还可以降低服务器成本,减少用户等待时间,提高开发生产力。

此外,Pyston v2 易于部署。如果想获得更好的 Python 性能,只需花很少的时间就可以尝试部署 Pyston。

性能

Pyston v2 在许多工作负载上的速度有明显提升。开发者的研究重点一直放在 Web 服务器工作负载上,但 Pyston v2 在其他工作负载和常见基准上速度也更快。

开发团队整理了一个新的公开 Python 宏基准测试套件,该套件可测量多个常用 Python 项目的性能。

Pyston v2 在微基准测试上也显示出性能加速。在 chaos.py 和 nbody.py 等测试中,其速度是标准 Python 的 2 倍。

在目标基准 (djangocms + flaskblogging) 上,Pyston v2 实现了平均延迟 1.22x 加速、p99 延迟 1.18x 加速,并且每个进程使用的内存仅多了几 MB。

技术方法

Pyston v2 使用的技术包括:

  • 利用 DynASM 的低开销 JIT;

  • Quickening;

  • 通用 CPython 优化;

  • 构建进程提升。

兼容性

由于 Pyston 是 CPython 的分支,因此开发团队认为 Pyston 是目前兼容性最强的 Python 实现。它支持 CPython 拥有的所有特性和 C API。

理论上,Pyston 与 CPython 具备同样的功能,但在实践中任何新的 Python 实现都会遇到一些暂时的兼容问题。详情参见:https://github.com/pyston/pyston/wiki。

可用性

Pyston v2.0 可作为预置软件包立即可用。目前,Pyston v2.0 已具备适用于 Ubuntu 18.04 和 20.04 x86_64 的包。

Pyston 的试用较为简单,安装软件包,将 python3 替换成 pyston3,然后使用 pip-pyston3 install 重新安装依赖项。在已有自动构建设置时,这一改变只需几行即可完成。

Pyston 团队表示,计划未来将代码开源,但由于编译器项目成本高昂且没有赞助,因此目前该项目仍是闭源的,但 Pyston v1.0 的源代码是开放的。

原文链接:

https://blog.pyston.org/2020/10/28/pyston-v2-20-faster-python/

工程Pyston v2.0
相关数据
基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

推荐文章
暂无评论
暂无评论~