Challenge Description
Implement bugfixes and optimization on upstream Node.js for RISC-V, as well as platform-specific optimizations for SG2042/Pioneer Box, optimising benchmark results as much as possible.
Rubrics
- Use the benchmark testsuite in Node.js’s source tree as the basis for benchmarking, profiling, and optimization.
- Produce benchmark run results on Node.js v20.10.0, comparing and analysing said results against at least one mainstream platform (ARM64/x86_64) running the same Node.js version.
- Demo optimization results using node-benchmark-compare.
- Final results will be assessed in the form of (1) test analysis report, (2) number of testcases successfully optimised, (3) optimization delta of each testcase, and (4) overall optimization delta.
Submission
- Please submit your completed project at https://github.com/plctlab/rvspoc-s2306-node as a pull request.
- Please outline the software environment needed to run your submission in your pull request body.
- During the competition, all optimised artifacts may be submitted as the following:
- Binary files.
- Encrypted code (please send decryption details to rvspoc@cyberlimes.cn).
- Source code.
- After the results are announced, you will need to publish source code for all submissions.
- The committee will close pull request submissions after the challenge’s run time (on
February 16February 29, 2024) and commence assessment of submissions.
Assessment
- The assessment platform for this challenge is SG2042 (the committee will decide on a specific setup).
- Participants may choose their own operating system and software setups, so long as the committee will be able to reproduce said setup.
- Node.js version used for assessment is the LTS version v20.10.0. Participants may backport mainlined changes.
- Rubrics for weighted optimization assessment (for each benchmark items) will be announced soon.
- The committee will benchmark and average the results from the following software configuration, running on the hardware platform as outlined in item 1, as a baseline for assessing the optimized submissions:
- Fedora 38 on baremetal.
- GCC 13.2 provided by Fedora 38.
- Node.js LTS v20.10.0.
- All bundled dependencies in Node.js, with the exception of OpenSSL.
- OpenSSL version 3.0.8 provided by Fedora 38.
- Uses the default -O3 and LTO optimization flags, all other configurations are upstream defaults.
- The submissions must satisfy all four requirements outlined in the assessment rubrics.
- The most optimized submission wins.
- The details of the challenges may change during the competition as we optimise and clarify the rubrics and instructions. Please keep an eye out for updates. The assessment committee reserves the right to final interpretation of all rubrics and instructions.
Notice on Intellectual Properties and Open Source Licenses
All challenge submissions must be open source and committed to a specified repository. The participant(s) (author) holds rights to their work. The host encourages contributing any changes made to the upstream.
Resources
- Live Replay & Documents (Chinese): plctlab/rvspoc:archives/2023/Docs/S2306