写点什么

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

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

关注

评论

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

泰山众筹系统开发技术分析 | 泰山众筹app开发 | 泰山众筹玩法介绍游戏规则

V\TG【ch3nguang】

ERP再解读:端点科技新一代ERP如何拓展传统ERP的边界

科技热闻

TDengine+OpenVINO+AIxBoard,助力时序数据分类

TDengine

时序数据库 ​TDengine

05. 机器学习入门1 - 动态规划

茶桁

人工智能 动态规划

HarmonyOS网络管理开发—HTTP与WebSocket

HarmonyOS开发者

IDEA插件版本升级和兼容新版本idea

华为云PaaS服务小智

云计算 软件开发 华为云

告别Netflix组件,拥抱SpringCloudAlibaba(B站狂转50k的文档)

程序员万金游

SpringCloud Alibaba spring-cloud #java java 架构

RTC已成为金融数字化转型的制胜之利器!

X2Rtc

音视频 RTC 互联网金融

九章云极DataCanvas公司获评中国信通院两大AI标准核心参编单位

九章云极DataCanvas

如何让 Llama2、通义千问开源大语言模型快速跑在函数计算上?

阿里巴巴云原生

阿里云 云原生

终端云的探索与研究

天翼云开发者社区

云计算

校招零Offer要不要先找实习?

王磊

Java

KubeCon China 2023|拥抱开源,为世界提供更好的选择

Geek_2d6073

软件测试/测试开发丨Python文件操作 学习笔记

测试人

Python 程序员 软件测试 测试开发 文件操作

技术革命——云计算结合人工智能

天翼云开发者社区

云计算

蓝易云:常见HTTP状态码的错误有哪些?对应的解决方案是什么?

百度搜索:蓝易云

云计算 Linux 运维 HTTP 云服务器

蓝易云:centos7安装etcd教程.

百度搜索:蓝易云

云计算 Linux centos 运维 etcd

蓝易云:搭建ubuntu容器内C/C++开发调试环境

百度搜索:蓝易云

c++ 云计算 Linux ubuntu 运维

筑牢国云智算底座,繁荣大模型创新生态!

天翼云开发者社区

人工智能 云计算

为什么低功耗引擎是iot设备的必要项

FN0

低功耗模式 低功耗

OpenHarmony父子组件单项同步使用:@Prop装饰器

OpenHarmony开发者

蓝易云:Ubuntu搭建APM固件编译环境教程!

百度搜索:蓝易云

云计算 Linux ubuntu 运维 APM

蓝易云:FastDFS高可用集群部署安装!

百度搜索:蓝易云

云计算 Linux 运维 fastdfs 云服务器

为中国重新定义流程挖掘,望繁信科技发布「数字北极星3.0」

ToB行业头条

泰山众筹SUN4.0模式开发重燃卖货的新航标

V\TG【ch3nguang】

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