- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I had a try to upgrade IPP version from IPP 7.1 to 8.0.1. Two issues were found.
1) According to http://software.intel.com/en-us/forums/topic/391419, new function ippsDFTInit_C_32f was added in IPP 8.0. That's good. However, there's still no function ippsDFTGetSize_C_32f available. Even I find it seems to work by using ippsDFTGetSize_C_32fc instead. However, that's not ideal from my understanding.
2) The redistribute library names are changed. In previous version, the library names are like libippac_l.a, libipps_l.a and libippcore_l.a. However, they are changed to libippac.a, libipps.a and libippcore.a. Since the library name are fixed in Makefile, it doesn't work if we don't add a symbolic link to them. Why did that happen? Is it possible to fix it in future release?
Thanks,
Richard
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Richard,
regarding your question about libraries name: in IPP 8.0 we use native OS libraries name conventions for each OS. I understand that you should change your Makefile, but this fact has good side - you can easily switch between static and shared libraries. We will not support old IPP name convention because we had a lot of claims from our customers about usability.
Please change your Makefile once and I hope you will happy.
Thanks, Pavel
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Richard,
regarding your question about libraries name: in IPP 8.0 we use native OS libraries name conventions for each OS. I understand that you should change your Makefile, but this fact has good side - you can easily switch between static and shared libraries. We will not support old IPP name convention because we had a lot of claims from our customers about usability.
Please change your Makefile once and I hope you will happy.
Thanks, Pavel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Richard,
Could you specify the version of IPP you are using?
Both ippsDFTInit_C_32f and ippsDFTGetSize_C_32f functions were added in IPP 8.0.1.
Thanks,
Alexey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Pavel,
It's fine to change the Makefile for me. I just want to confirm whether there's any issue here by using different IPP versions.
If I change the Makefile to "-lippac -lipps -lippcore", for old IPPs, IIRC, it's symbolic linked to multiple thread version, right?
For IPP 8.0, it's single thread, right? Do you see any issues here? You know we can't say we only support IPP 8.0 at the moment.
Thanks,
Richard
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Pavel,
It's fine to change the Makefile for me. I just want to confirm whether there's any issue here by using different IPP versions.
If I change the Makefile to "-lippac -lipps -lippcore", for old IPPs, IIRC, it's symbolic linked to multiple thread version, right?
For IPP 8.0, it's single thread, right? Do you see any issues here? You know we can't say we only support IPP 8.0 at the moment.
Thanks,
Richard
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Richard,
yes, it makes sense. I will think about it.
Thank you, Pavel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Richard,
Thank you, I will think about it.
Pavel
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Pavel,
Are there any updates regarding this issue? I gave a description on this topic below. I'm not sure whether you can give some suggestions about it.
========================================================
We only used single thread static libraries in our products. It seems there’s no impact to us. However, after this deprecation process, the library names have been changed. Let me give some details as below.
IPP 7.0
Static libraries:
libippac.a : Symbolic link to libippac_t.a
libippac_l.a: Single-thread
libippac_t.a: Multi-thread
IPP 7.1
Static libraries:
libippac_l.a: Single-thread, and it’s the only one in 7.1.
IPP 8.0:
Static libraries:
libippac.a: Single-thread, and it’s the only one in 7.1.
For shared libraries, it’s always libippac.so for all the above versions. In addition, the changes to libipps_l.a and libippcore_l.a are similar.
In our current Makefile, we are always using “-lippac_l -lipps_l -lippcore_l”. That means it works for IPP 7.0 and 7.1 but doesn’t work for IPP 8.0.
According to the suggestion from Intel in http://software.intel.com/en-us/forums/topic/494660, we may need to change the link option to "-lippac -lipps –lippcore”. That means its behaviour is quite different between different IPP versions.
• 7.0: Static link to Multi-thread IPP; Dynamic link works.
• 7.1: Static doesn’t work since there’s no libippac.a. Dynamic link works.
• 8.0: Static link to Single-thread IPP; Dynamic link works.
The IPP on Windows may have similar issues.
=========================================================
Thanks,
Richard
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Richard,
sorry for the delay, I had some problems with my account. In IPP 7.1 and IPP 8.0 multi-threaded libraries are deprecated. If you need them you should download a separate package and install it.
Regarding your question "how to link static and/or shared libraries": you can use "-static" option of LD. In this case if you point "-static" LD will link static libraries, if you don't use this option - linker will try to use share libraries in the first priority and only after that static libraries if the linker can't find shared libraries. It is Linux native linker behaviour.
From my point of view if you would like to link static libraries much better use full path and names and use -l{libname} for shared libraries only. For example link with static libraries:
gcc -o testapp $IPPROOT/lib/ia32/libippi.a $IPPROOT/lib/ia32/libipps.a $IPPROOT/lib/ia32/libippcore.a
Link with shared libraries:
gcc -o testapp -L$IPPROOT/lib/ia32 -lippi -lipps -lippcore
Pavel
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page