neon 相关问题

NEON是ARM处理器的矢量处理指令集。

如何在 Android 上使用 float16 neon 内在函数?

如何在 Android 上使用arm float16 内部函数? 考虑以下程序: #包括 int main(int, char** argv) { const float16x8_t a = vdupq_n_f16(1.0F); 常量

回答 1 投票 0

有ARM Neon Gather指令吗?

有ARM Neon SIMD Gather指令吗? 我正在寻找与以下 Intel Intrinsic 指令等效的指令: _mm_i32gather_ps(blob, 索引, 4); 我可以找到相关说明,例如...

回答 1 投票 0

如何计算 ARM Neon 上的按位独占前缀奇偶校验?

我有一个特定的功能,我需要使其便携且高效。 这是简单的实现,仅供参考: 模板 常量表达式 T

回答 1 投票 0

如何用Neon将8位YUV420图像转换为RGB?

我是 Neon 新手。我想编写一个代码,用 Neon 将 YUV420 转换为 RGB。像素为 8 位深度,我需要将它们转换为 int32_t 或 float(但仍限制在 0-255 范围内)。不过,我...

回答 1 投票 0

如何用Neon处理8位深度的图像?

我是 Neon 新手。我想编写一个代码,用 Neon 将 YUV420 转换为 RGB。像素是 8 位深度,我需要将它们转换为 int32 或 float。但是,我还没有找到任何 Neon 指令可以执行...

回答 1 投票 0

如何使用 SSE/SSE2/AVX/... 对 3、5、7、9 个输入进行有效的按位多数投票?

我有几个(例如 3、5、7 或 9 个)大小相同的大数据块(例如 100KB-100MB),并且想要进行按位多数投票,以获得每个数据块中最常用的值乙...

回答 1 投票 0

vmovq_n_f32() 和 vdupq_n_f32() 之间的区别

我现在正在学习arm neon。我发现 vmovq_n_f32() 和 vdupq_n_f32() 似乎做了同样的事情,它们都用一些值初始化 float32x4_t 变量。那么他们有什么区别呢? 我试过了

回答 1 投票 0

优化arm64的simd指令(mov),将交替字节打包成连续字节

我有这个V6.16b寄存器:0a,0b,0c,0d,0e,0f,07,08,0a,0b,0c,0d,0e,0f,07,08 目标是:ab,cd,ef,78,ab,cd,ef,78 我是这样做的: 电影 v7.8h, 0x04 // 04,00,04,00,04,00,04,00...

回答 1 投票 0

针对arm64优化simd指令(mov)

我有这个V6.16b寄存器:0a,0b,0c,0d,0e,0f,07,08,0a,0b,0c,0d,0e,0f,07,08 目标是:ab,cd,ef,78,ab,cd,ef,78 我是这样做的: 电影 v7.8h, 0x04 // 04,00,04,00,04,00,04,00...

回答 1 投票 0

使用 SIMD (ARM) 的快速位矩阵 (64x64) 转置算法

我想了解是否有一种快速方法可以使用 ARM SIMD 指令进行矩阵转置(64x64 位)。 我尝试探索ARM SIMD的VTRN指令,但不确定它的效果...

回答 4 投票 0

如何在Go的汇编器中更高效地将全局数据加载到NEON寄存器?

arm64 asm代码中有p256one全局数据作为示例: 数据 p256one<>+0x00(SB)/8, $0x0000000000000001 数据 p256one<>+0x08(SB)/8, $0xffffffff00000000 数据 p256one<>+0x10(SB)...

回答 1 投票 0

错误:使用未声明的标识符“vmaxq_f16”

每当我尝试使用 NEON 16 位浮点内在函数时,都会收到此错误。 我不会遇到其他数据类型内在函数的任何问题。 是不是可以在 Android 上使用 NEON 16 位浮点内部函数?...

回答 2 投票 0

neon指令集中vfmaq_f32和vmlaq_f32有什么区别,以及运行速度和精度上的区别

你好,neon指令集中vfmaq_f32和vmlaq_f32有什么区别,运行速度和精度有什么区别 在 macOS ARM64 上,代码运行一致 #包括 你好,neon指令集中vfmaq_f32和vmlaq_f32有什么区别,运行速度和精度有什么区别 在 macOS ARM64 上,代码运行一致 #include<arm_neon.h> #include<iostream> using namespace std; int main(){ float a = 12.3839467819; float b = 21.437678904; float c = 4171.42144; printf("%.17f\n",a); printf("%.17f\n",b); printf("%.17f\n",c); printf("%.17f\n",a+b*c); float32x4_t a_reg = vdupq_n_f32(a); float32x4_t b_reg = vdupq_n_f32(b); float32x4_t c_reg = vdupq_n_f32(c); float32x4_t res_reg = vfmaq_f32(a_reg, b_reg, c_reg); float res[4] = {0.f}; vst1q_f32(res,res_reg); printf("%.17f\n",res[0]); res_reg = vmlaq_f32(a_reg, b_reg, c_reg); vst1q_f32(res,res_reg); printf("%.17f\n",res[0]); res_reg = vmulq_f32(b_reg, c_reg); res_reg = vaddq_f32(res_reg, a_reg); vst1q_f32(res,res_reg); printf("%.17f\n",res[0]); return 0; } vfmaq_f32 定义为单个融合操作,而 vmlaq_f32 can 通过乘法然后累加来实现。 我想到了两种解释。首先,在某些时候,融合版本(FMLA指令)可能是可选指令(我不知道什么时候,而且我有点懒得去挖掘真正旧的文档)。第二种可能性似乎更有可能,那就是融合版本在某些时候可能会慢一些。 如今,编译器看起来几乎只是将两者编译为相同的指令,因此它实际上是一个别名,但如果您想要准确性,您可能仍然应该使用vfmaq_f32,但如果您对速度更感兴趣,则vmlaq_f32 .

回答 1 投票 0

vfmaq_f32真的有更高的运行精度吗?

vfmaq_f32真的有更高的运行精度吗? 我猜 vfmaq_f32 的精度根据不同架构中浮点处理单元的位扩展的长度而变化......

回答 1 投票 0

NEON:优化代码

我目前正在使用 ARM Neon,并编写了以下函数,一个用 C 语言,一个用 NEON Intrinsics 来比较速度。这些函数比较两个数组。参数 cb 是

回答 1 投票 0

如何查看手臂上是否有NEON?

如何确定给定 ARM 处理器上是否存在 NEON 引擎?为此目的可以查询任何状态/标志寄存器吗?

回答 4 投票 0

使用arm neon内在函数将float32类型转换为int16

我是 Arm neon 内在函数的新手,我想用标量 (2^13 = 8192) 缩放 float32 数组,并将其类型转换为 int16_t 数组。 我相信我需要执行以下步骤: 加载浮标

回答 1 投票 0

位分散在多个 NEON 寄存器上

将内存中的位均匀分布到多个向量寄存器的最有效方法是什么?所有数据必须以目标寄存器的最低有效位结束。 例如,2 b如何...

回答 1 投票 0

高效使用水平 Neon 内在函数

从 ARM Instruction Set Reference 读取,执行水平归约的操作确实将目标值保存在 neon 寄存器中。 然而,内在函数定义和 clang

回答 1 投票 0

ARM 汇编向量加法

我必须使用内联ARM汇编在C++程序中实现向量加法。 我写了这段代码: #包括 #包括 #包括 使用命名空间...

回答 1 投票 0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.