Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

IPP static multi-threading libraries

vladimir12345
Beginner
394 Views

Hi,

1. Some sources say that IPP static libraries are always none multi-threading, others -
there are 2 static versions: none- and multi-threading.
Doesit depend from IPP version ? I use IPP 5.3.3 and didn't find any static multi-threading version :-(

2.Ourproject uses static none multi-threadingIPP libraries(wemanage threadsyourself) but
we want to call severalmethodsof IPP multi-threading librariesinside our project.
For this reason we created additionalwrapper librarythat wrappers methods of
IPP dynamic multi-threading libraries. Ourprojectis compiledwiththe staticlibrariesandour wrapper.
After this compilation the multi-threading methods don't work in multi-threading mode :-(
Though a
fter removing (for testing purpose) the static libraries from the project and re-compiling
the project with the wrapper only the multi-threading methodsare working in multi-threading mode.
Could somebody clear this issue ?

Thanks,
Vladimir

0 Kudos
3 Replies
Vladimir_Dudnik
Employee
394 Views
Hello,
originally, IPP did not have static multithreaded libraries. They were added only in IPP 5.3 version. You just need to look for ippXmerged_t.lib libraries.
If you want only few function use threading you may consider this approach:
-link your application with IPP threaded libraries
-call ippSetNumThreads(1) at the beginning of your application to disable threading
-call ippSetNumThreads(N) before call of function you want to be threaded, call that functionandcall ippSetNumThreads(1) after that
Regards,
Vladimir

0 Kudos
vladimir12345
Beginner
394 Views
Thank you very much for your reply !
Therewas no any info about *_t.lib in the specs.
Really we want to run in parallelsome multi-threadingmethods withnone multi-threading methods (simultaneously, not sequentially). More exactly,several images are processing in parallel (every image is sliced),using none multi-threading methods. But somemethods are applyedto full image so they should be multi-threading. Threrefore we need multi-threading and none multi-threading methods to be executed SIMULTANEOUSLY.

Are methods of multi-threading libraries may be freely mixedwith methods of none multi-threadinglibraries ?
Thanks,
Vladimir

0 Kudos
Vladimir_Dudnik
Employee
394 Views
Imay depend on the way you mix the threaded and non-threaded methods. I mean you most probably will not be able to link for example ippimerged.lib and ippimerged_t.lib in application simulteneously because of names conflict.
But you may be able to call ippSetNumThreads(1) before functions you want to run in single thread mode and ippSetNumThreads(N) before function you want to use N threads to run.
I would also recommend you to take a look on IPP DMIP (deferred mode image processing) sample which provide you high level API to construct your image processing pipeline and it will use IPP and threadinginternally, trying to utilize the knowledge on whole task (what each particular IPP function does not have)
Regards,
Vladimir

0 Kudos
Reply