【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

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

关注

评论

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

“零代码”的瓴羊Quick BI即席分析,业务人员也能轻松上手

夏日星河

前端培训学习就业前景怎么样?

小谷哥

cleanmymac2023免费绿色版下载安装教程

茶色酒

CleanMyMac2023

远程CG动画制作的神器:RayLink远程控制软件

RayLink远程工具

远程控制软件 远程办公软件 远控软件 远程桌面连接 RayLink

专访|开源之夏最佳质量奖 Apache RocketMQ Committer 黄章衡

Apache RocketMQ

#开源 消息列队

不足10人的创业团队,怎么在半个月内上线一个新产品?

LigaAI

创业 敏捷开发管理 创业公司 远程开发 12 月 PK 榜

什么是IT资产?如何保障IT资产安全?

行云管家

网络安全 数据安全 IT资产

Web前端培训机构有哪些?

小谷哥

TiDB集群安装TiDB Dashboard

TiDB 社区干货传送门

集群管理 管理与运维 故障排查/诊断

跟我学Python图像处理丨带你入门OpenGL

华为云开发者联盟

Python 人工智能 华为云 12 月 PK 榜

应用瓴羊Quick B,可以有效地提升企业的数据化分析能力

对不起该用户已成仙‖

linux高可用小知识点汇总-行云管家

行云管家

高可用 ha 双机热备

武汉大数据培训机构怎么样

小谷哥

想学习大数据怎么选择培训机构

小谷哥

通过TiOperator部署 TiDB

TiDB 社区干货传送门

实践案例 集群管理 管理与运维 扩/缩容 6.x 实践

开发任务都完不成,哪有空搞稳定性?先看看这13条建议|TakinTalks论道

TakinTalks稳定性社区

技术管理

为什么很多产品经理,做不了产品管理?

LigaAI

产品经理 敏捷开发 产品管理 产品功能 12 月 PK 榜

CorelDRAW2023永久和谐版本下载安装教程

茶色酒

CorelDraw2023

文盘Rust -- r2d2 实现redis 连接池

TiDB 社区干货传送门

开发语言

SpringBoot内置tomcat启动过程及原理

京东科技开发者

tomcat 后端 tomcat源码解读 编程‘ spring-boot

TiDB Operator部署TiDB集群的监控与告警

TiDB 社区干货传送门

监控 实践案例 集群管理 管理与运维 扩/缩容

FL Studio正式推出全新21版首发新版DAW(数字音乐工作站)工具

茶色酒

FL STUDIO20.9 FL Studio 21 FL Studio21

java程序员培训好就业吗

小谷哥

多样化功能助力企业精准决策,瓴羊Quick BI数据看板解析

对不起该用户已成仙‖

如何使用记事本编写 java 程序(从零开始学 Java 系列课程)

千锋IT教育

2022最新版SpringCloudAlibaba笔记,把微服务玩的出神入化

架构师之道

Java 微服务 架构师

RTS超低延时直播技术:保障大型赛事直播零时差互动

阿里云视频云

云计算 阿里云 世界杯

TiDB 走进东软集团,共建医疗数字化基石

TiDB 社区干货传送门

功能强大的国产API管理神器 Eolink,亲测好用

海拥(haiyong.site)

开发工具 API API测试

携手荣耀,出海正当时

荣耀开发者服务平台

开发者 App 出海 荣耀 honor

纷繁复杂见真章,华为云产品需求管理利器CodeArts Req解读

华为云开发者联盟

云计算 需求管理 华为云 12 月 PK 榜

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