【Poster】RISC-V SIG 组成立一周年:openGauss 逐步落地 RISC-V 硬件

RISC-V SIG 组成立一周年:openGauss 逐步落地 RISC-V 硬件

作者:谭小凡、黄吉、张松松、孙敏、杨延玲

引言

openGauss RISC-V SIG 致力于推动开源关系型数据库 openGauss 与开放指令集架构 RISC-V 的深度融合。自成立以来,SIG 组采用由点到面、由简入繁的策略,先后完成了 openGauss 轻量版与全量版在 openEuler、Fedora 等主流操作系统上的适配,攻克了底层汇编、向量指令集等技术难题,并积极融入全球 RISC-V 生态,为 openGauss 在新兴硬件平台上的应用奠定了坚实基础。

从零开始:openGauss 5.1.0适配

一举夺旗:openGauss 6.0.0 轻量版

团队选择 openGauss 6.0.0 轻量版 作为起点,在 openEuler for RISC-V 系统上完成了初步适配。

  • 攻克编译难题:通过将依赖项替换为系统软件包,显著降低了移植门槛。
  • 实现开箱即用:提供 systemd 服务安装脚本和一键式测试脚本,极大简化了部署和验证流程。

紧跟主线:openGauss 7.0.0全量版

首次基于原生编译链,成功适配 openGauss 7.0.0-RC1 全量版,完整保留了企业级核心功能。

  • RISC-V 汇编代码适配:团队基于 RISC-V 官方指令集规范,结合 GCC 嵌入式汇编特性,完成了对底层汇编代码的重构。通过严谨的验证与调试,确保了关键代码在 RISC-V 架构上的功能完备与高效执行。

  • RISC-V Vector 指令集集成:团队遵循 RISC-V Vector 扩展规范,深入研究向量化运算指令集等相关文档,结合支持向量扩展的 CPU 硬件环境,实现数据库底层算法的向量化加速,为后续性能优化提供技术储备。

  • OpenSSL 3.x 兼容性适配面对OpenSSL 1.x 接口逐步废弃的现状,团队梳理官方文档以确保openGauss 在 OpenSSL 3.x环境下稳定编译与运行,避免因依赖版本迭代导致的兼容性风险。

饮水思源:SIG组成果主线化

团队向 openGauss 主线分支提交了以下代码贡献:

  • RISC-V 适配:旨在为 openGauss 提供 RISC-V 架构的适配代码,提供汇编函数支持、RISC-V CRC 计算加速(基于RVV)、datavec 的 RISC-V 向量计算加速(基于 RVV)。
  • OpenSSL3 兼容适配:在 openGauss 原有的 OpenSSL2 代码基础上,兼容并适配 OpenSSL3 代码。
  • LLVM-17 兼容适配:在 openGauss 自身的 LLVM-12 代码基础上,兼容并适配 LLVM-17 代码。
  • third_party 软件包兼容适配: DCF、esdk_obs_api、pljava、masstree、kerberos、esdk_obs_api 等。

SIG组里程碑

  • 2024年6月:openGauss RISC-V SIG 成立:openGauss RISC-V SIG 正式成立,PLCT实验室倾力投入,共筑 RISC-V 开源软件生态 | openGauss社区
  • 2024年10月:完成 openGauss5.1.0-lite 在 RISC-V 平台的适配
  • 2024年11月:完成 openGauss6.0.0-lite 在 RISC-V 平台的适配
  • 2024年12月:openGauss6.0.0-lite 的适配成果成功合入到 openEuler 操作系统的 openGauss 软件包仓库
  • 2025年2月: 将 openGauss6.0.0-lite 成功移植到 Fedora 操作系统
  • 2025年6月: 为 openGauss5.1.0-lite 和 openGauss6.0.0-lite 提供 RISC-V 平台的容器镜像
  • 2025年6月: 初步完成 openGauss7.0.0 全量版在 RISC-V 平台的适配,支持 MOT 和 datavec 向量计算加速

SIG组数据

核心贡献者简介

  • 黄吉,就职于中国科学院软件研究所,软件开发工程师。个人gitee主页:@XiaoXiaoXiaoJi
  • 谭小凡,就职于中国科学院软件研究所,软件研发工程师。个人gitee主页:@xfan1024
  • 张松松,就职于中国科学院软件研究所,RISC-V开发工程师。个人gitee主页:@U2FsdGVkX1
  • 孙敏,就职于上海苦芽科技有限公司,软件开发工程师
  • 杨延玲,就职于中国科学院软件研究所,负责社区运营工作
  • 罗云翔,就职于中国科学院软件研究所,PLCT实验室测试团队主管
  • 郑景坤,就职于中国科学院软件研究所,PLCT实验室丁丑小队负责人
  • 周淑颖,就职于广东跃昉科技有限公司,任软件开发工程师

未来工作

  • 内核及基础算子RVV优化。
  • Debian/Ubuntu发行版适配。
  • Sifive、SpaceMit新出开发板适配与调优。

加入我们