Modules may be loaded and unloaded.
Each IPP linked module require IPP to be initialized.
However, as it is known, IppInit() is required to be called once per process.
Multiple calls to IppInit() produces memory leaks.
Use IppInit() in main module is not allowed by design.
So, each module at load time needs to decide is IppInit() required or not.
I didn't find any way to make my application call IppInit() only once per process.
Does anybody know is there any method to find is IPP initialized already or not?
PS. Environment: VisualStudio C++ 2008
链接已复制
Is there any progress?
Is there any progress?
I'm sorry - No. However, I'll take a look at the recent thread posts.
Best regards,
Sergey
Hello Yaroslav,
I see Sergey provided some suggestion on the replay on #20:
This problem looks related to the OpenMP libraries. The OpenMP library comes from Intel Compiler, and Intel IPP use this library for function threading. That is why he suggested checking this problem on the Intel compiler forum:
To show this problem clearly, he also suggest following the following test case:
You can prepare the test sample without IPP, only with OpenMP. Create a empty DLL linked to libiomp5 (i.e. Intel's OpenMP). Call omp_get_num_procs, then unload your custom DLL. Will the behavour be the same
That will help to isolated if the root problem come from OpenMP.
Thanks,
Chao
I prepared purified example with OpenMP only.
My question was about where to post it.
Hello Yaroslav,
Here is the forum for the compiler:
http://software.intel.com/en-us/forums/intel-c-compiler/
Thanks,
Chao
