Python JIT编译器PyPy 4引入SMD向量化并提升了性能

PyPy 是Python的一个即时编译器,PyPy 4.0是其最新发布的一个大版本,带来很多新的特性,诸如支持SIMD矢量、预热时间的改进、以及对Numpy的改进。PyPy声称要比Cpython快6倍以上。

\\

PyPy 4的SIMD矢量会在追踪代码时启用,而且会自动探测到可用的SIMD硬件从而提高常见的向量和矩阵操作。根据版本的公告,实时矢量相比前置(ahead-of-time)矢量更具有领先优势,因为其更加的容易探测到可能的矢量。

\\

在性能方面,PyPy的内部进行重构从而能够更有效的使用guards。它能够减少20%的内存消耗,而且改进了unrolling,这样可以较少20%的预热时间。

\\

PyPy中的Numpy和Python的NumPy扩展是一个道理。Python的NumPy曾经谈及,NumPy是能够将使用PyPy的开发者们纠回到Python本身的一个理由。在PyPy 4.0,Numpy带来了新的扩展支持,如ndarray和数字的dtypes,这也就意味着Numpy的功能接近完善。对于record、string、以及unicode dtypes的支持都有所改进。

\\

PyPy 4.0目的是兼容CPython2.7。对于缺少对Python3的支持被认为是人们采用PyPy的一个限制因素。事实上,PyPy3是兼容Python3.2.5的,而且PyPy团队正在尝试启动对Python3.4的支持。

\\

在迁移到PyPy之前还应该考虑另外两个因素,一个是PyPy还缺乏像C Python那样的扩展如Pandas,SciPy等的等量支持,这样的话,若是用户使用了这些扩展的话,PyPy就不如C Python效率更高;另外一个就是,PyPy为其即时编译器带来的好处是对长时间运行的脚本支持,若是简单而短小的脚本的话,预热时间就显得长了点。

\\

更多关于PyPy 4.0的细节请参考其官方声明。PyPy 4可以在这里下载

\\

查看英文原文:Python JIT Compiler PyPy 4 Brings SMD Vectorization,Performance Improvements,and More

\\

感谢张龙对本文的审校。

\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群06e1fec4a87eca3142d54d09844c629f.png)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值