ARM64 math libraries

Hi everyone-

We’ve been using the Intel Performance Primitives library for the Fourier transform, convolution, and the Hilbert transform.

Now, just like everyone else, we need the equivalent for ARM64. I’ve been looking at the Arm Compute library, CMSIS, and FFTW (since really we just need a nice fast Fourier transform).

Has anyone found a good ARM math library?

Thanks-

Matt

For ARM Macs (and iOS as well), Apple’s vDSP library is very equivalent to Intel IPP.

For non-Apple platforms, the Ne10 library has a SIMD-accelerated FFT. Ne10 is for ARM NEON and, last I checked, it was float-precision only…

1 Like

Thanks, I was just checking out vDSP. Looks promising.

Matt

1 Like

Hi Matt, I’m now in the process of doing exactly what you did. I’m still learning, so I wanted to gauge how involved this process was. Were you able to swap out equivalent IPP functions with vDSP replacements relatively easily, or did you have to deeply refactor your DSP code?

Any experience you have I’d love to hear about it. Thanks!

My approach is to wrap various SIMD libraries with a common API, so that the actual DSP code needs no changes, and the API is the same regardless of which backend is being used.

Here’s my library implemented this way, it currently has backends for IPP, vDSP, and MIPP, as well as FFTW for the FFT.

We use kfrlib with great success. It has ready to use convolution, FFT and other goodies. Builds for x64, arm, etc. with full optimizations and native SIMD usage.

2 Likes

Seconded; we landed on kfrlib for ARM.

Matt

Did you manage to use it on arm platform like Raspberry Pi or Apple’s M? We are trying to build plugins working on embedded linux and are looking for proper audio processing libraries.

Yes, we use it for Apple Silicon. No idea if Raspberry Pi would work, but I so no reason why not.