RISC-V MCU中文社区

【分享】 跑分程序Coremark

发表于 开源蜂鸟E203 2023-05-07 16:10:39
0
2643
0

1队伍介绍

报名编号:CICC1907
团队名称:Hollow-SEKIRO-ARCAEA
学校名称:东南大学
指导老师:刘昊
团队成员:申烁、徐轶凡、林昊

这是我们第二篇分享文章。

2Coremark

CoreMark跑分是通过运行C语言代码得出来的分数。包含如下的运算法则:列举(寻找并排序),数学矩阵操作(普通矩阵运算)和状态机(用来确定输入流中是否包含有效数字),最后还包括CRC(循环冗余校验)。注意都是整数运算。Coremark分数的计算公式和dhry类似,表示处理器每秒进行的主循环次数,core的代码具体分析略。提高取值效率、优化乘法器或添加矩阵运算加速单元都可以提高性能。
每次循环中每种算法的执行次数如下:(有且仅有这四种)
• 列表处理(查找和排序):执行一次
• 矩阵操作(常见的矩阵运算):执行一次
• 状态机(判断输入流是否包含有效的数字):执行一次
• CRC(循环冗余校验):执行一次
有几种方法从改变CPU架构的角度来提高跑分:1,硬件加速运算:使用NICE(Nuclei Instruction Co-unit Extension)功能,为e203核添加自定义的硬件协处理器,比如加速CRC算法等。NICE功能是Nuclei公司为e203核提供的一种扩展机制,它允许用户在e203核的流水线中插入自己设计的硬件模块,通过自定义的指令来调用这些模块,实现特定的功能。另外,矩阵运算只占算力需求的一小部分,且矩阵规模很小,可能添加矩阵加速单元不是很好的提分方法。2,提高取指效率:取指阶段会影响处理器的流水线效率和能耗,比较合理的方法是提高指令预取的效率,尽量减少缓存未命中的延迟。还有使用更小一级的缓存、动态配置流水线等方法,但难度较大。3,提高CPU流水线的级数,但可能会带来冒险和延迟问题。
用nucleisdk运行程序得
图片alt

3总结

本文介绍的内容是为了完成基础功能:对蜂鸟E203 RISC-V内核的微架构实现进行一定优化,并通过Benchmark基准测试(Dhrystone、CoreMark、Whetstone)来进行系统性能测试,对CoreMark进行解读,寻找优化方向。

喜欢0
用户评论
Lri-SKY

Lri-SKY 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板