프로젝트 설명:
Node.js의 공식 RISC-V 버전을 기반으로, 버그를 수정하고 안정성을 향상시키면서, SG2042/Pioneer Box 하드웨어에서의 최적화를 수행하고, 관련 벤치마크 점수를 가능한 한 높입니다.
결과물 및 평가 요건:
- Node.js 소스 코드에 포함된 벤치마크 테스트 세트를, 본 대회의 테스트, 분석 및 최적화의 기준으로 사용합니다.
- Node.js v20.10.0에서 벤치마크 테스트를 실시하고, 그 결과를 최소한 하나의 주류 플랫폼(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