mmuyu 发表于 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倍。

页: [1]
查看完整版本: 测算硬件浮点计算单元带来的性能提升