如何在 iPad A4 处理器上执行整数 SIMD 运算?

Posted

技术标签:

【中文标题】如何在 iPad A4 处理器上执行整数 SIMD 运算?【英文标题】:How do I Perform Integer SIMD operations on the iPad A4 Processor? 【发布时间】:2010-10-02 19:31:09 【问题描述】:

我觉得需要速度。双 for 循环正在扼杀我的 iPad 应用程序性能。我需要 SIMD。如何在 iPad A4 处理器上执行整数 SIMD 操作?

谢谢, 道格

【问题讨论】:

【参考方案1】:

指令集为NEON,intrinsics reference

我从来没有找到关于它们实际上是什么的好的文档。但是如果你接触过 SSE,你很快就会学会它

【讨论】:

这是一个图像处理应用程序。我需要将通常使用 LUT 完成的窗口级操作转换为 SIMD 操作。我需要尽可能快地触摸屏幕上的每个像素。使用 GPU + GLSL 会使事情变得复杂。 这可能会使事情复杂化,但它更可能更接近您真正想要完成的目标。【参考方案2】:

为了获得最快的速度,您将不得不编写使用 NEON SIMD 操作的 ARM 汇编语言代码,因为 C 编译器通常不会生成非常好的 SIMD 代码,因此手工编写的汇编语言会产生很大的不同。我在这里有一个简短的介绍:http://www.shervinemami.co.cc/iphoneAssembly.html

请注意,iPad A4 使用 ARMv7-A CPU,因此 NEON SIMD 指令的参考手册位于:http://infocenter.arm.com/help/topic/com.arm.doc.ddi0406b/index.html (但它有 2000 页长,需要理解汇编代码,可能还需要了解 SIMD!)。

【讨论】:

以上是关于如何在 iPad A4 处理器上执行整数 SIMD 运算?的主要内容,如果未能解决你的问题,请参考以下文章

如何将无符号整数加载到 SIMD 中

使用 iPhone 的 SIMD 浮点单元将浮点数转换为整数

.net core SIMD范例分析

NASM ctypes SIMD - 如何访问返回到ctypes的128位数组?

是否可以使用 SIMD 指令批量处理相同的功能?

数字信号处理中的 SIMD