xilinx zynq-7000中ARM NEON的使用

本文介绍了如何在Xilinx Zynq-7000 SoC中利用ARM NEON进行软件性能优化。通过理解NEON的基本原理、使用库、自动向量化、内建函数以及直接NEON汇编,提升代码运行速度。文章强调了正确使用restrict修饰符、避免迭代依赖和条件判断、以及内建函数的优势。同时,还探讨了内存访问优化、对齐和指令调度策略,特别是通过预加载和tile化方法减少cache颠簸。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

读《xapp1206-boost-sw-performance-zynq7soc-w-neon.pdf》,有感


2014年6月出的文章诶,发现的好晚,当年刚弄的时候是2013年8月份


比之前看的zynq-7000 swdev要专业一点,主要围绕了NEON来讲了


前面overview部分简要说了下文章主要内容,其中有一些东东还是有些价值的,后面一起说:


文章先讲了下为啥优化,

Software Optimization Basics部分:说了一堆可以优化的目的,文章主要讲速度,2种方法可以加速:①改变算法,避免cache颠簸;②理解cpu硬件实现再来优化。这里有几个知识点:

a. 读数据时cahce miss 了,要数十个cycles才能读出来,此时指令就stall了

b. DRAM 一些情况下能把延迟提高上百个cycles


之后全是再讲无法精准分析出软件跑的具体时间,这里要用到profiling工具,对于standalone来说,应该用Gprof(准备回来在SDK上试一下)


NEON Basics部分:先讲SIMD是啥,然后介绍NEON、VFP共享的32个寄存器,NEON和VFP的联系和区别,这里有几个知识点:

a. ARM普通CPU适合直接32-bit计算,不适合8-bit、16-bit计算(因为需要多余的控制防overflow之类的)<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值