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)
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.
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.
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.
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?