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

Invalid configuration parameters - encountered with 1D FFT

Ted_Christopher
Beginner
635 Views
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
635 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

0 Kudos
Ted_Christopher
Beginner
635 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
0 Kudos
Ted_Christopher
Beginner
635 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
0 Kudos
Dmitry_B_Intel
Employee
635 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

0 Kudos
Reply