大家好,这是 PLCT Lab 第四年公开实验室在 RISC-V 开源生态系统中的 Roadmap。在 2023 年我们将会继续加大在工具链、虚拟机、模拟器上对 RISC-V 的支持力度。在 GCC、LLVM、QEMU、Mozilla、AOSP、openEuler 等开源项目的投入会继续加大。
同时我们很高兴地宣布,中科院软件所在2023年新立项了 RUYISDK 项目,目标是大大简化目前 RISC-V 开发人员在环境配置、开发、测试、调试、分发等过程的琐碎和痛苦的工作,将更多的精力聚焦在研发内容本身。
在2023年PLCT实验室(含TARSIER团队)希望能够达到以下关键目标:
- 设计开发 RUYISDK, 并围绕 RUYISDK 开源项目形成用户和开发者社区,为后续长期维护夯实基础。
- 准备好 RISC-V 超算集群所需要的各类软件栈;搭建超过 1024 个计算核心的演示集群,为世界超算 TOP500 做第一步准备。
- 进一步扩大 RISC-V 架构上支持的软件规模;阶段性完成 .NET/Mono、LuaJIT、Box64 等在 RISC-V 上的移植工作。
中科院软件所(ISCAS)从2022年下半年开始筹备 RUYISDK 的建设,目前已经完成了团队的初步组建,计划用三年时间为 RISC-V 开发者提供一个完整的、全家桶式的全功能开发环境。 RUYISDK 的目标有:
- 开发者购买了(几乎)任何一款 RISC-V 开发板或模组,都可以通过 RUYISDK 系统获得硬件资料说明、固件/软件更新、调试支持等。
- 开发者可以指定任何常用的 RISC-V 扩展指令集架构组合, 都可以通过 RUYISDK 系统生成客户所需的操作系统、工具链、语言执行环境(运行时或虚拟机)、计算库、应用框架等。RUYISDK 将完全支持 Vector 0.7.1 和 RVP 0.5.2 等已经大规模硅化的草案标准(or 厂商定制扩展)。
- 培育运营一个活跃全面的开发者交流社区。
欢迎所有对 RISC-V 以及开源工作感兴趣的小伙伴加入我们。随时可以发邮件到 "吴伟 [email protected]" 询问。 同时也招聘修包和开发人员,没有人数限制。
由于大部分目标都是 2022 年和 2021 年的遗留项目,详细的项目介绍略。感兴趣的读者请参考过去两年的路线图文档。
- .NET/Mono:完成带JIT的移植,达到可用状态。
- Box64: 完成带有JIT的支持。 完成支持,集成进入 RUYISDK。
- LuaJIT: 完成JIT支持,收尾。 完成支持,集成进入 RUYISDK。
- OpenJDK/RV32G: 完成对C2的调试。
- OpenJDK8/RV64GC: 完成 backporting。
- PTS: 2023Q3 上线运行。
- DynamoRIO: 完成支持,集成进入 RUYISDK。
- Valgrind: 完成支持,集成进入 RUYISDK。
- GHC: 加速 RISC-V 的适配和 bug 修复。
- Keystone Engine: 将其 vendor 的 LLVM 更新到支持 RISC-V 的新版本。完成支持,集成进入 RUYISDK。
- LLVM:增加 RISC-V PE/COFF writer 支持
- SBCL (Steel Bank Common Lisp),ROS1 依赖项:增加 RISC-V支持
- Mimick,ROS2 依赖项:增加 RISC-V支持
关键目标
在2022年PLCT实验室希望能够达到以下关键目标:
-
准备好RISC-V笔记本电脑需要的软件系统,使得流行的Linux发行版和常用的OA软件、开发工具可以流畅运行在RISC-V笔记本上。 【结果:达到预期目标。 LibreOffice、 Chromium、 Firefox、 OpenJDK、 NodeJS 等都已经支持或进行了速度提升。】
-
完成一半以上「最后5%」的常用开源软件在 RISC-V 上的移植和适配工作。 【结果:WIP。 我承认在项目立项的时候对于「最后5%」的规模的评估体现了我对长尾现象的无知:随着工作的推进,我们遇到了更多之前未曾分析到的软件移植需求。新增的软件包需求都已经纳入到今年和后续的路线图中。】
-
通过 Tarsier Project 组建一支 RISC-V 软件测试队伍,为 RISC-V 生态中开源软件的稳定性和软件质量提供保证。 【结果:达到预期目标。TARSIER伙伴们交出了一份出色的答卷。】
具体目标
-
为 RISC-V 笔记本电脑优化的操作系统及常用软件: 【达到预期目标。】
-
RISC-V CI Infrastructure for Open Source Communities: 【CI Farm 达到预期目标; PTS 将会继续 Delay 到 2023Q3 左右。】
-
LibreOffice:【完成,已经 upstream。】
-
Python Wheels for RISC-V: 【未完成(未开始)。我们持续招募实习生完成此项任务,欢迎感兴趣的同学联系我们。】
-
DartVM: 【Google的Dart团队实现了对 RISC-V 的初步支持。】
-
Valgrind: 【推进中,尚未完全支持 RISC-V。】
-
SpiderMonkey: 【达到预期目标,实现了 RV64GC 的 JIT 支持,并且已经被 Mozilla upstream 接收。】
-
DynamoRIO: 【推进中,较缓慢。与 RIVOS 协作。2023年需要加大力度。】
-
LuaJIT: 【完成了解释器支持,JIT 的支持尚未完成。】
2022年的改进工作
-
V8: PLCT维护的被动式CI持续稳定提供2小时内regression发现,V8小队提供了稳定的保障。
-
Node.js: 稳定支持。
-
Chromium Browser: 在 openEuler RISC-V 等 Linux 发行版上提供了 rpm/deb 安装包并长期更新。未纳入PTS进行跟踪。尚未完成 upstream。
-
Firefox: JS 引擎的 JIT 支持合入。在 openEuler RISC-V 等 Linux 发行版上提供了 rpm/deb 安装包并长期更新。未纳入PTS进行跟踪。
-
GCC: 除 Gold Linker 的 RISC-V 支持未开展之外,另外6项目标均完成。
-
Clang/LLVM: Flang 支持尚未完成。
-
OpenJDK: 向 uptream 提交了多份 RISC-V 相关特性支持补丁。 尚未完成 RV32GC 的 C2 JIT 实现(持续捉虫)。
-
Chisel: 持续支持改进。
-
OpenCV: 持续支持改进。
-
openEuler RISC-V: 援引 openEuler Summit 2022 的结论: 「在 RISC-V 架构上, openEuler 已经率先迈入国际先进行列。」
-
来自社区的更多建议:全家桶版本升级成了RUYISDK;在GCC上更多精力的支持了RVV;其它项目许愿鸽了/未完成(自动滚入2023年路线图)
-
教育、培训、出版物: 完成超过100名实习生的培养,新增至少5名LV4+,新增15名 Senior 实习生。 书籍出版集体鸽了。
只要感兴趣就可以给我发邮件: "吴伟 [email protected]"