NEON优化之《简介》
Posted 吹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NEON优化之《简介》相关的知识,希望对你有一定的参考价值。
NDK支持NEON环境配置:https://blog.csdn.net/app_12062011/article/details/50462351 一个很典型的例子:http://hilbert-space.de/?p=22
一、入门
1. 并行操作模式的模式[Mapping,Reduce,Scatter,Stencil]
2. NEON指令使用举例,NEON指令提供的核心能力有数据的装载、存储以及数据的处理。NEON指令都是以V字母开头。
VADD.I16 q0, q1, q2
其中,V表示NEON指令头,ADD为加法运算,I表示整形,I16表示16位整形,q0,q1,q2都是128位寄存器。指令的意思是让q1,q2装载8个16位数据,然后执行加法操作,最后放倒q0寄存器中,一次指令完成了8此加法运算,也就性能提升了8倍。
如果把RGB三个元素分别放到3个不同的寄存器中,每个寄存器的元素分别都是R、G、B,这样就可以进行并行晕算了。
二、NDK中如何使用NEON
1. 引入头文件arm_neon.h
#include <arm_neon.h>
2. 修改android.mk
# 其中,-mfloat-abi=softfp -mfpu=neon 使用 arm_neon.h 必须 LOCAL_CFLAGS := -D__cpusplus -g -mfloat-abi=softfp -mfpu=neon -march=armv7-a -mtune=cortex-a8
LOCAL_ARM_MODE := arm
TARGET_ARCH_ABI := armeabi-v7a ifeq ($(TARGET_ARCH_ABI), armeabi-v7a) LOCAL_ARM_NEON := true # 采用NEON优化 endif
3. 修改Application.mk
APP_ABI := armeabi-v7a # ABI选择v7a,并确保目标设备支持NEON
以上是关于NEON优化之《简介》的主要内容,如果未能解决你的问题,请参考以下文章