AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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

  • 2015-11-10
  • 本文字数:848 字

    阅读完需:约 3 分钟

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 读者交流群)。

2015-11-10 18:002916
用户头像

发布了 30 篇内容, 共 11.7 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

第二周作业1

sean

架构师训练营第二周笔记-带你认识框架设计原则和设计模式

郎哲158

学习 极客大学架构师训练营 框架设计

week2

Geek_deb968

Architecture Phase1 Week2:Framework Design

phylony-lu

极客大学架构师训练营

Architecture Phase1 Week2:HomeWork

phylony-lu

极客大学架构师训练营

甲方日常 23

句子

生活 随笔杂谈 减肥

VS Code 搭建 C++ 开发环境(Mac 环境)

hungxy

c++ vscode

【架构师训练营第 1 期 02 周】 学习总结

Bear

极客大学架构师训练营

第二周作业 (作业二)

Geek_83908e

极客大学架构师训练营

架构训练营第二周练习

灰羽零

架构师训练营第 1 期第二周学习总结

郑凯元

极客大学架构师训练营

架构师训练营第二周作业

郎哲158

极客大学架构师训练营

架构师训练营第一期 - 第二周课后作业

卖猪肉的大叔

用十六年时间,造一座声音“博物馆”:OPPO的影音进击之路

脑极体

架构师训练营作业:第二周

m

架构师训练营 - 学习笔记 - 第二周

徐时良

架构一期二班-吴水金-第二课作业

吴水金

罗辑思维(得到APP)要上市了,你不知道的27件事

赵新龙

罗辑思维 IPO

Week 2 作业 02

Croesus

第二周作业 (作业一)

Geek_83908e

极客大学架构师训练营

第二周作业及学习笔记

橘子皮嚼着不脆

第二周 框架设计 学习笔记

应鹏

学习 极客大学架构师训练营

架构师训练营第 1 期 - 第2周 - 学习总结

wgl

第二周作业

极客大学架构师训练营

第二周 框架设计 作业一

应鹏

极客大学架构师训练营

第二周-学习总结

Yangjing

极客大学架构师训练营

设计模式

knight

第二周作业2

sean

架构师训练营 -week02- 作业

大刘

极客大学架构师训练营

作业一:

静海

架构师训练营第 2 周课后练习

叶纪想

极客大学架构师训练营

Python JIT编译器PyPy 4引入SMD向量化并提升了性能_Python_Sergio De Simone_InfoQ精选文章