NVIDIA Performance Primitives
The NVIDIA Performance Primitives (NPP) is a library of over 5,000 primitives for image and signal processing, with this library you can easily perform tasks such as color conversion, image compression, filtering, thresholding, and image manipulation. NPP provides GPU-accelerated image, video, and signal-processing functions that perform up to 30X faster than CPU-only implementations.
Download Now
Use Cases
Industrial Inspection
Enhance industrial inspection efficiency and accuracy by rapidly processing high-volume imaging data to detect defects, ensure quality control, and streamline maintenance operations.
Medical Imaging
Help clinicians perform faster and more precise diagnostics with GPU-accelerated processing of complex imaging data for early detection and treatment planning.
Robotics
Enable real-time, GPU-accelerated image and signal processing for enhanced autonomous decision-making, precision in object recognition, and rapid environmental analysis
NPP Benefits
Scalable Performance
The NPP library optimizes the use of available computing resources so your application achieves maximum performance across data center, workstation, and embedded platforms. NPP can also handle highfidelity 10-bit or 12-bit HDR video (i.e. cooled sensor astrophotography).
Simple Setup
Ready-to-use, domain-specific, high-performance primitives feature a rich set of functions supporting a large variety of image formats. Drop-in replacement for the Intel Integrated Performance Primitives (IPP) CPU library. NPP accepts raw uncompressed image or signal data and supports multiple RGB and YUV image and video formats.
Flexible Design
Use as a stand-alone library to add GPU acceleration to your application in a matter of hours, or as a cooperative library for interoperating efficiently with your existing GPU code. It includes both low-level primitives and high-level capabilities.
Comparative Performance
IPP 2018 running on an Intel Xeon Gold 6240@2GHz 3.9GHz Turbo (Cascade Lake) server with HT on; Ubuntu18.04 OS
GPU — Tesla T4(TU104) 1*16097 MiB 1*40 SM
Tesla V100-SXM2-32GB(GV100) 1*32510 MiB 1*80 SM
A100-SXM4-40GB(GA100) 1*40557 MiB 1*108 SM
CUDA Driver — 445.33 (r445_00), CUDA Toolkit 11.0
Speedup represents average bandwidth increase over all routines
NPP Operations and Functions
NPP offers a broad range of over 5,000 operations and functions. Key categories include image color conversion, signal filtering, and image linear transforms. All categories of operations and functions:
- Image Arithmetic and Logical Operations
- Image Color Conversion Functions
- Image Data Exchange and Initialization Functions
- Image Filtering Functions
- Image Geometry Transforms Functions
- Image Linear Transforms Functions
- Image Morphological Operations
- Image Statistics Functions
- Image Threshold and Compare Operations
- Image Memory Management Functions
- Signal Arithmetic and Logical Operations
- Signal Conversion Functions
- Signal Filtering Functions
- Signal Initialization Functions
- Signal Statistical Functions
- Signal Memory Management Functions
Additional NPP Operations
If NPP isn’t the right library for your use case, check out other data processing libraries like CV-CUDA, DALI, VPI, or Optical Flow SDK.
Videos and Webinars
Additional Resources
- Watch Video: GPU Accelerated Computing With C and C++ (2:01 Minutes)
- View Document: NVIDIA 2D Image and Signal Processing Performance Primitives (NPP) Documentation
- Code Sample: Box Filter With NPP
- Code Sample: Histogram Equalization With NPP
- Code Sample: FreeImage and NPP Interoperability
- Code Sample: Watershed segmentation With NPP
- Additional Code Samples