Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Nadav_H_
Beginner
145 Views

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

Jump to solution

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
145 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

8 Replies
Evgueni_P_Intel
Employee
145 Views

Hi Nadav,

Could you share the example and how you built it?

Evgueni.

Nadav_H_
Beginner
145 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.

 

 

Evgueni_P_Intel
Employee
145 Views

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

Nadav_H_
Beginner
145 Views

Hi Evgueni.

Have you found a solution for this issue?

Evgueni_P_Intel
Employee
145 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

Nadav_H_
Beginner
145 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?
 

Evgueni_P_Intel
Employee
146 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

Nadav_H_
Beginner
145 Views

This workaround works fine.

Thank you.

Reply