Integrated Performance Primitives

Last updated
Integrated Performance Primitives
Developer(s) Intel
Stable release
2021 Update 2 / March 30, 2021;2 years ago (2021-03-30) [1] [2]
Written in C/C++
Operating system Linux, macOS, Microsoft Windows, Android
Type Library or framework
License Proprietary, freeware [3]
Website software.intel.com/intel-ipp   OOjs UI icon edit-ltr-progressive.svg

Intel Integrated Performance Primitives (Intel IPP) is a multi-threaded software library of functions for multimedia and data processing applications, produced by Intel. [4]

Contents

The library supports Intel and compatible processors and is available for Linux, macOS, Windows and Android operating systems. It is available separately or as a part of Intel oneAPI Base Toolkit. [4]

Features

The library takes advantage of processor features including MMX, SSE, SSE2, SSE3, SSSE3, SSE4, AVX, AVX2, AVX-512, AES-NI and multi-core processors. [5] Intel IPP includes functions for:

Organization

Intel IPP is divided into four major processing groups: Signal (with linear array or vector data), Image (with 2D arrays for typical color spaces), Data Compression and Cryptography. [5]

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. [5]

History

Counterparts

See also

Related Research Articles

<span class="mw-page-title-main">Single instruction, multiple data</span> Type of parallel processing

Single instruction, multiple data (SIMD) is a type of parallel processing in Flynn's taxonomy. SIMD can be internal and it can be directly accessible through an instruction set architecture (ISA), but it should not be confused with an ISA. SIMD describes computers with multiple processing elements that perform the same operation on multiple data points simultaneously.

