- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I'm currently using IPP (2017) on Linux, so far it behaves relatively well, but there is something that remains cryptic to me:
How do I determine which library to link based on the current configuration?
Right now I have this installed:
libippcc.a libippchy8.so libippdcmx.so libippsl9.so
libippcce9.so libippcore.a libippdcn0.so libippsm7.so
libippcck0.so libippcore.so libippdcn8.so libippsmx.so
libippccl9.so libippcore_tl.a libippdc.so libippsn0.so
libippccm7.so libippcv.a libippdcy8.so libippsn8.so
libippccmx.so libippcve9.so libippi.a libipps.so
libippccn0.so libippcvk0.so libippie9.so libippsy8.so
libippccn8.so libippcvl9.so libippik0.so libippvm.a
libippcc.so libippcvm7.so libippil9.so libippvme9.so
libippccy8.so libippcvmx.so libippim7.so libippvmk0.so
libippch.a libippcvn0.so libippimx.so libippvml9.so
libippche9.so libippcvn8.so libippin0.so libippvmm7.so
libippchk0.so libippcv.so libippin8.so libippvmmx.so
libippchl9.so libippcvy8.so libippi.so libippvmn0.so
libippchm7.so libippdc.a libippi_tl.a libippvmn8.so
libippchmx.so libippdce9.so libippiy8.so libippvm.so
libippchn0.so libippdck0.so libipps.a libippvmy8.so
libippchn8.so libippdcl9.so libippse9.so
libippch.so libippdcm7.so libippsk0.so
Naively, I first linked all of them, using a bunch of flags in that vein:
-lippcce9 -lippchn8 -lippchmx -lippcc -lippvml9 -lippsy8 -lippcvk0 -lippie9 -lippchm7 -lippimx -lippvme9 -lippchl9 -lippcvk0 -lippcve9 -lippvmk0 -lippdcmx -lippchk0 -lippsmx -lippin8 -lippdc -lippiy8 -lippin0 -lippil9 -lippccy8 -lippik0 -lippse9 -lippcore -lippcvn8 -lippdcl9 -lippcc -lipps -lippsm7 -lippccl9 -lippdce9 -lippchn0 -lippcv -lippdck0 -lippcvm7 -lippdcm7 -lippim7 -lippsn0 -lippvmn8 -lippdcn0 -lippcck0 -lippccn8 -lippccm7 -lippvmn0 -lippvmm7 -lippvmy8 -lippcvmx -lippvm -lippcvn0 -lippcvl9 -lippche9 -lippvmmx -lippch -lippsl9 -lippccn0 -lippi -lippcvy8 -lippsk0 -lippchy8 -lippsn8 -lippdcn8 -lippdcy8
Things were going well, until I got an "Illegal Instruction" error at runtime terminating the program.
I tried compiling it in debug mode and running it using gdb, this led me to locate the error in libippcvk0.so, it happened when I tried to use some Gaussian Filter init function.
Worried, I tried running the same program compiled with the same flags on another machine (still an Intel processor), I still got an Illegal Instruction error but only upon calling another ipp function further during the execution, the init function went apparently well but effectively applying this gaussian filter on an image made the whole thing crash.
At this stage, I made some hypothesis: not every library in the bunch is always required and the choice of which one to pick depends on what processor you have (or at least what instruction set) which makes sense since it's all about low-level performance.
I removed the -lippcvk0 flag in the hope those functions would be implemented elsewhere and it worked on my computer, no illegal instruction, I can successfully filter images.
Knowing all that, I still cannot tell why libippcvk0.so was not the chosen one (and some other .so was), what is the meaning behind each library name anyway ?
In the case of libippcvk0.so, "ipp" is self explanatory, "cv" may stands for "computer vision" (I guess), but what about the "k0" ?
Also, what about libippcve9.so, libippcvl9.so, libippcvm7.so, libippcvmx.so, libippcvn0.so, libippcvn8.so, libippcv.so or libippcvy8.so ?
Thank you for your time.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wow, that's the exact kind of information I was looking for, the keyword there was "dispatcher".
Thanks :)

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page