プロジェクトの説明:
Node.jsの公式RISC-V版を基に、バグを修正して安定性を向上させつつ、SG2042/Pioneer Boxハードウェアでの最適化を行い、関連するベンチマークのスコアを可能な限り高めます。
成果物および評価要件:
- Node.jsのソースコードに含まれるベンチマークテストセットを、本コンテストのテスト、分析、および最適化の基準として使用します。
- Node.js v20.10.0上でベンチマークテストを実施し、その結果を少なくとも1つの主流プラットフォーム(ARM64/X64)上の同じNode.jsバージョンのベンチマークテスト結果と比較・分析します。
- 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を使用し、マスターブランチの最適化内容のバックポートが許可されます。
- 各ベンチマーク項目に対するより詳細な最適化評価の重みは、後ほど決定されます。
- 主催者は、条件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つの項目を満たす必要があります。
- 最適化の幅が最も大きい参加者が優勝します。
- 競技の実際の最適化進行状況に応じて、未考慮の側面については、競技の進行に伴い調整される可能性がありますので、競技ウェブサイトに注目し続けてください。最終的な解釈権は競技の課題審査委員会に帰属します。
知的財産権およびオープンソースライセンスに関する説明:
すべての参加成果はオープンソースとして公開し、主催者が指定するリポジトリに提出する必要があります。参加者(著者)は作品の全ての権利を保有します。主催者は、参加者が成果をアップストリームにフィードバックして貢献することを奨励します。
Resources
- Live Replay & Documents (中国語): plctlab/rvspoc:archives/2023/Docs/S2306