- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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; }
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Nadav,
Could you share the example and how you built it?
Evgueni.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have reproduced the issue and will let you know how to resolve it soon.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Evgueni.
Have you found a solution for this issue?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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; }
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This workaround works fine.
Thank you.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page