写点什么

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:003031
用户头像

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

关注

评论

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

香港 Web3 宣言两周年专访 HashKey Tokenisation 总经理 Anna Liu:探索代币化的未来

TechubNews

洞悉数据,守护安全!和鲸助力2024年浙江省交通投资集团数字化主题活动圆满闭幕

ModelWhale

人工智能 交通 数据竞赛

ChatGPT 开启「眼睛」,实时摄像头对话来了;昆仑万维推出实时语音助手 Skyo丨 RTE 开发者日报

声网

作为产品经理,如何分析和管理你的产品需求

易成研发中心

产品需求

Python脚本消费多个Kafka topic

不在线第一只蜗牛

Python kafka

探索OS升级迭代的兼容性和安全性!龙蜥社区走进中科方德MeetUp开始报名

OpenAnolis小助手

操作系统 龙蜥社区 龙蜥meetup

开放原子校源行(天津大学站) 即将启幕,龙蜥技术专家分享开源技术与实践

OpenAnolis小助手

操作系统 龙蜥社区

软件测试丨全面解析 Allure 2 的安装与运用

测试人

软件测试

鸿蒙NEXT开发案例:血型遗传计算

zhongcx

鸿蒙

LeetCode题解:2695. 包装数组,详细解释

Lee Chen

LeetCode题解:2618. 检查是否是类的对象实例,使用instanceof

Lee Chen

万字长文带你深入Redis底层数据结构

不在线第一只蜗牛

数据库 redis

构建真实可靠指标平台:五大核心特征助力企业深度数智化

Aloudata

指标管理 指标平台 指标开发

人类级别语音 AI 路线图丨 Voice AI 学习笔记

声网

有哪些ppt一键生成软件?这6个AI不容错过!

职场工具箱

效率工具 职场 PPT 办公软件 AI生成PPT

第三代指标平台相较于前两代的显著优势分析

Aloudata

指标管理 指标平台 指标开发

HarmonyOS NEXT用户专属装扮免费体验!华为主题内容大焕新!

最新动态

鸿蒙NEXT开发案例:简体繁体转换器

zhongcx

鸿蒙

Apache IoTDB v1.3.3 发布|新增数据订阅,DataNode 主动监听并加载 TsFile 等功能

Apache IoTDB

【JIT/极态云】技术文档--组织架构简介

武汉万云网络科技有限公司

低代码

选择ETL工具需要注意什么技术性问题?

RestCloud

数据分析 ETL 数据集成

赋能生态系统,Arm 打造全球最大 AI 开发者社区

新消费日报

倒计时1天!龙蜥社区开源软件供应链及操作系统安全MeetUp即将在广州召开

OpenAnolis小助手

操作系统 龙蜥社区 龙蜥meetup

喜讯!云起无垠获“中国产业互联网发展联盟IDAC双奖”

云起无垠

天润融通解决方案:如何避免门店投诉升级为消费者维权

天润融通

如何设计实施 Git 工作流程以提升软件研发效能?

思码逸研发效能

git DevOps 编程语言 研发效能 研发效能管理

超实用开源前端商城模板,助力电商项目飞速启航!免费直接可用!

恩爸编程

商城项目 商城源码 商城系统 开源商城项目 前端商城模版

产品需求文档在迭代阶段怎样管理

易成研发中心

产品需求 产品需求文档

CSA GCR 2024 | 百度安全DDoS防护服务荣获安全磐石奖等多项殊荣

百度安全

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