查看: 402|回复: 0
收起左侧

openEuler RISC-V 的 Firefox 性能大升级,最高 40 倍性能提升

[复制链接]

  离线 

  • TA的每日心情
    拍拍
    2022-10-3 08:50
  • 签到天数: 1 天

    [LV.1]

    发表于 2023-1-12 11:22:10 | 显示全部楼层 |阅读模式

    有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    本帖最后由 魏定国 于 2023-1-12 11:21 编辑

    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/show_bug.cgi?id=1800431

    RISC-V SIG 提前将软件所 PLCT 实验室开发的 SpiderMonkey 的 JIT 补丁修复并合并在本次升级的 108.0.1 版本 Firefox 中,并且在 Qemu、Visionfive1 和 Unmatched 等设备上进行了 Kraken benchmark 测试工作:
    国内芯片技术交流-openEuler RISC-V 的 Firefox 性能大升级,最高 40 倍性能提升risc-v单片机中文社区(1)

    经过测试,开启 JIT 之后,JavaScript 程序的运行速度提升最高达到解释执行的近 40 倍,其中以图片渲染模块提升最为显著, 高斯模糊算法的执行速率提升在 170%~270%之间。相对于其他发行版,openEuler RISC-V 率先拥有了 RISC-V 领域最快的 Firefox。
    国内芯片技术交流-openEuler RISC-V 的 Firefox 性能大升级,最高 40 倍性能提升risc-v单片机中文社区(2)
    目前实现的 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 的优化补丁。

    国内芯片技术交流-openEuler RISC-V 的 Firefox 性能大升级,最高 40 倍性能提升risc-v单片机中文社区(3)

    与每秒 5 帧的 glxgears 齿轮测试对比,添加补丁的 LLVMpipe 能够输出大致与测试机显示器同步的 60 帧左右。对于 QEMU 和没有 GPU 的开发板硬件,Firefox 网页浏览和视频播放更加流畅,可见性能得到明显改善。

    目前带有 JIT 的 Firefox 和 Mesa 已经进入测试阶段,感兴趣的伙伴可以在最新的镜像中更新体验,欢迎大家提供测试评论,共同助力提升 RISC-V 桌面生态体验。



    RISC-V SIG 不断推动 RISC-V 桌面软件环境的完善和优化!







    上一篇:开放麒麟 openKylin 0.9.5 版本发布:新增支持 ARM 和 RISC-V 架构,桌面 / 后台 / 视频加速全面改进
    下一篇:基于高性能RISC-V芯片的OpenHarmony标准系统平台发布
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

    RISC-V单片机中文网上一条 /2 下一条



    版权及免责声明|RISC-V单片机中文网 |网站地图

    GMT+8, 2024-11-6 08:06 , Processed in 0.400573 second(s), 49 queries .

    快速回复 返回顶部 返回列表