关于risc-v:openEuler-RISCV-的-Firefox-性能大升级最高-40-倍性能提升

31次阅读

共计 2147 个字符,预计需要花费 6 分钟才能阅读完成。

RISC-V SIG 择日行将公布 openEuler RISC-V 22.03 V2 版本镜像。本次发版会提供带有 SpiderMonkey JIT 编译反对的 Firefox 最新版本和带有 LLVMpipe 优化的 Mesa 最新版本装置源供使用者选装测试,预期图形界面使用性能会取得可观优化。

新版本的 Firefox 开启 JIT 后,通过 Kraken benchmark 测试,JavaScript 程序的运行速度晋升最高达到解释执行的 40 倍,是目前“RISC-V 畛域最快的 Firefox”。

Firefox RISC-V 开启 SpiderMonkey JIT 优化​

Mozilla Firefox 是自由软件畛域十分重要的存在。在过来一年,RISC-V SIG 胜利将 Firefox 适配在 openEuler RISC-V 上,在目前次要的 RISC-V 开发版和测试环境中,Firefox 能够胜利关上图形界面,并且能实现网页浏览,验证登录,收发邮件,播放视频等根底性能,满足用户的根本应用需要。

然而旧版本适配的 Firefox 在关上带有 Javascript 脚本的网站上运行速度非常迟缓。这是因为其中的 Javascript 引擎 SpiderMonkey 是解释器执行。在 Firefox 中,SpiderMonkey 次要依附 JIT 编译器减速 Javasrcipt 代码的执行速度,短少 JIT 的 Firefox 与 Chrome 浏览器 在 Javascript 执行性能上相比还存在着一个数量级的差距。

为了推动 Firefox RISC-V 的倒退,软件所 PLCT 实验室于 2022 年下半年着手进行了 SipderMonkey 在 RISC-V 架构的 JIT 移植工作。目前,该补丁曾经提交给 Mozilla 社区。

SpiderMonkey JIT 移植的工作如下:

  • Step1: RISCV64 根本框架搭建
  • 移植工作初始化,间接复制 none 文件夹下文件;
  • 在 macro-assembelr-riscv64.h/cc 文件中定义须要的 macro-assembler 函数;
  • Step2: 实现汇编器的移植
  • 实现汇编器移植,Javascript 胜利编译 runtime function (js 运行时函数);SpiderMonkey 能够执行 Hello world 程序;
  • 实现 disassembler/Simulator (反汇编器和模拟器) 的移植,能够不便在 x86 的机器上调试 ;
  • 逐个实现 macro-assembler 中定义的函数并通过全副 jittests 测试 ([17425| 0| 0| 0] 100% ===>| 240.6s) ;
  • Step3: 提交至上游
  • 提交至上游 https://bugzilla.mozilla.org/…

RISC-V SIG 提前将软件所 PLCT 实验室开发的 SpiderMonkey 的 JIT 补丁修复并合并在本次降级的 108.0.1 版本 Firefox 中,并且在 Qemu、Visionfive1 和 Unmatched 等设施上进行了 Kraken benchmark 测试工作:

通过测试,开启 JIT 之后,JavaScript 程序的运行速度晋升最高达到解释执行的近 40 倍,其中以图片渲染模块晋升最为显著, 高斯含糊算法的执行速率晋升在 170%~270% 之间。绝对于其余发行版,openEuler RISC-V 率先领有了 RISC-V 畛域最快的 Firefox。

目前实现的 JIT 补丁根本蕴含了全副相干性能,并且开启 JIT 的 Firefox 在 openEuler RISC-V 运行晦涩。

与此同时,RISC-V SIG 将继续跟进 PLCT 实验室对于实现 wasm 的 memory64 个性和调研 SpiderMonkey 是否须要反对 riscv32 等相干工作,并且进行性能观测。

Mesa 引入 LLVMpipe JIT 反对​

罕用的 RISC-V 开发环境 QEMU 与市面上各种开发板本身很少具备图形设施或能力,常常须要依附 LLVMpipe 进行软件渲染。缺失 JIT 加持的 LLVMpipe 性能乏善可陈,QEMU 上应用 glxgears 齿轮测试常常只有每秒 5 帧。桌面的整体晦涩度也受图形性能掣肘停留在一个比拟低的水准。

为解决这个长期的性能短板,RISC-V SIG 为新降级的 22.3.2 版本 Mesa 引入了软件所基于 LLVM Orcjit 为 LLVMpipe 增加新的 JIT 引擎并反对 RISC-V 的优化补丁。

与每秒 5 帧的 glxgears 齿轮测试比照,增加补丁的 LLVMpipe 可能输入大抵与测试机显示器同步的 60 帧左右。对于 QEMU 和没有 GPU 的开发板硬件,Firefox 网页浏览和视频播放更加晦涩,可见性能失去明显改善。

目前带有 JIT 的 Firefox 和 Mesa 曾经进入测试阶段,感兴趣的搭档能够在最新的镜像中更新体验,欢送大家提供测试评论,独特助力晋升 RISC-V 桌面生态体验。

  • openEuler RISC-V 22.03 V2 版本镜像:https://mirror.iscas.ac.cn/op…

RISC-V SIG 一直推动 RISC-V 桌面软件环境的欠缺和优化,如果你对 RISC-V 前景看好并且想奉献本人的一份力量,这里总会有你的地位,快点退出咱们吧!

对于作者​

杨延玲,中科院软件所 PLCT 实验室实习生,欧拉开源社区 RISC-V SIG 成员,目前在温州大学读研二,负责帮助 RISC-V SIG 和 ROS SIG 的日常经营。

正文完
 0