[code=csharp]
#include <stdio.h>
#include <arm_neon.h>

int main() {
float arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int len = sizeof(arr) / sizeof(arr[0]);
int dim_x4 = len / 4;
int left_x4 = len % 4;
float *p = arr; // 创建新的指针p指向数组首元素地址,p与arr独立
float32x4_t sum_vec = vdupq_n_f32(0.0); // 复制创建一个4元素vector sum_vec,并初始化元素为0
for (int dim = 0; dim < dim_x4; dim++) {
p = arr + dim * 4; // 更新指针位置
float32x4_t data_vec = vld1q_f32§; // 从地址p开始load四个元素存至vector data_vec
sum_vec = vaddq_f32(sum_vec, data_vec); // vector相加,结果存入新的vector
}
float32_t sum = vgetq_lane_f32(sum_vec, 0) + vgetq_lane_f32(sum_vec, 1) + vgetq_lane_f32(sum_vec, 2) + vgetq_lane_f32(sum_vec, 3);
p += 4; // 更新指针位置到剩余元素起始地址
for (int left = 0; left < left_x4; left++) {
sum += *(p + left); //对于剩下的少于4个的元素,依次计算累加即可
}
printf(“sum = %f\n”, sum);
return 0;
}
[/code]

ARM NEON Intrinsics示例相关推荐

  1. ARM Neon 编程笔记一(ARM NEON Intrinsics, SIMD运算, 优化心得)

    1. ARM Neon Intrinsics 编程 1.入门:基本能上手写Intrinsics 1.1 Neon介绍.简明案例与编程惯例 1.2 如何检索Intrinsics 1.3 优化效果案例 1 ...

  2. 【genius_platform软件平台开发】第八十二讲:ARM Neon指令集一(ARM NEON Intrinsics, SIMD运算, 优化心得)

    1. ARM Neon Intrinsics 编程 1.入门:基本能上手写Intrinsics 1.1 Neon介绍.简明案例与编程惯例 1.2 如何检索Intrinsics 1.3 优化效果案例 1 ...

  3. 【genius_platform软件平台开发】第四点:ARM NEON Intrinsics 使用详解

    目录 前言 SIMD简介 ARM NEON Intrinsics简介 函数改写示例 结语 前言 最近公司在视频直播项目中要使用H.265/HEVC,具体的是使用HW硬件编码H.264/AVC,云端转码 ...

  4. ARM Neon Intrinsics 学习指北:从入门、进阶到学个通透

    本文同步发表于GiantPandaCV公众号,未经作者允许严禁转载 前言 Neon是ARM平台的向量化计算指令集,通过一条指令完成多个数据的运算达到加速的目的,常用于AI.多媒体等计算密集型任务. 本 ...

  5. Arm NEON intrinsics指令格式

    NEON Intrinsics 是一种更简单的编写 NEON 代码的方法,NEON Intrinsics 类似于 C 函数调用,在编译时由编译器替换为相应的汇编指令,使用时需要包含头文件arm_neo ...

  6. ARM Neon Intrinsics各函数介绍

    #ifndef __ARM_NEON__ #error You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) t ...

  7. 用 Neon Intrinsics 优化 C 代码

    以下内容翻译自:Optimizing C Code with Neon Intrinsics 概述 本指南向您展示如何在 C 或 C++ 代码中使用 Neon intrinsics 函数,以利用 Ar ...

  8. Neon intrinsics

    1.介绍 在上篇中,介绍了ARM的Neon,本篇主要介绍Neon intrinsics的函数用法,也就是assembly之前的用法.NEON指令是从Armv7架构开始引入的SIMD指令,其共有16个1 ...

  9. 【neon加速拆分/合并交叉数据】使用neon intrinsics加速合并/拆分uv的内存分布(交叉存储/分别存储)

    说明 在YUV格式的图片中,uv数据可以"UVUVUVUV"形式交叉存储叫NV12,也可以以"UUUUUVVVVV"的格式分开存储,为了将二者转换,需要类似如下 ...

最新文章

  1. 淄博职业学院计算机应用,2019年淄博职业学院单独招生云计算技术与应用专业技能测试实施细则...
  2. 推荐一个从高中就开始自学IT的大佬
  3. android 左移动画_Android研究院之游戏开发Tween动画的实现(十九)
  4. 对产品质量的一点思考
  5. python入门之函数调用第二关_Python入门之函数调用——第2关:函数正确调用 - 得到想要的结果...
  6. kubeadm源码分析(kubernetes离线安装包,三步安装)
  7. C# 使用Epplus导出Excel [4]:合并指定行
  8. Maven web项目(简单的表单提交) 搭建(eclipse)
  9. 哈希函数-SHA1和SHA256算法
  10. 完全卸载NI系列软件的方法
  11. atx motherboard layout ATX主板规格尺寸图
  12. 运行最新创建的镜像:
  13. Animated之实例篇
  14. CCLE:肿瘤细胞系百科全书
  15. IPaddr和IPaddr2的区别
  16. 寒假“搜索”练习题解
  17. Linux进程的创建
  18. 修改服务器连接数,服务器修改连接数
  19. 面试华为测试岗,收到offer后我却毫不犹豫拒绝了....
  20. 2021年起重机司机(限桥式起重机)模拟试题及起重机司机(限桥式起重机)实操考试视频

热门文章

  1. spring-cloud-kubernetes的服务发现和轮询实战(含熔断)
  2. 3D打印机基础知识入门之硬件知识
  3. 怎样用计算机传输文件,如何在两台电脑之间传输几百G的文件?教你一招
  4. 英文赞美句子,大家应该看看
  5. 兼容IE9的文件上传
  6. 基于Java Web技术的动车购票系统
  7. 【机器人学】牛顿-欧拉动力学方程迭代形式
  8. vue ssr搭建服务端渲染项目
  9. halcon学习之回形针方向检测(一)
  10. c语言程序0到1000的素数,C语言实现之100-1000以内素数的等差数列