Neon加速测试

来源:互联网 发布:ipad pro还是mac pro 编辑:程序博客网 时间:2024/06/05 22:54

Zynq架构将内部结构分为处理器系统(Processing System, PS)和可编程逻辑(Programable Logic,PL)两部分,其中PS端的应用处理单元(Application Processing Unit,APU)中包含两个ARM处理器和两个Neon协处理器。这里的Neon技术是某些ARM处理器的128位SIMD体系结构的扩展,能够提供一定程度的加速功能。初步了解之后,做了个小测试~

主要参考的资料:

xilinx官方提供的用户文档xapp1206(https://www.xilinx.com/support/documentation/application_notes/xapp1206-boost-sw-performance-zynq7soc-w-neon.pdf),文档中包含比较详细的指令集介绍。

博客http://blog.csdn.net/chshplp_liaoping/article/details/12752749对Neon指令做了总结,这里就不赘述了。

只分享一点内容:了解Zynq的朋友们都知道,要Linux操作系统在Zynq平台运行起来,需要对操作系统进行移植,移植过程中涉及到编译内核源码(相关内容网上一大堆)。使用Neon进行加速计算,在编译内核源码时需要进行一项配置,使其支持SIMD扩展功能——在内核源码目录下输入指令make menuconfig,弹出配置菜单后,选择Floating point emulation --->Advanced SIMD (NEON)Extension support。


代码:

可以直接通过汇编语言来使用Neon,也可以用C语言来写代码,由编译器来完成编译。本人闹不明白汇编语言,就用Qt写了几行将彩色图像转为灰度图像的代码。要包含头文件“arm_neon.h”.



测试结果:

图像大小:1920*1080

ARM:130ms

ARM+Neon:36ms

一定程度上能够起到加速的作用,但是要做实时处理,还是要用这块板子的PL端——FPGA。



原创粉丝点击