neon相关内容

图像处理中的边界检查

我想在处理图像处理中的任何过滤器时注意边界条件.我正在推断边界并创建新边界.例如,我有 4x3 输入: //输入整数图像[4][3] =1 2 3 42 4 6 83 6 9 12//输出int extensionimage[6][5] =1 1 2 3 4 41 1 2 3 4 42 2 4 6 8 83 3 6 9 12 123 3 6 9 12 12 我的代码: #include #i ..
发布时间:2021-11-17 22:41:38 其他开发

霓虹灯中的成对加法

我想在 neon 中添加 int64x2_t 向量的 00 和 01 索引值.我找不到任何可以执行此功能的成对添加指令. int64x2_t sum_64_2;//我期待的结果应该是..//int64_t 结果 = sum_64_2[0] + sum_64_2[1]; neon 中是否有针对此逻辑的说明. 解决方案 你可以用两种方式来写.这个明确使用了 NEON VADD.I64 指令 ..
发布时间:2021-11-17 22:41:32 其他开发

ARM NEON 如何使用索引更改值

unsigned char changeValue(unsigned char pArray[256],unsigned char 值){返回 pArray[值];} 我怎样才能用大约 uint8x8_t 的霓虹灯改变这个函数?? 感谢您的帮助!! 解决方案 你不能 - NEON 没有收集负载.您可以像这样处理的唯一情况是您想要返回 8 或 16 个连续字节值. ..
发布时间:2021-11-17 22:38:31 其他开发

如何在android中使用arm_acle C语言扩展

有很多在 android 上使用 arm neon 内在函数的例子,ndk 甚至有一个例子.我已经让它毫无问题地工作了. Arm 还提供 ACLE(Arm C 语言扩展),但我几乎找不到示例.arm 文档本身仅建议包含 arm_acle.h 头文件,但是我仍然遇到错误.Google 提供的帮助几乎为零 :) 此外,搜索 arm 社区委员会的结果也很少. 人们是不是不使用 acle,而是 ..
发布时间:2021-11-17 22:35:49 其他开发

在 uint8x8_t 霓虹寄存器中查找 min 元素的最小值和位置

