收藏官网首页
查看: 1566|回复: 0

[经验分享] 测算硬件浮点计算单元带来的性能提升

106

主题

107

帖子

7261

积分

论坛元老

Rank: 8Rank: 8

积分
7261
跳转到指定楼层
楼主
 楼主| 发表于 2023-8-29 21:02:12 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
校园创客福利
    https://club.gizwits.com/thread-169672-1-1.html在此篇文章中,介绍了开启ch307硬件浮点计算单元的方法。我们知道开启这个功能是能带来性能提升的,但是很少有说明性能提升多大的,下面我们来测试一下大概的性能提升。

我们编写4个函数,分别用于计算浮点的加减乘除,每种10000次计算,数值都保证不会溢出float的范围。



接下来,我们初始化一个定时器,以1微秒的计数周期进行计算,来计算每个函数运行的时间。1us的计数周期采用的分频系数是96-1。



初始化后,我们不使能定时器,另外编写函数用于开启和关闭定时器,并且输出计数值。



接下来,我们在main函数里调用计算的函数和统计时间的函数。



最后,我们通过切换不同的配置,通过串口观察计算耗费的时间,注意配置里不对代码进行优化。

未开启硬件浮点计算单元的运算耗时:

开启硬件浮点计算单元的耗时:


图中,未开启计算单元的时候,除法耗费14ms ,乘法耗费18ms,加法耗费9ms,减法耗费10ms
开启后:除法耗费1.8ms ,乘法耗费2.6ms,加法耗费1.7ms,减法耗费1.8ms



通过计算,我们可以得知,开启硬件浮点计算单元后,乘法和除法能带来大约6倍的性能提升,加法和减法因为运算相对简单一点,所以性能提升在4倍。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表