Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Ted_Christopher
Beginner
99 Views

Invalid configuration parameters - encountered with 1D FFT

Hi,
I have been running a large code on my Mac OSX machine using icc and a bunch of MKL routines. These routines have included 2DFFT's. Anyway upon adding a 1DFFT-using code segment I have hit an "Invalid configuration parameters" error when the first (backward) 1DFFT call is made.
I often write my own small test routines when adding a MKL routine to my usage. This supplements the limited MKL manual. Anyway I have done this with 1DFFT's and encountered no problem. But when the same code is used in a larger program I hit the Invalid Configuration. I printed out a bunch of GetValue-obtained values just prior to the DftiComputeBackwards call. You can see these below and they match the output I get in my simple (and successful) test program.
I have also tried call by value and passing the address of the configuration variable. No change.
Below is the relevant program output.
Thanks for any help, Ted
-> BACKWARD_SCALE - Status 0, scale 0.031250
-> PACKED_FORMAT - Status 0, format 56
-> DIMENSION - Status 0, dimension 1
-> LENGTHS - Status 0, length 32
-> PLACEMENT - Status 0, placement 43
-> FORWARD_DOMAIN - Status 0, forward 33
-> PRECISION - Status 0, precision 35
-> REAL_STORAGE - Status 0, real storage 42
-> REAL_INPUT_STRIDES - Status 0, in strides 0
-> REAL_OUTPUT_STRIDES - Status 0, out strides 0
-> NUMBER_OF_USER_THREADS - Status 0, user threads 1
-> COMPLEX_STORAGE - Status 0, complex storage 39
-> DFTI_CONJUGATE_EVEN_STORAGE - Status 0, conjugate even storage 40
-> DFTI_COMMIT_STATUS - Status 0, commit status 30
-> DFTI_INPUT_DISTANCE - Status 0, input distance 0
-> DFTI_OUTPUT_DISTANCE - Status 0, output distance 0
ERROR message: MKL DFTI ERROR: Invalid configuration parameters
Error status = 2
Test Failed : DftiComputeBackward(*setupReal, timeData)
0 Kudos
4 Replies
Dmitry_B_Intel
Employee
99 Views

Hi Ted,

If your test and your larger program give the same output that you've provided and then one passes and the other fails, then probably the issue is somwhere else. The configuration listed in your post looks good.The star at "*setupReal" looks suspicious. The difference between the test and larger problem may also be in the way they are linked with MKL.

Thanks
Dima

Ted_Christopher
Beginner
99 Views

Hi Dima,
Thank you for the suggestion. The asterisk (*) is there as I had passed in setupReal via address. I have also done it via value-passing.
The compilation specifications for the simple (and successful) program are the same as for the big code.
I will try playing with it some more.
Ted
Ted_Christopher
Beginner
99 Views

Dima,
Although the GetValue-retrieved configuration values looked good, somewhere else there must have been a bad configuration value. Another function parameter was an array and it had values written beyond its malloc'ed length and thus this overwriting must have messed up some configuration values. With a larger malloc the Invalid Configuration problem is gone.
Thanks,
Ted
Dmitry_B_Intel
Employee
99 Views

Ted,

When you do DftiGetValue(hand,DFTI_INPUT_STRIDES,array), make sure the size of the array is 1 more than the dimensionality of transform. In 1D case the array should be capable of holding two MKL_LONG items.
The same refers to DFTI_OUTPUT_STRIDES.

Thanks
Dima

Reply