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 := armTARGET_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

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC" }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue" }
span.s1 { font: 12.0px "Helvetica Neue" }
span.s2 { font: 12.0px ".PingFang SC" }

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

时间: 2024-10-29 03:19:54

NEON优化之《简介》的相关文章

C编译器剖析_5.1 中间代码生成及优化_简介

5.1  中间代码生成与优化_简介 在语法分析和语义检查阶段,我们始终在与语句Statement.表达式Expression和外部声明ExternalDeclaration这3个概念打交道.通过声明,我们最终建立起了相应的类型结构,并在符号表中保存了相关标识符的类型信息,到了中间代码生成阶段,我们就不再需要处理外部声明ExternalDeclaration了,只需要为语句和表达式生成相应的中间代码即可.文件ucl\tranexpr.c用于为表达式生成中间代码,文件名tranexpr是Transl

粒子群优化算法简介

好好学数学. 一.问题来源 经朋友介绍,接了一份工作,就是做PSO及其优化,恰好我导师也研究这个,刚开学也有接触,那我就接了.......赚点生活费. 欢迎大家和我联系做算法类项目,QQ:791909235,Tel:13137910179. 二.背景介绍 2.1 人工生命 人工生命:研究具有某些生命基本特征的人 工系统.包括两方面的内容: 1.研究如何利用计算技术研究生物现象: 2. 研究如何利用生物技术研究计算问题. 我们关注的是第二点.已有很多源于生物现象的计算技巧,例如神经网络和遗传算法.

haproxy学习——简介、基本配置(二)

官网:http://www.haproxy.org/ 个人感觉haproxy学习的重点在于配置上,把配置文档搞懂了就明白大部分套路了.不过本篇内容属于入门学习:1.使用haproxy简单的实现负载均衡的效果.2.使用自带监控查看效果.后续待学习的方向是访问日志配置.优化等~ 简介: 我在虚拟机上装的是1.5+版本,对应的haproxy官方配置文档(1.5+):http://www.haproxy.org/download/1.5/doc/configuration.txt(事实证明英语真的很重要

NEON在Android中的使用举例

1.  打开Eclipse,File-->New-->AndroidApplication Project-->Application Name:Hello-Neon, Project Name: Hello-Neon,Package Name:com.hello_neon.android, Minimum Required SDK:API 9:Android 2.3(Gingerbread),Next-->去掉Create custom launcher icon的勾选,Next

数据库访问性能优化

特别说明: 1.  本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识: 2.  本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也可以参考,但许多观点不适合于KV数据库或内存数据库或者是基于SSD技术的数据库: 3.  本文未深入数据库优化中最核心的执行计划分析技术. 读者对像: 开发人员:如果你是做数据库开发,那本文的内容非常适合,因为本文是从程序员的角度来谈数据库性能优化. 架构师:如果你已经是数据库应用的架构师,那本文的

一个Netfilter nf_conntrack流表查找的优化-为conntrack增加一个per cpu cache

独悲需要忍受,快乐需要分享对Linux协议栈多次perf的结果,我无法忍受conntrack的性能,然而它的功能是如此强大,以至于我无法对其割舍,我想自己实现一个快速流表,但是我不得不抛弃依赖于conntrack的诸多功能,比如state match,Linux NAT等,诚然,我虽然对NAT也是抱怨太多,但不管怎样,不是还有很多人在用它吗.       曾经,我针对conntrack查找做过一个基于离线统计的优化,其思路很简单,就使用动态的计算模式代替统一的hash算法.我事先会对经过该BOX

SQL优化第一章

术语: 数据库hang住:hang/hæ?/n:悬挂的样子; (动作的) 暂停; vt/vi悬挂; (被) 绞死; 贴,装饰; 使悬而未决; optimizer/'ɑ:pt?ma?z?r/:优化器.[计]优化程序.最优控制 access path:执行路径 一)优化器简介 优化器(Optimizer)是Oracle数据库中内置的一个核心子系统/核心功能组件. 优化器负责解析SQL,而SQL语句是用来访问存储在关系型数据库中的数据的,故优化器的好坏决定关系型数据库的强弱 优化器的目的:按照一定的判

数据库访问性能优化 Oracle

特别说明: 1.  本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识: 2.  本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也可以参考,但许多观点不适合于KV数据库或内存数据库或者是基于SSD技术的数据库: 3.  本文未深入数据库优化中最核心的执行计划分析技术. 读者对像: 开发人员:如果你是做数据库开发,那本文的内容非常适合,因为本文是从程序员的角度来谈数据库性能优化. 架构师:如果你已经是数据库应用的架构师,那本文的

新手必看的jQuery优化笔记十则

jQuery优化 1.简介 jQuery正在成为Web开发人员首选的JavaScript库,作为Web开发者,除了要了解语言和框架的应用技巧外,如何提升语言本身的性能也是开发人员应该思考的问题.文章就以jQuery为例,为大家提供了10个有效提升jQuery性能的小技巧. 2. 合并.最小化脚本 大部分浏览器都不能同时处理多个脚本文件,所以它们都是排队加载——加载时间也相应地延长了.考虑到你网站的每个页面都会加载这些脚本,你应该考虑把它们放到单个文件中,然后利用压缩工具(比如Dean Edwar