这里总结了我在PLCT实验室做的有关RISCV测试测评方向的工作,也可以作为新员工入门的热身训练。
主要掌握RISCV GNU Toolchain,llvm,OpenJDK for RISCV的构建和回归测试。
也可以参考孙同学的整理:https://github.com/sunshaoce/learning-riscv/blob/main/2/2.md
另外,官方github README和官网的start guide都是很好的参考。
- 构建zfinx分支并运行回归测试
https://github.com/mollybuild/RISCV-Measurement/blob/master/run-riscv-gnu-toolchain-testsuite.md
- 分别构建B、K、V扩展的分支,并运行回归测试
- 构建RISCV LLVM并运行回归测试
https://github.com/mollybuild/RISCV-Measurement/blob/master/Build-RISCV-LLVM-and-run-testsuite.md
- 在LLVM test-suite中添加测试用例
【TODO】
- 使用RISCV GCC/LLVM编译小程序并在模拟器上运行
【TODO】
- OpenJDK for RISCV的构建
【Java on RISC-V】交叉编译OpenJDK11 for RV32G(ZERO VM)
https://zhuanlan.zhihu.com/p/344502147
我自己对这个过程的复现:
https://github.com/mollybuild/RISCV-Measurement/blob/master/run-OpenJDK%20for%20RISCV.md
这一块工作主要是要掌握常用的benchmark:Embench, Dhrystone, fpmark, linpack, whetstone, coremark
【TODO】
https://github.com/mollybuild/RISCV-Measurement/blob/master/run-Embench-on-rv32Linux-on-Qemu.md
SPEC CPU测试中用到的config配置可以参考:https://github.com/mollybuild/RISCV-Measurement/tree/master/SPEC-CPU-Config (其中硬软件信息可以忽略,只是一个模板)
- SPEC CPU2000 在RISCV64平台上的安装和运行
https://github.com/mollybuild/RISCV-Measurement/blob/master/Run-SPEC-CPU2000-on-Unmatched.md (使用GCC编译)
https://github.com/mollybuild/RISCV-Measurement/blob/master/En-Run-SPEC-CPU2000-on-Unmatched.md (英文版)
- SPEC CPU2006 在RISCV64平台上的安装和运行
https://github.com/mollybuild/RISCV-Measurement/blob/master/Install-CPU2006-on-unmatched.md
https://github.com/mollybuild/RISCV-Measurement/blob/master/En-Run-SPEC-CPU2006-on-Unmatched.md (英文版)
- SPEC CPU2017 在RISCV64平台上的安装和运行
https://github.com/mollybuild/RISCV-Measurement/blob/master/En-Run-SPEC-CPU2017-on-Unmatched.md (英文版)
目前主要涉及到的工具有:gcov,Linux perf,linux性能可观测工具集。 参考B站报告。
Linux性能可观测工具图示: https://github.com/mollybuild/RISCV-Measurement/blob/master/Linux-Performance-Observability-Tools.md
目前实现了RISCV GNU Toolchain回归测试的自动运行脚本,可以自动的安装依赖、下载GNU源码、构建、运行回归测试,这个过程将针对目前的B、K、V、P、Zfinx都会进行一遍。 脚本位置:scripts/runGNUforInsExts.sh
https://github.com/mollybuild/RISCV-Measurement/blob/master/Cross-compile-a-demo-and-run-on-D1.md
https://github.com/mollybuild/RISCV-Measurement/blob/master/run-benchmark-on-D1.md
https://github.com/mollybuild/RISCV-Measurement/blob/master/run-LLVM-testsuite-on-D1.md
https://github.com/mollybuild/RISCV-Measurement/blob/master/CoreMark-data-on-D1-and-unmatched.md
- 常用工具的使用
https://github.com/mollybuild/RISCV-Measurement/blob/master/Tools-Guide.md
- 在qemu riscv64虚拟机中安装docker并运行riscv linux
- 在D1/openEuler上安装docker,并运行docker/Debian
- 20201204-LLVM测试框架介绍
幻灯片或资料链接:
https://github.com/isrc-cas/PLCT-Open-Reports
视频或专栏文章链接:
https://www.bilibili.com/video/BV1MK4y1L7jw
- 20210113-Csmith vs YARPGen
幻灯片或资料链接:
https://www.bilibili.com/video/BV1rt4y1z7h4
- 20210310 - GNU GCC Testsuite
内容简介:GNU GCC Testsuite介绍和运行方法
幻灯片或资料链接:
https://github.com/isrc-cas/PLCT-Open-Reports/blob/master/20210310-GNU-GCC-Testsuite-chenxiaoou.pdf
视频或专栏文章链接:
https://www.bilibili.com/video/BV1EV411Y7Ne
- 20210331 - 如何使用gcov和linux-perf工具抓热点代码
幻灯片或资料链接:
https://github.com/isrc-cas/PLCT-Open-Reports/blob/master/20210331-如何使用gcov和linux-perf工具抓热点代码-陈小欧.pdf
视频或专栏文章链接:
https://www.bilibili.com/video/BV1MK4y1m7Uj
- 20210512 - Perf更详细的介绍 - 陈小欧
报告题目:Perf更详细的介绍
报告时间:20210512
报告人:陈小欧
隶属项目:测试测评
内容简介:Perf更详细的介绍,更多介绍了常用的参数。
幻灯片或资料链接:
https://github.com/isrc-cas/PLCT-Open-Reports/blob/master/20210512-常用perf命令详解-陈小欧.pdf
视频或专栏文章链接:
https://www.bilibili.com/video/BV1hK4y1A7U4
- 20210626 - PLCT RISC-V Shanghai Day
报告题目:RISCV GNU Toolchain和LLVM回归测试的介绍
报告时间:20210626
报告人:陈小欧
隶属项目:测试测评
内容简介:RISCV GNU Toolchain和LLVM回归测试的介绍
幻灯片或资料链接:
https://www.bilibili.com/video/BV1x64y1b77R