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

Is MKL 1D FFT multi-threading?

Filippo_Spiga
Beginner
1,175 Views
Dear all,
I have tried to check my problem settinb OMP_NUM_THREAD and after MKL_NUM_THREAD more than 1 but nothing seems to be happen. In my program I create a descriptor for 1D FFT

status = DftiCreateDescriptor( &Desc_Handle, DFTI_DOUBLE, DFTI_COMPLEX, 1, n );

and after I call

status = DftiComputeForward( Desc_Handle, y );

Computation is correct, I check the results at the end. but is 1D FFT inside MKL library multi-thread?

Regards
0 Kudos
6 Replies
Gennady_F_Intel
Moderator
1,175 Views
Quoting - Filippo Spiga
Dear all,
I have tried to check my problem settinb OMP_NUM_THREAD and after MKL_NUM_THREAD more than 1 but nothing seems to be happen. In my program I create a descriptor for 1D FFT

status = DftiCreateDescriptor( &Desc_Handle, DFTI_DOUBLE, DFTI_COMPLEX, 1, n );

and after I call

status = DftiComputeForward( Desc_Handle, y );

Computation is correct, I check the results at the end. but is 1D FFT inside MKL library multi-thread?

Regards

it depends on the verision of MKL you are using and the size of the problem you are running on
--Gennady
0 Kudos
Filippo_Spiga
Beginner
1,175 Views

it depends on the verision of MKL you are using and the size of the problem you are running on
--Gennady


Interesting. Can you give me some details?

I have the possibility to use two different version of MKL
- Intel MKL 10.0
- Intel MKL 10.0 Update 2
and my problem size varies between 256 to 8388608 (2^23).

Cheers
0 Kudos
Dmitry_B_Intel
Employee
1,175 Views

Hi Filippo,

It is in-place transform (the default) that is not threaded in this version.
Will out-of-place transform go for your needs?

Thanks
Dima
0 Kudos
Filippo_Spiga
Beginner
1,175 Views

Hi Filippo,

It is in-place transform (the default) that is not threaded in this version.
Will out-of-place transform go for your needs?

Thanks
Dima


I will try setting the placement ad OUT-OF-PLACE. But, there is a way to check that the computation is really made in a multi-threaded way?
0 Kudos
Dmitry_B_Intel
Employee
1,175 Views

Environment variable KMP_AFFINITY containing option 'verbose' will report to you about threading. Hope this helps.

Dima
0 Kudos
Gennady_F_Intel
Moderator
1,175 Views
Quoting - Filippo Spiga


Interesting. Can you give me some details?

I have the possibility to use two different version of MKL
- Intel MKL 10.0
- Intel MKL 10.0 Update 2
and my problem size varies between 256 to 8388608 (2^23).

Cheers

Filippo,

just as an additional info: add the link to the where you can find the document describes the cases for which the Intel MKL 10.2 and later 1D complex-to-complex FFTs are threaded.

"Intel MKL Threaded 1D FFTs"
--Gennady

0 Kudos
Reply