高性能 Python 解释器 PyPy 支持 AArch64 架构
PyPy 官方宣布支持 AArch64 架构,它将 PyPy 的高性能 JIT 带入 AArch64 平台,也就是 64 位 ARM。现在 PyPy 一共支持 6 种架构,分别是 x86(32 和 64 位)、ARM(32 和 64 位)、PPC64 与 s390x。
PyPy 是一个兼容性强大的 Python 解释器,几乎是 CPython 2.7 与 3.6 的直接替代品。由于其集成的 JIT 编译器,速度很快,为了展示新 PyPy 的性能,此次官方公告中也进行了一次速度测试,如上图所示,在一组基准测试中比较了 PyPy 与 CPython 的性能,同时对比 x86_64 架构上 PyPy 的结果。
图中显示了 AArch64(hg id 2417f925ce94)上与 CPython(2.7.15)相比 PyPy 的速度提高,以及 x86_64 Linux 笔记本电脑上最新版本 PyPy 7.1.1 和 CPython 2.7.16 相比的速度。结果显示在大多数基准测试中,AArch64 上实现的加速与 x86_64 笔记本电脑上实现的加速效果相当。AArch64 上的 PyPy 相比 CPython 有 0.6x 到 44.9x 的加速,x86_64 上是 0.6x 到 58.9x。
需要注意的是,这里显示的结果是在 AWS 的 Graviton A1 机器上测量的,Graviton A1 是虚拟机,因此不适合进行基准测试。此外,此基准套件并不能够反映平均水平。
下面的图片比较了在 AArch64 与 x86_64 上实现的加速差距,也就是考察 PyPy 在 AArch64 上性能相比 x86_64 提高多少,它可以粗略地了解新移植版本 PyPy 的能力。
有三种结果:运行速度差不多、运行速度提高 2 倍,以及速度为 x86_64 的 0.5 倍。
官方表示该版本还有许多改进的空间,AArch64 带有大量的 CPU 寄存器,PyPy 后端是用 x86(32 位变体)编写的,它的寄存器数量非常少。官方认为可以在机器码方面进行改进,这可能对 AArch64 的影响大于对 x86_64 的影响。此外 AArch64 后端还有许多缺少的功能,这些功能目前使用昂贵的函数调用实现,而不是内联原生指令,可以进行改进。
详情查看:
https://morepypy.blogspot.com/2019/07/pypy-jit-for-aarch64.html
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
OSChina 周一乱弹 —— 这片城市都会属于你,而你属于我
Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @ tom_tdhzz:回归南方,朝阳大叔大口呼吸#今日歌曲推荐# 分享Marian Hill的单曲《Down》: 《Down》- Marian Hill 手机党少年们想听歌,请使劲儿戳(这里) @网页三贱客 :好看吗…… 去看吧, 夏目(@夏目Jane)去看了, 还不错呢 @夏目Jane :看个电影,来回热的不行啊!电影很不错,等待是值得的! 至少这次没人宣传国漫崛起来吸引大家去看电影了。 看看导演在说什么…… “我把他做的那个动画《打 打个大西瓜》放到看片里了,有兴趣的可以去看看。” 这么热的天里, 除了电影院, 还有那里能纳凉? @respon1518 :我在国博纳凉,你们呢? 有没有本身就是文物, 还能纳凉的? 还真记得见过, 阿尔及利亚罕西拉的一座罗马浴场在2000年后仍在使用, "2000年没换过的洗澡水." 还能去哪儿避暑? 去书城 大王(@罗马的王 )就这样 @罗马的王 :我在书城避暑 红薯(@红薯)就不一样了, @红薯 :如果我和你妈同时掉水里了,请先救你妈,我想在水里呆着凉快会 可是…… “可是去哪儿了?这都过了...
- 下一篇
Linux 的 32 位内核自 Meltdown 以来一直有问题
Linux 内核的 x86 32 位支持已经开始出现一些轻微的问题。大多数内核开发人员不再积极测试 x86-32,发行版供应商也开始放弃对 32 位的支持。其最新例子是,自 Meltdown 漏洞缓解措施以来,在过去一年中,出现在主线内核中的一些错误的、未定义的行为功能。 英特尔的 Meltdown 漏洞公布几个月后( x86_64 被缓解),Linux KPTI 支持 x86 32 位以试图解决这个问题(从 1 月份的公开到 7 月份的主流就绪),但事实证明,它结果暴露了一个 32 的错误。 内核页表隔离支持暴露了 x86 32 位上的 I/O TLB 映射问题。该原因是内核中未定义的行为,导致数据损坏、内核 Oopes/Panics 和自发重新启动。 据报道,KPTI 在 32 位上随机锁定或重新启动的错误报告至少可以追溯到去年 12 月。现在,Linux 5.3 Git 在 5.3-Rc2 标记之前就有了修复。 内核的 vmalloc 代码现在正在积极同步取消对系统中所有页表的映射,然后再重用这些区域,这将解决过去一年一直存在于崩溃 x86-32 内核上的 32 位未定义行为。这...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,CentOS7官方镜像安装Oracle11G