Hi,
I am currently using MKL FFT module for our application on Windows 10 and Linux. Frequently I got Access violation exception on Win10 when the program enters this line:
status = DftiCreateDescriptor(&descriptor, DFTI_SINGLE, DFTI_COMPLEX, 2, dim).
The complete function is:
DFTI_DESCRIPTOR_HANDLE descriptor = NULL; MKL_LONG status; MKL_LONG dim[2]{ height, width }; status = DftiCreateDescriptor(&descriptor, DFTI_SINGLE, DFTI_COMPLEX, 2, dim); status = DftiSetValue(descriptor, DFTI_PLACEMENT, DFTI_NOT_INPLACE); //Out of place FFT status = DftiCommitDescriptor(descriptor); status = DftiComputeForward(descriptor, in.data(), out.data()); status = DftiFreeDescriptor(&descriptor); //Free the descriptor
The full message thrown at this point is:
Exception thrown at [some address] in fft.exe: 0xC0000005: Access violation reading location 0x0000000000000018.
The two addresses 0x05 and 0x18 are constant in both our application and the small test.
The problem is triggered randomly. For example I have a lot, say, 1000 images. The problem happens when processing 200th image at this time, then 300th in another try.
The configuration for the problem is: x64, (debug/release), openmp multi threads. If I disable openmp, there is no problem.
Does anyone know how to deal with it? Thank you!
Best,
Jingchun