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

intel mkl mkl_freeBuffer() access violation exception error

mmmmm__hamed
Beginner
473 Views

hi 

i use mkl c++ compiler 11.0.066 and mkl10.1 and c++/clr vs2008

i use fft and conv function from mkl in multi thread realtime application (each thread exec fft and conv parallel)

but after little time usage memory go up and application crash.

with any leak detector i cant find any leakage in my code .

recently i study mkl help and find i must use mkl_FreeBuffer() after mkl function for avoidance memory leakage

but when i call mkl_freeBuffer Application crash with access violation exception.

what shoud i do?

when error occured last row of call stack is in a fft function and stop after mkl_freeBuffer() like below

mkl_complex16*  intelForwardFft (MKL_Complex16* input,int length)

{

            DFTI_DESCRIPTOR *fft_handle;

           dfticreatedescriptor(&fft_handle,dfti_double,dfti_complex,1,length) ;

           dftisetvalue(fft_handle,dfti_placement,dfti_inplace);

          dfti_computeforward(fft_handle,input);

          dftifreedescriptor(&fft_handle);

          mkl_FreeBuffers();

          return input;     ===>cursor stop here

}

my prog is realtime .this mean that after freebuffer after each fft , my prog again exec fft .  in this situation MKL_FreeBuffer() can solve my memory leakage problem?

i use 64 bit mkl

 additional library directory  -> em64t\lib 

additional dependecy -> mkl_intel_lp64_dll.lib   ;    mkl_intel_thread_dll.lib     ;  mkl_core_dll.lib

thanks for you.

0 Kudos
4 Replies
Zhang_Z_Intel
Employee
473 Views

Your MKL version is ages old. Please consider upgrading to a recent release, for example, MKL 11.1.3.

In a threaded application, you should call mkl_thread_free_buffers() from each thread.

0 Kudos
mmmmm__hamed
Beginner
473 Views

i dont find mkl_thread_free_buffer() in my mkl library .

Does this function exist in my library?

0 Kudos
Zhang_Z_Intel
Employee
473 Views

hamed i. wrote:

i dont find mkl_thread_free_buffer() in my mkl library .

Does this function exist in my library?

If you don't find it in your MKL installation, then your MKL version is too old. Please update to a recent MKL release (for example, 11.1). At least, you can get a free 30-day trial of the latest release here: http://software.intel.com/en-us/intel-math-kernel-library-evaluation-options.

 

 

0 Kudos
mmmmm__hamed
Beginner
473 Views

Zhang Z (Intel) thanks for you.

i install trial of mkl 11 and use mkl_thread_free_buffer() at the end of each worker thread. 

my leakage has major reduce and my app more time worked.

whether this happen shows problem is from mkl 10 library or no , problem is from my code?

i want sure that the problem is not from me , and then buy mkl 11 (it is 500 $) .

summary , Do you think mkl 10 has a memory problem?

thnaks

0 Kudos
Reply