考虑这段代码: uint8_t v[8] = { ... };int ret = 256;int ret_pos = -1;for (int i=0; i 它找到 min 元素的 min 和位置(ret 和 ret_pos).在 arm 霓虹灯中,我可以使用 pairwisemin 在 v 中找到最小元素,但是如何找到最小元素的位置? 更新:看我自己的回答,你有什么建议来改进它? ..
发布时间:2021-11-17 22:35:06 其他开发

C 中的 ARM Neon:如何在使用内在函数时组合不同的 128 位数据类型?

TLTR 对于 arm 内部函数,如何将 uint8x16_t 类型的 128 位变量输入到需要 uint16x8_t 的函数中? 扩展版 上下文:我有一个灰度图像,每个像素 1 个字节.我想将其缩小 2 倍.对于每个 2x2 输入框,我想取最小像素.在普通 C 中,代码如下所示: for (int y = 0; y 其中行和列都是 2 的倍数.我将“步幅"称为从一个像素到 ..
发布时间:2021-11-17 22:28:42 其他开发

有没有办法在运行时在 iOS 上检测 VFP/NEON/Thumb/...?

所以通过查询sysctlbyname("hw.cpusubtype", ...),很容易确定iOS设备运行的CPU类型,但似乎没有明显的方法来计算了解 CPU 实际具有的功能(想想 VFP、NEON、Thumb 等).有人能想出办法做到这一点吗? 基本上,我需要的是类似于 Linux/Android 上的 getauxval(AT_HWCAP) 的东西,它返回 CPU 支持的功能的位掩码. ..
发布时间:2021-11-17 22:28:19 移动开发

指定“-mfpu=neon-vfpv3"是否有优势?超过“-mfpu=neon"对于具有单独管道的 ARM?

我的 Zynq-7000 ARM Cortex-A9 处理器同时具有 NEON 和 VFPv3 扩展,Zynq-7000-TRM 表示处理器配置为具有“VFPv3 和高级 SIMD 指令的独立管道". 到目前为止,我使用 Linaro GCC 6.3-2017.05 和 -mfpu=neon 选项编译了我的程序,以利用 SIMD 指令.但是在编译器也有非SIMD操作要下发的情况下,使用-mf ..
发布时间:2021-11-17 22:26:01 其他开发

armv8 NEON 如果条件

我想在 armv8 NEON 内联汇编代码中实现 if 条件.在 armv7 中,这可以通过像这样检查溢出位来实现: VMRS r4, FPSCRBIC r4, r4, #(1<<27)VMSR FPSCR, r4vtst.16 d30, d30, d30vqadd.u16 d30、d30、d30虚拟机 r4,FPSCRtst r4, #(1 但我无法在 armv8 等效代码中实现这一点.似 ..
发布时间:2021-11-17 22:25:37 其他开发

解释 ARM Neon 图像采样

我正在尝试编写 OpenCV 的 cv::resize() 的更好版本,但我遇到了一个在这里的代码:https://github.com/rmaz/NEON-Image-Downscaling/blob/master/ImageResize/BDPViewController.m该代码用于将图像下采样 2,但我无法获得该算法.我想首先将该算法转换为 C,然后尝试修改它以用于学习目的.是否也容易将其 ..
发布时间:2021-11-17 22:25:28 C/C++开发

为什么用于乘法、加法的霓虹内在函数比运算符慢?

我编写了一个测试应用程序来比较 C++ 实现和霓虹灯优化实现,用于两个包含复数的向量的乘法. neon 实现比 cpp 快约 3 倍.(代码 1) 但是,如果我用乘法运算符 * 替换用于乘法的内在霓虹灯 - vmulq_f32 以将两个霓虹灯寄存器相乘,我将获得约 4 倍的速度. 然后,如果我还用 +/- 替换了用于加/减 - vaddq_f32/vsubq_f32 的内在霓虹灯 ..
发布时间:2021-11-17 22:25:25 移动开发

用霓虹灯内在函数替换 memcpy

我试图通过为相同的 .以下是我的逻辑: uint8_t* m_input;//大小为400 x300uint8_t* m_output;//大小为400 x300//没有提到内存创建的完整代码库memcpy(m_output, m_input, sizeof(m_output[0]) * 300* 400); 霓虹灯: int32_t ht_index,wd_index;uint8x16_t ..
发布时间:2021-11-17 22:25:22 其他开发

优化neon代码的一些疑惑

我在汇编中编写了一些霓虹灯代码,旨在最大限度地优化.尽管数字看起来令人满意,但我对了解进一步优化它的可能性很感兴趣.然后我遇到了一个在线工具,它有助于计算每条指令的周期. 这是我的代码的链接:http://pulsar.webshaker.net/ccc/样本-115d4c29 它清楚地标记了我关注的领域,但我无法清楚地理解这些陈述包含开销的原因. 代码段在“评论"区分为7个部分 ..
发布时间:2021-11-17 22:24:47 其他开发

将 arm_compute::Image 转换为 cv::Mat

我有很多基于open cv的代码,但是Arm Compute库提高性能的方式有很多,所以我喜欢将一些arm计算库代码集成到我的项目中.有没有人试过在两个对应的 Image 结构之间进行转换?如果是这样,你做了什么?或者有没有办法共享指向底层数据缓冲区的指针,而无需复制图像数据,只需适当设置步幅和标志? 解决方案 我能够配置一个 arm_compute::Image 对应于我的 cv::Ma ..
发布时间:2021-11-17 22:22:17 AI人工智能

ARM Neon:有条件的存储建议

我想弄清楚如何在 ARM neon 中生成条件存储.我想做的是相当于这个SSE指令: void _mm_maskmoveu_si128(__m128i d, __m128i n, char *p); which 有条件地存储d的字节元素到地址p.选择器n中每个字节的高位决定了d中对应的字节是否会被存储. 有关如何使用 NEON 内在函数执行此操作的任何建议?谢谢 这就是我所 ..
发布时间:2021-11-17 22:22:05 其他开发