Android使用neon优化,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

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

原文:https://www.cnblogs.com/alanfang/p/8921855.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值