项目描述:
在 Node.js 官方 RISC-V 版本的基础上,修复 bug 提升稳定性的同时,基于 SG2042/Pioneer Box 硬件实施优化,尽可能高的提升相关 Benchmark 的分数。
产出及评分要求:
- 以 Node 源码中的 benchmark 测试集作为本次比赛测试、分析和优化的标准。
- 测试并整理 Node.js v20.10.0 上 benchmark 测试结果,并与至少一种主流平台 (ARM64/X64) 上相同 Node 版本 benchmark 测试结果进行对比和分析。
- 通过运行 node-benchmark-compare 工具来展示优化效果。
- 最终将综合参赛者所提交的 (1) 测试分析报告;(2) 取得优化效果的项目数量;(3) 单项优化幅度;(4) 综合优化幅度来评价胜负。
提交说明
- 提交仓库链接为 https://github.com/plctlab/rvspoc-s2306-node
- 请以 Pull Request 的形式,将结果提交到上述仓库中。
- 提交时,请详细说明复现所需要的软件环境,可以参照「验收说明」内默认软件环境做修改。
- 在比赛期间,所有经过优化过的内容的提交方式可以有:
- 二进制的形式
- 加密源码的形式(加密信息需通过邮件发送至 rvspoc@cyberlimes.cn)
- 源码形式
- 最终结果公布后,需对提交内容进行完整开源。
- 组委会会在比赛结束后(即 2024 年
2 月 16 日2 月 29 日以后),关闭赛题仓库的 Pull Request 通道,并开始对结果进行验收。
验收说明
- 验证平台为 SG2042,固定的硬件规格。
- 允许选手自行选择组委会能复现的操作系统以及其他软件环境。
- Node.js 版本使用当前 LTS 版本 v20.10.0,允许 backport 主线的优化内容。
- 更详细的优化评定权重(针对每个 benchmark 项)待定。
- 组委会会在条件 1 的基础上,使用如下软件环境,将经过多次跑分所产生的平均值作为基线,与选手优化过后的数据进行比较:
- Fedora 38,裸机环境
- Fedora 38 自带 GCC 13.2
- Node.js 版本选择 LTS v20.10.0
- 除 openssl 外均使用 Node.js 源码包内绑定的外部依赖
- openssl 使用 Fedora 38 自带的 3.0.8
- 使用默认 -O3 与 lto 优化,以及其他默认值
- 满足「产出及评分要求」所列出 4 条项目。
- 优化幅度最高者,夺冠。
- 根据赛题的实际优化进展,针对未考虑到的方面,随着比赛进程的推进可能会有调整,请保持对赛事网站的关注,最终解释权归属于比赛的赛题评审委员会。
知识产权及开源协议说明:
所有参赛结果要求开源,并提交至主办方指定仓库。参赛者(作者)持有作品的所有权。主办方鼓励参赛者将结果回馈贡献至 upstream。
相关资源
- 赛题演示直播回放 & 文档: plctlab/rvspoc:archives/2023/Docs/S2306