Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Wrong interface in FFT

Svein-Atle
Beginner
709 Views
Hi,
I have been using the MKL FFT's for a while and am wondering if something changed with version IVF 11.1.038.
I call DftiComputeForward from a subroutine where x_in is an INTENT(IN) array. This causes an error in the current release, but worked earlier. To get around it I made a local copy of the array.

Here is what the documentation says about DftiComputeForward:
status = DftiComputeForward( desc_handle, x_in, y_out )

So I think the behaviour is not in accordance with the documentation.
I have specified DFTI_NOT_INPLACE.

Sincerely,
Svein-Atle
0 Kudos
5 Replies
Dmitry_B_Intel
Employee
709 Views

Hi Svein-Atle,

Thank you for communicating the issue. Whenyou say 'something has changed' waht previous version of the product do you refer to? Areason of the misbehaviour you observed may be associated withthe type of the parameterspassed to DftiComputeForward - misinterpretation of the parametersd by the compute functionhas been fixed with MKL 10.1 back in 2008. Ifyou provided a little bit more information, the problem couldbefigured out so as to avoid thelocal copy.

Regards,
Dima
0 Kudos
Svein-Atle
Beginner
709 Views

Hi Svein-Atle,

Thank you for communicating the issue. Whenyou say 'something has changed' waht previous version of the product do you refer to? Areason of the misbehaviour you observed may be associated withthe type of the parameterspassed to DftiComputeForward - misinterpretation of the parametersd by the compute functionhas been fixed with MKL 10.1 back in 2008. Ifyou provided a little bit more information, the problem couldbefigured out so as to avoid thelocal copy.

Regards,
Dima

Hi Dima,
I am uncertain about which previous version, but it is about half a year since I last worked on the FFT-program.
I have kept the compiler, IVF with MKL, up to date during the last couple of years.
I have not misinterpreted the parameters, the program is unchanged.
Anyhow, the documentation indicates that the argument is INTENT(IN) and the routine does in fact not change x_in.
As I see it, the module containing the interfaces is incomplete.

Sincerely,
Svein-Atle
0 Kudos
Dmitry_B_Intel
Employee
709 Views

Hi Svein-Atle,

I'd appreciate if you posted a small example demonstrating how do you use MKL. I believe there is misunderstanding of the documentation.

Thanks
Dima
0 Kudos
Svein-Atle
Beginner
709 Views

Hi Svein-Atle,

I'd appreciate if you posted a small example demonstrating how do you use MKL. I believe there is misunderstanding of the documentation.

Thanks
Dima

Hi Dima,

Enclosed is a program showing how I use the FFT-routines. Comment, uncomment lines 91, 95 an 131, 135.

Sincerely,
Svein-Atle
0 Kudos
Dmitry_B_Intel
Employee
709 Views

Hi Svein-Atle,

Thank you very much for your example. It showed the issue immediately.

This is really a problem in the Fortran interface of DFTI caused by introduction of split-complex transforms in MKL 10.1. Change in the specialization of DftiComputeForward/DftiComputeBackward made your codefail to compile.

It would be nice if you report the problem at Intel Premier Support, at your convenience.

As a workaround to avoid copy, you might consider skipping 'INTENT(IN)' in the declaration of input arrays that are passed down to DftiCompute* functions (lines 65, 113).

Thanks
Dima
0 Kudos
Reply