TI论坛
直播中

李林

7年用户 1186经验值
私信 关注
[问答]

FPU里的maxidx_SP_RV_2计算时间没有手册上写的那么少

手册上写的是3*N+21,我实测的结果是4*N+29。
我就是断点放在index = maxidx_SP_RV_2(f32Array,ARRAY_NUM); 这一句上。下一个断点放到下一句话上。
这样测试包括调用和返回时间的吧。请专家解惑,谢谢!

回帖(9)

李林

2018-10-29 12:00:55
另外整形数组的快速求最大值有没有更好的办法?除了在c语言里把整形转浮点之后再调用maxidx_SP_RV_2。谢谢!
举报

朱虹博

2018-10-29 12:06:10
引用: wanglq2011 发表于 2018-10-29 18:49
另外整形数组的快速求最大值有没有更好的办法?除了在c语言里把整形转浮点之后再调用maxidx_SP_RV_2。谢谢!

我用cputimer测试了一下,您得到的结果是正确的。
我随机测试了其他几组函数,发现手册上写的并没有问题。
至于整形求最大值,直接如下面这样写,调高编译器自动优化等级后,得到的优化速度应符合要求。
        for(i=0;i           [
             if(A > MAX)
             [
                 j = i;
                 MAX = A;
             ]
          ]
举报

李林

2018-10-29 12:18:30
引用: Emily1225 发表于 2018-10-29 18:54
我用cputimer测试了一下,您得到的结果是正确的。
我随机测试了其他几组函数,发现手册上写的并没有问题。
至于整形求最大值,直接如下面这样写,调高编译器自动优化等级后,得到的优化速度应符合要求。

多谢您的回复。
用c语言写的整形数组求最大值的执行速度还是比FPU里的慢多了啊,里面的判断和跳转太多了,能用汇编写一个嘛?
举报

朱虹博

2018-10-29 12:34:37
引用: wanglq2011 发表于 2018-10-29 19:07
多谢您的回复。
用c语言写的整形数组求最大值的执行速度还是比FPU里的慢多了啊,里面的判断和跳转太多了,能用汇编写一个嘛?

TI的编译器优化,已经很不错了,上面的C语言优化到4~5句汇编,不需要再用会编写了:
举报

更多回帖

×
20
完善资料,
赚取积分