Lec 01 - “龙芯杯”大赛介绍
大赛简介
“龙芯杯”全称为全国大学生系统能力大赛(National Student Computer System Capability Challenge),因此简称为 NSCSCC。 大赛的核心目标是基于指定的指令集构建完整的计算机系统,具体而言分为硬件系统搭建以及系统软件移植两个部分:
- 硬件系统
- CPU 微结构设计与性能调优
- 外设控制器与片上互联结构设计
- 软件系统
- 固件适配移植
- 操作系统适配移植
大赛最终的评判标准包括但不限于:
- CPU 的运行性能
- 技术自主性
- 计算机系统的完整性与稳定性
信息
“龙芯杯”又称为系统能力大赛的“CPU 赛道”(此外还有 OS 赛道和编译赛道),因此软件能力往往被忽略。但实际上若想启动 Linux 操作系统,拿到较好名次,需要大家对于软硬件协同与系统软件方面有一定的了解和实践经验。
大赛赛制
大赛包含个人赛、团队赛和 LoongArch 挑战赛 3 个赛道:
名称 | 参赛人数 | 指令集 | 如何进入决赛 | 仿真平台 |
---|---|---|---|---|
个人赛 | 1 | MIPS | - | - |
团队赛 | 2~4 | MIPS | CPU 具有较好性能 | vivado |
LoongArch 挑战赛 | 2~4 | LoongArch | 启动 Linux | chiplab |
竞赛小组关注的重点是团队赛与 LoongArch 挑战赛,并且由于 LoongArch 是龙芯自主推出的指令集,我们推测大赛未来的重点将会向 LoongArch 挑战赛转移,因此更加推荐大家参加 LoongArch 挑战赛。关于大赛赛制细节,请参考大赛官网。
团队赛
对于团队赛而言,整个比赛分为初赛和决赛两个阶段:
- 初赛阶段:参赛团队主要进行 CPU 核内设计,需要通过功能测试、性能测试和系统测试 3 项测试,大赛组委根据以上测试结果进行打分,按照排名决定进入决赛名单
- 决赛阶段:参赛团队主要进行 CPU 核的进一步性能调优、SOC 搭建以及系统软件移植,需要通过性能测试、制作系统运行展示视频、准备答辩以及进行现场指令添加,最终决赛名次分数包含性能与主频、现场指令添加以及系统展示答辩 3 部分分数
注意
一般从初赛提交到决赛提交只有大约 2 周时间,因此在前期准备时就应该包含决赛内容,如果仅用 2 周时间准备决赛是有些紧张的。
信息
参考 2022 年“龙芯杯”团队赛的获奖情况,所有进入决赛的队伍最终都获得了一/二/三等奖,因此可以认为进入决赛便意味着获奖。进入决赛的队伍性能分数在 1 ~ 89.41 不等,可以看到团队赛进入决赛实际上相对容易一些。但是若想冲击更高的奖项,则变得有些困难,从 2022 年的情况来看,想要获得二等奖至少要能够稳定运行 Linux,并且在微结构设计上有让人眼前一亮的特点。
LoongArch 挑战赛
LA挑战赛没有初赛,时间上分为两部分,前期自行准备和决赛比拼。
- 进入决赛的要求:正常启动Linux操作系统,并运行操作系统内指定的性能测试程序集,得到性能得分。提交的性能测试成绩作为性能分,占总分数的70%。
- 决赛阶段:进行系统展示,展示运行Linux或其他操作系统及其上面的应用程序的实际效果;汇报设计思路。这部分占总分数的30%。
注意
和团队赛不同之处在于:
- LA挑战赛的性能测试是在操作系统环境(Linux)当中的;团队赛的性能测试是在裸机上进行的。
- LA挑战赛要求必须启动Linux,这是得到性能测试分数的前提,也是系统展示分数的依据;团队赛的决赛展示可以启动的操作系统有很多,比如ucore、Linux等,启动不同的操作系统得到不同的系统展示分数。
信息
LA挑战赛是2022年新设置的赛道,目前参赛队伍较少,在微架构上卷得没有团队赛那么厉害。
但是困难之处在于启动Linux,只要成功启动了Linux,基本上决赛就能获奖。所以为了能够获奖,我们可以把重心由优化微架构早点转向启动Linux。如有余力再进行微架构的优化。(也可以进行双线程作战,有负责微架构优化的队员,有负责调内核的队员,有稳定版本即可开始内核启动,仅供参考)
加分情况
根据计算机科学与技术学院关于推荐优秀应届本科毕业生免试攻读研究生的实施细则(2022年修订),“龙芯杯”属于学科竞赛类奖励,与数学建模等属于同一类,因此它们取得分最高项加分;与 ACM、IGEM、机器人竞赛属于不同类,加分可累加。具体奖项对应加分分数为:
奖项 | 加分分数 |
---|---|
一等奖 | 2分 |
二等奖 | 1.8分 |
三等奖 | 1.5分 |