High Speed Data Compression Using NVIDIA GPUs
The nvCOMP library provides fast lossless data compression and decompression using a GPU. It features generic compression interfaces to enable developers to use high-performance GPU compressors in their applications.
Binaries are available under the standard NVIDIA Software License Agreement
nvCOMP Key Features
- Compression Algorithms
- Cascaded: Novel high-throughput compressor ideal for analytical or structured/tabular data.
- LZ4: General-purpose no-entropy byte-level compressor well-suited for a wide range of datasets.
- Snappy: Similar to LZ4, this byte-level compressor is a popular existing format used for tabular data.
- GDeflate: Proprietary compressor with entropy encoding and LZ77, high compression ratios on arbitrary data.
- Deflate: Huffman + LZ77, Provided for compatibility with existing Deflate-compressed datasets.
- Bitcomp: Proprietary compressor designed for efficient GPU compression in Scientific Computing applications.
- ANS: Proprietary entropy encoder based on asymmetric numeral systems (ANS).
- zStandard: Huffman + LZ77 + ANS, popular compression format developed by Meta.
- Flexible APIs
- High-level is a good starting point for new users — it’s easy to use and fast. Metadata, chunking and the required scratch space are managed internally by nvCOMP. Using the high-level interface metadata, you can decompress a buffer without knowing how it was compressed. This enables the easiest way to ramp up and use nvCOMP in applications.
- Low-level is targeting advanced users — metadata and chunking must be managed by the user outside of nvCOMP. Low-level nvCOMP APIs also perform batch compression/decompression of multiple streams. This provides the most flexibility for users with existing compression/decompression pipelines in their application.
The table below shows GPU compression throughput results in GB/s for a wide range of Ampere architecture GPU products, datasets and compression methods.
For additional information, please see our technical blogs and presentations:
- Accelerating Lossless GPU Compression with New Flexible Interfaces in NVIDIA nvCOMP
- Optimizing Data Transfer Using Lossless Compression with nvCOMP
- Optimizing Lossless Compression algorithms on the GPU
Also feel free to gather your own results by running the benchmarks from the nvCOMP GitHub page.