A break from the past: Intel® IPP 9.0 ushering in some new features and saying goodbye to a few.
With each release, the domains and features supported by Intel IPP are assessed and adjusted based on customer needs and technology trends. Intel IPP powers extremely ambitious applications, and most of these applications have been able to move forward over several releases as new features arrived.
Significant effort has gone into streamlining the Intel IPP code base. This has two main advantages for the user – a leaner and smaller-sized product, and increased user productivity right out of the box. An important aspect of this work is deprecation.Deprecating a feature indicates that “this feature is available now, but will be removed in a future release and will not be optimized for future architectures, so please adjust your use case accordingly”.
A decision to remove a feature or component from a product is never a trivial one; we therefore have put a lot of thought when deciding to remove functionality. We believe this will benefit the majority of our customers by helping us to make forward progress. We are committed to giving every developer an easy transition into IPP 9.0. To this end this post gives you an overview of IPP 9.0 ---what’s new, what’s changing, alternatives to deprecated features and the road ahead.
What’s New in Intel® IPP 9.0?
- Several optimizations in cryptography, computer vision and image processing domains for Intel® Quark™,Intel® Atom™, and any processor with Intel® AVX2 instructions support.
- New API’s to support external threading.
- Improved CPU dispatcher with auto-initialization and code dispatching features.
- Optimized Cryptography functions to support SM2/SM3/SM4 algorithm.
- Custom Dynamic Library Building tool.
- New API’s to support external memory allocation
What’s changing with IPP 9.0?
We have come up with a strategy to reduce code bloat and reduce the hassle for developers dealing with deprecated functions by providing a separate package called "Legacy Libraries". This package is independent from Intel® IPP product and contains those functions removed in Intel IPP 9.0 as well as the deprecated functions in previous Intel® IPP releases. Please find the alternatives bellow for these deprecated functions.
Alternatives for some commonly used IPP deprecated domains.
Here’s a list of deprecated features and some workarounds you can use. We would love to get your feedback and experience with the workarounds.
Dprecated Domains/Functions *
Generated Transforms (ippGEN)
Find more information on the alternatives for Intel® IPP legacy generated transforms domain
Small Matrices (ippMX)
Video Coding (ippVC), Audio Coding(ippAC) and JPEG Coding(ippJP)
Find more information on the alternatives for Intel® IPP media legacy domains and functions
The 3D functions in Intel IPP image processing function, and Intel® Embree
Find more information on the alternatives for Intel® IPP legacy realistic rendering domain
APIs changes in other domains Improvements
Manual Volume 1, Appendix B, Removed Functions for Signal Processing
Manual Volume 2, Appendix C, Removed Functions for Image and Video Processing
We recommend that when you develop new applications, upgrade or modify existing applications, avoid using or altogether removing these deprecated features and components
Intel® IPP Legacy Libraries
To smooth the code transition, Intel® IPP provides a separate Legacy Libraries. This package contains the major removed functions in Intel IPP 9.0 as well as the deprecated functions in previous Intel® IPP release. These legacy domains are independent of other IPP domains and instead of the “ipp” prefix they have the “legacy90” prefix, they can use with the new versions of Intel IPP. The legacy optimization is also available in the libraries. You can learn more on legacy libraries, and their usage by reading this article.
We have used IPP 9.0 as a release to not only add new features but also as an opportunity to streamline the product. That was no small task and would not have happened without lots of hands. It was an incredible effort, and we'd like to thank the community for making it happen. With these deprecations now fully documented, we can continue to expand on the foundation solidified in IPP 9.0 release.