报名编号:CICC1907
团队名称:Hollow-SEKIRO-ARCAEA
学校名称:东南大学
指导老师:刘昊
团队成员:申烁、徐轶凡、林昊
这是我们第三篇分享文章。
Whetstone跑分程序是一种用来测试CPU的浮点运算性能的基准测试程序,它由8个模块组成,每个模块执行一种基本的浮点运算,如三角函数、指数函数、平方根等。Whetstone跑分程序的结果是每组循环的平均时间和所有循环的平均Whetstone Rating值,单位是KWIPS(Thousands of Whetstone Instruction mixes Per Second),表示每秒执行的Whetstone指令混合数。
一次循环执行的计算如下:
数组元素 (浮点),循环12次
数组参数 (浮点),循环14次
条件判断 (if then else),循环345次
整型计算,循环210次
三角函数 (sin, cos, etc.),循环32次
程序调用 (浮点),循环899次
数组操作 (赋值),循环616次
标准函数 (exp, sqrt, etc.),循环93次
数传递,条件转移和三角、超越函数等。
1,添加浮点运算功能可以提高性能。
2,除了加减乘除外,在nice中直接实现Cordic算法加速(专用于计算三角、超越函数)也有助于提高跑分,需要更新编译算法。
我们的计划是在ALU中添加一个FPU以提高跑分。
本文介绍的内容是为了完成基础功能:对蜂鸟E203 RISC-V内核的微架构实现进行一定优化,并通过Benchmark基准测试(Dhrystone、CoreMark、Whetstone)来进行系统性能测试,对Whetstone进行解读,寻找优化方向。