arm neon相对复杂运算优化

2015-11-26 22:02 阅读 764 次 评论 4 条

本次测试使用的avnet的MicroZed硬件平台,CPU频率666MHz,DDR频率为533MHz。

对于上一日志中说明的相对复合的浮点运算使用ne10已经有些局限,但还是不死心,这里想起《xapp1206-boost-sw-performance-zynq7soc-w-neon.pdf》中的例子,基于gcc arm neon的函数优化。感觉是在arm neon中将单数据操作的优化做完了,在ne10中只对向量(超过Q寄存器长度)的计算进行优化。

复合计算的内容还是一样,下面是普通c语言编写的计算方法。

c语言计算原型

开始准备将unsigned short型转为int型,然后通过vec1_q = vreinterpretq_f32_s32( sTmp32_4 );将s32x4类型转换为f32x4类型,但是转换不成功。手册上说which does not actually generate any code but does enable you to cast the NEON types。真的是什么都没做,只是完成类型转换,便于函数调用时不至于编译错误。

修改后代码如下

gun arm neon函数转换运算代码

在没有编译器优化的条件下的运算速度比较

没有编译器优化条件下的运算速度比较

在编译器优化O2条件下的运算速度比较

在编译器O2优化下的运算速度比较

运算速度还不如ne10优化的结果。

编译优化O3条件下的运算速度比较速度比较,因为在O3条件下-ftree-vectorize可以向量化

在编译器O3条件下的运算速度比较

直接通过c语言编写的代码快1ms,而通过arm neon优化的却没有变化。

算是彻底绝望了~~~~~希望有大神看到指点迷津

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:arm neon相对复杂运算优化 | 起点博客
分类:应用笔记 标签:, , , ,

发表评论


表情

  1. 小松博客
    小松博客 【农民】

    我得C语音估计还没有你高,几年不搞C语言了

  2. 迷失
    迷失 【农民】

    连看3篇,楼主写了这么多的结论是然并卵吗?

  3. will
    will【站长】

    基本上是的

  4. will
    will【站长】

    c语言无所谓高低,能解决问题就行。所以搞算法的牛逼