In computing, Streaming SIMD Extensions (SSE) is a single instruction, multiple data (SIMD) instruction set extension to the x86 architecture, designed by Intel and introduced in 1999 in their Pentium III series of central processing units (CPUs) shortly after the appearance of Advanced Micro Devices (AMD's) 3DNow!. SSE contains 70 new instructions, most of which work on single precision floating-point data. SIMD instructions can greatly increase performance when exactly the same operations are to be performed on multiple data objects. Typical applications are digital signal processing and graphics processing.

Direct3D is a graphics application programming interface (API) for Microsoft Windows. Part of DirectX, Direct3D is used to render three-dimensional graphics in applications where performance is important, such as games. Direct3D uses hardware acceleration if it is available on the graphics card, allowing for hardware acceleration of the entire 3D rendering pipeline or even only partial acceleration. Direct3D exposes the advanced graphics capabilities of 3D graphics hardware, including Z-buffering, W-buffering, stencil buffering, spatial anti-aliasing, alpha blending, color blending, mipmapping, texture blending, clipping, culling, atmospheric effects, perspective-correct texture mapping, programmable HLSL shaders and effects. Integration with other DirectX technologies enables Direct3D to deliver such features as video mapping, hardware 3D rendering in 2D overlay planes, and even sprites, providing the use of 2D and 3D graphics in interactive media ties.

In computer software, in compiler theory, an intrinsic function is a function (subroutine) available for use in a given programming language whose implementation is handled specially by the compiler. Typically, it may substitute a sequence of automatically generated instructions for the original function call, similar to an inline function. Unlike an inline function, the compiler has an intimate knowledge of an intrinsic function and can thus better integrate and optimize it for a given situation.

<span class="mw-page-title-main">OpenCV</span> Computer vision library

OpenCV is a library of programming functions mainly for real-time computer vision. Originally developed by Intel, it was later supported by Willow Garage, then Itseez. The library is cross-platform and licensed as free and open-source software under Apache License 2. Starting in 2011, OpenCV features GPU acceleration for real-time operations.

<span class="mw-page-title-main">CUDA</span> Parallel computing platform and programming model

CUDA is a parallel computing platform and application programming interface (API) that allows software to use certain types of graphics processing units (GPUs) for general purpose processing, an approach called general-purpose computing on GPUs (GPGPU). CUDA is a software layer that gives direct access to the GPU's virtual instruction set and parallel computational elements, for the execution of compute kernels.

Intel oneAPI DPC++/C++ Compiler and Intel C++ Compiler Classic are Intel’s C, C++, SYCL, and Data Parallel C++ (DPC++) compilers for Intel processor-based systems, available for Windows, Linux, and macOS operating systems.

Framewave is computer software, a high-performance optimized programming library, consisting of low level application programming interfaces (APIs) for image processing, signal processing, JPEG, and video functions. These APIs are programmed with task level parallelization (multi-threading) and instruction-level parallelism single instruction, multiple data (SIMD) for maximum performance on multi-core processors from Advanced Micro Devices (AMD).

oneAPI Threading Building Blocks, is a C++ template library developed by Intel for parallel programming on multi-core processors. Using TBB, a computation is broken down into tasks that can run in parallel. The library manages and schedules threads to execute these tasks.

Intel Fortran Compiler, as part of Intel OneAPI HPC toolkit, is a group of Fortran compilers from Intel for Windows, macOS, and Linux.

Advanced Vector Extensions (AVX) are extensions to the x86 instruction set architecture for microprocessors from Intel and Advanced Micro Devices (AMD). They were proposed by Intel in March 2008 and first supported by Intel with the Sandy Bridge processor shipping in Q1 2011 and later by AMD with the Bulldozer processor shipping in Q3 2011. AVX provides new features, new instructions and a new coding scheme.

<span class="mw-page-title-main">Haswell (microarchitecture)</span> Intel processor microarchitecture

Haswell is the codename for a processor microarchitecture developed by Intel as the "fourth-generation core" successor to the Ivy Bridge. Intel officially announced CPUs based on this microarchitecture on June 4, 2013, at Computex Taipei 2013, while a working Haswell chip was demonstrated at the 2011 Intel Developer Forum. With Haswell, which uses a 22 nm process, Intel also introduced low-power processors designed for convertible or "hybrid" ultrabooks, designated by the "U" suffix.

Intel Parallel Studio XE was a software development product developed by Intel that facilitated native code development on Windows, macOS and Linux in C++ and Fortran for parallel computing. Parallel programming enables software programs to take advantage of multi-core processors from Intel and other processor vendors.

An Advanced Encryption Standard instruction set is now integrated into many processors. The purpose of the instruction set is to improve the speed and security of applications performing encryption and decryption using Advanced Encryption Standard (AES).

Intel oneAPI Math Kernel Library is a library of optimized math routines for science, engineering, and financial applications. Core math functions include BLAS, LAPACK, ScaLAPACK, sparse solvers, fast Fourier transforms, and vector math. That is besides the math.h standard C library, that is also more accurate compared to glibc.

<span class="mw-page-title-main">Skylake (microarchitecture)</span> CPU microarchitecture by Intel

Skylake is the codename used by Intel for a processor microarchitecture that was launched in August 2015 succeeding the Broadwell microarchitecture. Skylake is a microarchitecture redesign using the same 14 nm manufacturing process technology as its predecessor, serving as a tock in Intel's tick–tock manufacturing and design model. According to Intel, the redesign brings greater CPU and GPU performance and reduced power consumption. Skylake CPUs share their microarchitecture with Kaby Lake, Coffee Lake, Cannon Lake, Whiskey Lake, and Comet Lake CPUs.

Intel Advisor is a design assistance and analysis tool for SIMD vectorization, threading, memory use, and GPU offload optimization. The tool supports C, C++, Data Parallel C++ (DPC++), Fortran and Python languages. It is available on Windows and Linux operating systems in form of Standalone GUI tool, Microsoft Visual Studio plug-in or command line interface. It supports OpenMP. Intel Advisor user interface is also available on macOS.

oneAPI (compute acceleration) Open standard for parallel computing

oneAPI is an open standard, trademarked by Intel, for a unified application programming interface intended to be used across different compute accelerator (coprocessor) architectures, including GPUs, AI accelerators and field-programmable gate arrays. It is intended to eliminate the need for developers to maintain separate code bases, multiple programming languages, and different tools and workflows for each architecture.

References

  1. 1 2 3 4 5 6 7 "Intel® Integrated Performance Primitives Library Release Notes and New Features". software.intel.com.
  2. 1 2 3 4 "Intel® IPP 2020 Bug Fixes". software.intel.com.
  3. "No Cost Options for Intel Parallel Studio XE, Support yourself, Royalty-Free".
  4. 1 2 "Intel Integrated Performance Primitives (Intel IPP) 6.1 FAQs" (PDF). Intel Website. 2009. Retrieved 2010-08-12.
  5. 1 2 3 "Intel Integrated Performance Primitives (Intel IPP) Library".
  6. "Intel Integrated Performance Primitives (Intel IPP) Library 6.1 Release Notes".
  7. "Intel Integrated Performance Primitives (Intel IPP) Library 7.1 Release Notes".
  8. "Intel Integrated Performance Primitives (Intel IPP) Library 8.0 Release Notes".
  9. "Intel Integrated Performance Primitives (Intel IPP) Library 8.1 Release Notes".
  10. "Intel Integrated Performance Primitives (Intel IPP) Library 8.2 Release Notes".
  11. "Intel Integrated Performance Primitives (Intel IPP) Library 9.0 Release Notes".
  12. "Intel Integrated Performance Primitives (Intel IPP) Library 9.0 Github".