iphone – iOS中数组的快速比较

我需要围绕更大的2D数组值移动一个小的2D数组值,并将较大数组中大于较小数组中相应值的任何值设置为较小数组的值.想想图像合成,但是使用两个浮点数的2D数组.我需要尽快完成这么多次.只是想知道是否有一些方法可以优化使用NEON Assembly,Accelerate框架或其他一些我没有听说过的方法.有什么比双嵌套for循环更快比较和替换值?例如,将值存储为1D数组而不是2D数组可能会更快吗?或者更快地访问行而不是每列的值?只是试图挤出我能得到的任何额外的速度,但不知道如何. 最佳答案 我不知道Accelerate框架中可以执行您想要的任何功能.你绝对可以使用NEON来加速它,而不是直接使用汇编语言,使用vmin_f32内在函数一次处理两对浮点数,或者使用vminq_f32一次处理四对浮点数.

这些链接可能有助于您开始使用内在函数,但我真的没有更好的建议:

How to use the multiply and accumulate intrinsics in ARM Cortex-a8?
ARM Information Center – NEON Intrinsics
ARM NEON Optimization. An Example

我通过谷歌搜索霓虹内在函数教程找到了那些.

此外,开发人员工具包还包含一些ARM体系结构文档:

Xcode 4.2:/Developer/Library/PrivateFrameworks/DTISAReferenceGuide.framework/Versions/A/Resources/ARMISA.pdf
Xcode 4.3:/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/Frameworks/DTISAReferenceGuide.framework/Versions/A/Resources/ARMISA.pdf

点赞