王昱顺 发表于 2023-6-21 21:32:13

经验分享,同时开启STC32F的MDU32和FPMU及速度测试

STC32F包含了最新的FPMU模块,而且听说加速相当猛。那必须试一下。
顺便,同时开启MDU32,整数和浮点一起加速运算
if(Key_Short_Function)      //P3.2按键短按
      {
            Key_Short_Function = 0; //短按一次P3.2按键,计算一次浮点数运算
            //浮点运算测试
            P01 = 0;
            cfl3 = cfl1*cfl2;
            cfl4 = cfl1/cfl2-cfl3;
            cfl5 = cfl1*cfl2+cfl4;
            cfl6 = cfl1/cfl2*sin(cfl5);
            cfl7 = cfl1/cfl2*cos(cfl6);
            cfl8 = cfl1/cfl2*tan(cfl7);
            cfl9 = cfl1/cfl2*sqrt(cfl8);
            cfl10 = cfl1/cfl2*atan(cfl9);
            P01 = 1;
                                                //整数运算测试
                                                P02 = 0;
                                                c=a+b;
                                                d=a-b;
                                                e=a*b;
                                                f=a/b;
                                                g=a>>2|b<<3;
                                                P02 = 1;
      }测试程序使用追风剑开发板,官方程序修改了一下,
P01低电平宽度标识浮点运算的消耗时间,
P02低电平宽度表示整数运算消耗的时间
如下是经过加速的时间

这个是经过加速的浮点运算,

这个是经过加速的整数运算速度


如果通过取消LIB库的Include in Target Build选项,
可以测得原本的运算消耗时间

这个是未经加速的浮点运算时间,

这个是未经加速的整数运算时间

可以简单计算得到,
FPMU加速性能327/27.4=11.93约为12倍,
MDU加速7.51/2.40=3.12约为3倍加速性能,
确实提高了不少。
当然,测试的时候还发现了一个小小的坑,就是在取消了LIB库包含以后,
再点击是深色的对勾

这时候

库文件上面是有一个小雪花(星号)的,
这个其实是程序没有调用的意思
想要解决也很简单,把Include in Target Build点成灰色的小对号,
或者点击Defaults就可以恢复了




神农鼎 发表于 2023-6-21 22:47:34

期待更多的关于 硬件三角函数 的测试





https://www.bilibili.com/video/BV1wz4y1H7HS

老朋友:清华大学 卓晴老师 也在同步测试 STC32F的:
硬件【三角函数/反三角函数运算器 + 浮点运算器】






页: [1]
查看完整版本: 经验分享,同时开启STC32F的MDU32和FPMU及速度测试