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

Fail to preform DFTI.DftiComputeBackward on 64 bit platform (windows)

Nadav_H_
Beginner
566 Views

Hello.

I've built an example application in C# using visual studio 2012.
The program do FFT for the vector {1,2,3,4,5,6,7,8,9,10} and then reverse FFT and checks if the return values are the same as the original input vector.
I used the mkl_rt.dll version 11.2 found in "C:\Program Files (x86)\Intel\Composer XE 2015\redistia32\mkl". and "C:\Program Files (x86)\Intel\Composer XE 2015\redist\intel64\mkl"

When I ran the project on 32 bit platform the result was correct and on the 64 bit platform the result of the FFT was fine too, but when I do the IFFT the result i'm getting is:
{4.72139793306691E-309 ,9.4427958661338E-309,  1.4164193799200703E-308, 1.888559173226761E-308,  2.3606989665334513E-308, 2.832838759840142E-308, 3.3049785531468318E-308, 3.7771183464535221E-308, 4.2492581397602123E-308, 4.7213979330669026E-308}

Moreover, the last result is also inconsistent, i'm getting different but very low values on the sequential runs.

Nadav.

 

0 Kudos
1 Solution
Evgueni_P_Intel
Employee
566 Views

You can use the following two steps to workaround the issue in the example.

1. Remove DFTI.DftiSetValue(desc,DFTI.BACKWARD_SCALE,scale_factor);

2. Add the following loop after DFTI.DftiComputeBackward(desc,x_transformed,x_normal);

        for (int i=0; i<length; i++) {
            x_normal = x_normal*scale_factor;
        }

 

View solution in original post

0 Kudos
8 Replies
Evgueni_P_Intel
Employee
566 Views

Hi Nadav,

Could you share the example and how you built it?

Evgueni.

0 Kudos
Nadav_H_
Beginner
566 Views

Hi Evgueni.

I have built the program using the example file downloaded from this link: https://software.intel.com/en-us/articles/using-intel-mkl-in-your-c-program/

I used example_02 and copy the dll's found in  "C:\Program Files (x86)\Intel\Composer XE 2015\redist\intel64\mkl"
I have attached the project.

 

 

0 Kudos
Evgueni_P_Intel
Employee
566 Views

I have reproduced the issue and will let you know how to resolve it soon.

0 Kudos
Nadav_H_
Beginner
566 Views

Hi Evgueni.

Have you found a solution for this issue?

0 Kudos
Evgueni_P_Intel
Employee
566 Views

We have root-caused the issue to setting the backward scale -- the value gets corrupted on its way to native Intel MKL.

Except this issue, the example works.

We have put this issue in our backlog and will get to it later.

If setting backward scale is showstopper for you, please open an issue at premier.intel.com

0 Kudos
Nadav_H_
Beginner
566 Views

Backward scale is a showstopper for us.

I'm not authorized to access premier.intel.com.
Do you know if this issue is going to be fixed in the next MKL version and when this version is going to be released?
 

0 Kudos
Evgueni_P_Intel
Employee
567 Views

You can use the following two steps to workaround the issue in the example.

1. Remove DFTI.DftiSetValue(desc,DFTI.BACKWARD_SCALE,scale_factor);

2. Add the following loop after DFTI.DftiComputeBackward(desc,x_transformed,x_normal);

        for (int i=0; i<length; i++) {
            x_normal = x_normal*scale_factor;
        }

 

0 Kudos
Nadav_H_
Beginner
566 Views

This workaround works fine.

Thank you.

0 Kudos
Reply