Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

IPP or MKL... or both?

lucksus
Beginner
614 Views
Hi,
what i need is a fast implementation of all kinds of matrix operations (with complex matrices). Such as matrix-vector / matrix-matrix multiplication.
But i also need to do 1-dim fft over the columns of a matrix.
Now i'm wondering which library would be best for my needs.
I've downloaded the evaluation version of both IPP and MKL,
and replaced my old fft code with the IPP-fft.
But i don't see matrix operations which deal with complex values within IPP.
The BLAS subset of MKL includes matrix operations for complex matrices but these functions need an array ofMKL_Complex16, while the fft function within MKL expects the data tobe splitted in two arrays, one with real, one with complex values.
This means i would have to transform the matrix columns before and after i use the fft. (copy from array of MKL_Complex16 to two arrays of double... bad performance)
I see the IPP-fft expects the the data in an array of Ipp64fc (or kind of) which is a struct containing two doubles,like MKL_Complex16. So converting between these two types is not necessary, just casting should suffice.
But i have to use both, IPP and MKL.
So my question is: is there a way to do the same with only one of the two libs?
0 Kudos
1 Reply
Todd_R_Intel
Employee
614 Views
The newer FFTfunctions in MKL (labelled DFTs)store complex numbers in a struct just as the complex BLAS functions do.The FFT functions that you are referring to in MKL that require two separate arrays are older functions that are deprecated so it would be better for you to stop using these anyways.
Check outchapter 11 of the MKL reference manual (http://www.intel.com/software/products/mkl/docs/mklman.htm). Alsothe example source code in the examples/dftc directory of Intel MKL version 7.2.1 might be helpful.
-Todd
0 Kudos
Reply