简体   繁体   中英

What is (if there is) the preferred Android equivalent to iOS accelerate/veclib vDSP framework?

I am investigating some iOS Signal processing code to determine it's portability to the Android platform. There are several methods of the iOS accelerate/veclib(sDSP) framework being used for vector and matrix math operations. These include vDSP_vflt16(int to FP conversion), vDSP_vsmul(vector/scalar multiplication),vDSP_vsort(vector sort), and a few more. Is there an equivalent framework available for the android platform? Note: I am not experienced in this field.

I haven't tested it myself, but take a look at Project NE10 (Open Source from ARM itself as it seems) They claim to let you make use of the NEON instruction set without programming the Assembly yourself. And their functions are probably better optimized than some selfmade stuff anyway...

Yeah, this is a problem for me too...

The answer isn't pretty, but it's workable. Part of the magic of Accelerate is that it uses NEON processing. You could probably write the same functions in Java, but they're going to be much, much slower, not just because of Java, but because they're being run on CPU and not in NEON. Potentially not suitable for signal processing.

The answer? Write the NEON code yourself! The Android NDK supports NEON instructions and intrinsics. And if you do this, you can use the same NEON calls on Android and iOS. Yay! http://www.crickettechnology.com/blog/?p=691

I believe there are a few DSP projects out there working on NEON acceleration on Android.

(I know this question is old by this point, but it's at the top of the Google results so I'm answering for reference.)

Take a look at RenderScript: http://developer.android.com/guide/topics/renderscript/compute.html RenderScript is a framework for running computationally intensive tasks at high performance on Android. RenderScript is primarily oriented for use with data-parallel computation, although serial computationally intensive workloads can benefit as well. The RenderScript runtime will parallelize work across all processors available on a device, such as multi-core CPUs, GPUs, or DSPs.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM