Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28994 Discussions

Linking to csfft1d and other FFT functions

antony
Beginner
417 Views

Several people are asking about this on the MKL forum, but there are no answers, so I thought I'd try here since I'm using IVF:

I have some code from a few years ago using the easy-to-use FFT routines csfft1d etc. I can't for the life of me figure out how to get these to link with the latest IVF and MKL - help please?

I have well tested code using these functions, and given what a mess the new MKL FFT routines are in F90 (you have to use EQUIVALENCE to call them - ugh!) I think they are well worth supporting.

thanks,

Antony

PS. The routines are documented at http://www.intel.com/software/products/mkl/docs/fft2dfti.pdf - I'm fairly sure you used to be able to link to them very easily using default MKL libraries, without any external wrappers etc.

0 Kudos
3 Replies
Steven_L_Intel1
Employee
417 Views

As it happens, I had another customer ask about these routines last week and I got the scoop from an MKL engineer. (I now see that this customer also posted in the MKL forum. These FFT-to-DFTI wrappers were present in older versions of Intel MKL but were discontinued in version 10. The response I received was that users were encouraged to code to the DFTI interface directly. Note that FFTW-to-DFTI wrappers are still provided.

0 Kudos
antony
Beginner
417 Views

As it happens, I had another customer ask about these routines last week and I got the scoop from an MKL engineer. (I now see that this customer also posted in the MKL forum. These FFT-to-DFTI wrappers were present in older versions of Intel MKL but were discontinued in version 10. The response I received was that users were encouraged to code to the DFTI interface directly. Note that FFTW-to-DFTI wrappers are still provided.

Thanks for the reply - yes, it seems all old code is now broken - so we either need to re-write and re-debug for the new interface, use a generic f90 code from elsewhere (slow but simplest), or switch to the AMD math library (which has similar functions to the old MKL ones).

Does anyone have any example code using the new f90 MKL FFT interface? e.g. for the basic case of doing a 2D convolution via FFTs. It's not obvious to me how you use EQUIVALENCE with allocatable arrays - does one have to resort to f77 hacks? (i.e. calling an external f77 subroutine without type checking that then calls the fft subroutines as-if with a 1D array)

0 Kudos
Steven_L_Intel1
Employee
417 Views

Please ask this in the MKL forum.

0 Kudos
Reply