Integrated Performance Primitives
Developer(s) | Intel |
---|---|
Stable release | |
Written in | C/C++ |
Operating system | Linux, macOS, Microsoft Windows |
Type | Library or framework |
License | Proprietary, freeware[3] |
Website | software |
Intel Integrated Performance Primitives (Intel IPP) is an extensive library of ready-to-use, domain-specific functions that are highly optimized for diverse Intel architectures. Its royalty-free APIs help developers take advantage of single instruction, multiple data (SIMD) instructions.[4]
The library supports Intel and compatible processors and is available for Linux, macOS and Windows. It is available separately or as a part of Intel oneAPI Base Toolkit.[4]
Intel IPP releases use a semantic versioning schema, so that even though the major version looks like a year (YYYY), it is not technically meant to be a year. So it might not change every calendar year.[5]
Features
[edit]The library takes advantage of processor features including MMX, SSE, SSE2, SSE3, SSSE3, SSE4, AVX, AVX2, AVX-512, AES-NI and multi-core processors. [6] Intel IPP includes functions for:
- Video decode/encode
- Audio decode/encode
- JPEG/JPEG2000/JPEG XR
- Computer vision
- Cryptography
- Data compression
- Image color conversion
- Image processing
- Ray tracing and rendering
- Signal processing
- Speech coding
- Speech recognition
- String processing
- Vector and matrix mathematics
Organization
[edit]Intel IPP is divided into four major processing groups: signal processing (with linear array or vector data), image processing (with 2D arrays for typical color spaces), data compression, and cryptography.[6]
Half the entry points are of the matrix type, a third are of the signal type, and the remainder are of the image and cryptography types. Intel IPP functions are divided into 4 data types: data types include 8u
(8-bit unsigned), 8s
(8-bit signed), 16s
, 32f
(32-bit floating-point), 64f
, etc. Typically, an application developer works with only one dominant data type for most processing functions, converting between input to processing to output formats at the end points.[6]
History
[edit]- Version 2.0 files are dated April 22, 2002.
- Version 3.0
- Version 4.0 files are dated November 11, 2003. 4.0 runtime fully supports applications coded for 3.0 and 2.0.
- Version 5.1 files are dated March 9, 2006. 5.1 runtime does not support applications coded for 4.0 or before.
- Version 5.2 files are dated April 11, 2007. 5.2 runtime does not support applications coded for 5.1 or before. Introduced June 5, 2007, adding code samples for data compression, new video codec support, support for 64-bit applications on Mac OS X, support for Windows Vista, and new functions for ray-tracing and rendering.
- Version 6.1 was released with the Intel C++ Compiler on June 28, 2009. Update 1 for version 6.1 was released on July 28, 2009. Update 2 files are dated October 19, 2009.[7]
- Version 7.1[8]
- Version 8.0[9]
- Version 8.1[10]
- Version 8.2[11]
- Version 9.0 Initial Release, August 25, 2015[12]
- Version 9.0 Update 1, December 1, 2015[13]
- Version 9.0 Update 2
- Version 9.0 Update 3
- Version 9.0 Update 4
- Version 2017 Initial Release
- Version 2017 Update 1
- Version 2017 Update 2
- Version 2017 Update 3, February 28, 2016[1]
- Version 2018 Initial Release
- Version 2018 Update 1
- Version 2018 Update 2
- Version 2018 Update 2.1
- Version 2018 Update 3
- Version 2018 Update 3.1
- Version 2018 Update 4, September 20, 2018[1]
- Version 2019 Initial Release
- Version 2019 Update 1
- Version 2019 Update 2
- Version 2019 Update 3, February 14, 2019[1]
- Version 2019 Update 4
- Version 2019 Update 5
- Version 2020 Initial Release, December 12, 2019[1][2]
- Version 2020 Update 1, March 30, 2020[1][2]
- Version 2020 Update 2, July 16, 2020[1][2]
- Version 2020 Update 3
- Version 2021 Initial Release
- Version 2021.1
- Version 2021.2
- Version 2021.3
- Version 2021.4
- Version 2021.5
- Version 2021.6
- Version 2021.7, December 2022[14]
- Version 2021.8, April 2023[14]
- Version 2021.9.0, July 2023[14]
- Version 2021.9.1, October 2023[14]
- Version 2021.10.0, November 2023[14]
- Version 2021.10.1, December 2023[14]
- Version 2021.11.0, March 2024[14]
- Version 2021.12.0, June 2024[15]
Counterparts
[edit]- Sun: mediaLib for Solaris
- Apple: vDSP, vImage, Accelerate etc. for macOS
- AMD: Framewave (formerly the AMD Performance Library or APL)
- Khronos Group: OpenMAX DL
- NVIDIA Performance Primitives[16]
See also
[edit]- Intel oneAPI Base Toolkit
- Intel oneAPI HPC Toolkit
- Intel oneAPI IoT Toolkit
- Intel oneAPI Data Analytics Library (oneDAL)
- Intel oneAPI Math Kernel Library (oneMKL)
- Intel oneAPI Threading Building Blocks (oneTBB)
- Intel Advisor
- Intel Inspector
- Intel VTune Profiler
- Intel Developer Zone (Intel DZ; support and discussion)
References
[edit]- ^ a b c d e f g "Intel® Integrated Performance Primitives Library Release Notes and New Features". software.intel.com.
- ^ a b c d "Intel® IPP 2020 Bug Fixes". software.intel.com.
- ^ "No Cost Options for Intel Parallel Studio XE, Support yourself, Royalty-Free".
- ^ a b "Intel® Integrated Performance Primitives". Intel. Retrieved 2024-04-03.
- ^ "Intel® oneAPI Toolkit and Component Versioning Schema". Intel. Retrieved 2024-04-03.
- ^ a b c "Intel Integrated Performance Primitives (Intel IPP) Library".
- ^ "Intel Integrated Performance Primitives (Intel IPP) Library 6.1 Release Notes".
- ^ "Intel Integrated Performance Primitives (Intel IPP) Library 7.1 Release Notes".
- ^ "Intel Integrated Performance Primitives (Intel IPP) Library 8.0 Release Notes".
- ^ "Intel Integrated Performance Primitives (Intel IPP) Library 8.1 Release Notes".
- ^ "Intel Integrated Performance Primitives (Intel IPP) Library 8.2 Release Notes".
- ^ "Intel Integrated Performance Primitives (Intel IPP) Library 9.0 Release Notes".
- ^ "Intel Integrated Performance Primitives (Intel IPP) Library 9.0 Github".
- ^ a b c d e f g Harrison, Pamela. "Intel® Integrated Performance Primitives Release Notes for Intel®..." Intel. Retrieved 2024-04-03.
- ^ Harrison, Pamela. "Intel® Integrated Performance Primitives Release Notes for Intel®..." Intel. Retrieved 2024-07-23.
- ^ "NVIDIA Performance Primitives (NPP)". NVIDIA Developer. Retrieved 2024-04-03.
External links
[edit]- Official website
- Intel oneAPI Base Toolkit Home Page
- Stewart Taylor, "Intel Integrated Performance Primitives - How to Optimize Software Applications Using Intel IPP", Intel Press.
- Jpeg Delphi implementation using official JPEG Group C library or Intel Jpeg Library 1.5 (ijl.dll included)
- How To Install OpenCV using IPP (french). Archived 2020-08-08 at the Wayback Machine