通过改写微码,在 AMD Zen 系列 CPU 加速运行 RISC-V 二进制程序
项目描述
当前 AMD Zen 系列 CPU(如 EPYC 9004 系列)中已开始使用 RISC-V 处理器作为协处理器,能用于加速特定任务。AMD Zen 系列处理器的微码(Microcode)可以改变 CPU 指令执行方式,是一种修改 CPU 低级行为的软件级固件补丁,适合于优化指令执行,以及修改特定指令行为。Zentool 是由 Google 安全研究团队开发的一个工具套件,旨在分析、修改和生成适用于 AMD Zen 系列处理器的微代码补丁。
产出以及评分要求
-
微码补丁:完成 Zen 系列 CPU 的微码修改, 使其能 直接运行 RISC-V 二进制程序, 如果不能直接运行, 则需要基于修改的微码, 达到一定程度的 RISC-V 二进制程序加速。
-
性能优化测试:把 Coremark/Dhrystone 等 Benchmark 应用程序对应的 RISC-V 二进制程序运行在 Zen 系列 CPU。 对比在 Zen 系列上通过模拟器模拟 RISC-V 运行, 应该有明显的性能提升。
-
文档撰写:记录针对微码的修改思路,RISC-V 二进制程序的加速思路,测试流程,测试结果。
注意事项
请确保遵循相关的开源协议和版权规范。 参赛者需自行准备开发环境,并确保所有必要的工具和库都已安装。
验证平台
- AMD Zen 系列
提交说明
- 提交仓库为 https://github.com/rv2036/rvspoc-S2502-Zens
- 请以 Pull request 的形式,将结果提交到上述仓库中。
- 以下条件中的「PR」均指代相对应于条件 1 仓库链接的 Pull request。
- 在创建 PR 时,请提供用于复现移植及优化的必要内容,包括但不限于:
- 完整的源码或二进制文件 *
- 配置文件(若有)
- 额外的库文件(若有)
- 额外的补丁(若有)
- 其他对提交进行验证时所必要的内容
- 在创建 PR 时,请同时创建说明文件,写明用于验证优化成果的详细信息,包括但不限于:
- 是否限定验证平台,若限定,请注明对应 OS 名称、版本和安装说明
- 是否限定验证平台的依赖库,若限定,请注明相关信息及安装说明
- 程序编译及安装步骤
- 程序运行步骤
- 程序运行结果
- 其他对提交进行验证时所必要的信息
- 此题为优化类赛题
- 针对条件 3 的第一条 * ,若选手在比赛时间截止前仅提供了完整的二进制文件(以下简称「二进制」)以用于结果的验证,
则选手必须在之后通过 PR 的方式完整提交所有源代码才算完成本赛题,且
- 此提交的完整源代码要 100% 符合二进制所用源代码。
- 组委会不会将比赛时间截止后所提交内容的验证结果计入比赛成绩,仅验证其是否匹配对应二进制。
- 针对条件 3 的第一条 * ,若选手在比赛时间截止前仅提供了完整的二进制文件(以下简称「二进制」)以用于结果的验证,
则选手必须在之后通过 PR 的方式完整提交所有源代码才算完成本赛题,且
- 组委会会在比赛结束后(即 2025 年 6 月 7 日 (AoE) 后),开始对提交内容进行验证,自此时间点后新增的 PR 内容不计入比赛成绩。
验收说明
- 6 月 7 日后由 RVSPOC 组委会公布。
- 由于赛题的开放性和软件的复杂性,赛题发布时可能存在未解释或需要修正的部分。针对未考虑到的方面,随着比赛进程的推进可能根据选手的反馈会有调整,请保持对赛事网站的关注。最终解释权归属于比赛的赛题评审委员会。
知识产权及开源协议要求
所有参赛结果要求开源,并提交至主办方指定仓库。参赛者(作者)持有作品的所有权。主办方鼓励参赛者将结果回馈贡献至 upstream。