I download the IPP 9.0 Legacy Libraries. I find there are some threaded dll in \windows\lib\intel64\threaded. These name are same with the dll in \windows\lib\intel64. So may I know the difference of the two type dll and which version I will use.
Thank you. So if I link the threaded lib and Call ippSetNumThread(1) then the effect is the same as the non-threaded version?
The reason is my project are used in many application. some application are single thread, so the performance can benifit from threaded lib. but some application are multithreaded, then I call ippSetNumThread(1) to disable the internal thread in ipp as described in https://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-threading-openmp-faq
another question is, can i use the threaded lib of IPP 9.0 Legacy Libraries and IPP 2018 in one project. because i think the lib in IPP 2018 is single thread version.
>> So if I link the threaded lib and Call ippSetNumThread(1) then the effect is the same as the non-threaded version?
<< yes, that's correct
>> Another question is, can i use the threaded lib of IPP 9.0 Legacy Libraries and IPP 2018 in one project. Because i think the lib in IPP 2018 is single thread version.
1. Actually, IPP 2018 contains single and multithread versions both ( you may look at the <ipproot>/lib/intel64/threaded directory which contains threaded libs.
2. Actually we didn't tested such combination and probably some conflict may happen. Which functions from 9.0 legacy are you going to use?
Thanks for your reply.
I use many functions such ippiHistogramEven, ippiDilate, ippiFilterPrewitt ippiFilter ippiDFTFwd_RToPack_ and so on.
According to your reply, maybe I should select the threaded lib.
thanks for these details. ippiDilate and ippiDFT are threaded. We recommend to try using serial versions both of these version and see how your application will work and then will try to use threaded variants....
In some cases, it isn't allowed to create new thread in the application level, so I can benifit from the threaded lib which using the internel thread. While in another cases, it's allowed to create threads in the application level, then I can call ippSetNumThread(1) to disable the internal thread and using the threads of application level. the two cases is deploy in different process. so the ippSetNumThread(1) only affect the calling process?
Is that OK?