我正在研究一些 iOS 信号处理代码,以确定它对 Android 平台的可移植性。iOS 加速/veclib(sDSP) 框架有多种方法可用于向量和矩阵数学运算。其中包括 vDSP_vflt16(int 到 FP 转换)、vDSP_vsmul(向量/标量乘法)、vDSP_vsort(向量排序)等等。是否有可用于 android 平台的等效框架?注意:我在这个领域没有经验。
3 回答
我自己还没有测试过,但是看看Project NE10(看起来是来自 ARM 本身的开源)他们声称可以让您使用 NEON 指令集,而无需自己编写程序集。而且它们的功能可能比一些自制的东西优化得更好......
是的,这对我来说也是个问题...
答案并不漂亮,但它是可行的。Accelerate 的部分魔力在于它使用 NEON 处理。您可能可以用 Java 编写相同的函数,但它们会慢得多,这不仅是因为 Java,还因为它们是在 CPU 上而不是在 NEON 上运行的。可能不适合信号处理。
答案?自己编写 NEON 代码!Android NDK 支持 NEON 指令和内在函数。如果这样做,您可以在 Android 和 iOS 上使用相同的 NEON 调用。耶! http://www.crickettechnology.com/blog/?p=691
我相信有一些 DSP 项目致力于 Android 上的 NEON 加速。
(我知道这个问题现在已经很老了,但它在谷歌结果的顶部,所以我回答以供参考。)
看看 RenderScript: http: //developer.android.com/guide/topics/renderscript/compute.html RenderScript 是一个框架,用于在 Android 上以高性能运行计算密集型任务。RenderScript 主要面向数据并行计算,尽管串行计算密集型工作负载也可以从中受益。RenderScript 运行时将并行处理设备上所有可用处理器的工作,例如多核 CPU、GPU 或 DSP。