iOS 上 GPU 上的快速傅里叶变换

2024-01-06

我正在为 iOS(即 iPhone 或 iPad)实现计算密集型应用程序,这些应用程序大量使用快速傅里叶变换(以及一些信号处理操作,例如插值和重采样)。允许在 iOS 上运行 FFT 的最佳库和 API 是什么?

我简要研究了 Apple Metal 和 Apple vDSP。我不确定 vDSP 是否利用 GPU,尽管它似乎高度并行化并利用 SIMD。 Metal 似乎允许访问 GPU 来执行计算密集型应用程序,但我无法找到用于 FFT 和基本信号处理操作的库(类似于 AMD 的 clFFT)。苹果提供这样的库吗?

是否还有其他适用于 iOS 且适合计算密集型应用程序的 API 和库?

Thanks.


vDSP 实际上使用内置的(从 iPhone 3GS 开始)NEON 矢量算术处理器,正如您已经说过的那样,它是一个 SIMD 引擎,并且对于某些任务(包括 FFT)来说非常快。

我没有在 GPU 上计算 FFT 的经验,但我怀疑它会比 vDSP 中的 NEON 指令更快,因为它的唯一目的是这些与媒体和信号处理相关的任务。

vDSP 在底层使用 Arm NEON 指令,使它们的使用变得非常简单。如果你想动手,你也可以手动使用 NEON 指令集,但我认为即使在运行时与 vDSP 相当也将是一个挑战,特别是如果你只需要像 FFT 这样的开箱即用功能。

如果您想亲自测试 NEON 引擎,这里有一个很棒的基准 http://www.roylongbottom.org.uk/android%20neon%20benchmarks.htm作为适用于 Android 设备的 APK,用于测试常规计算与 NEON 计算。您唯一需要注意的是,如果您的数据大于 L1 Cache,则 L2 Cache 访问将成为限制因素,如果超过此范围,则不会有明显的运行时优势。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 上 GPU 上的快速傅里叶变换 的相关文章

随机推荐