Algorithm Selection#
nvCOMP provides multiple compression formats. This page helps you choose the right one for your data and workload.
Quick Decision Matrix#
Format |
Compression Ratio |
Compression Throughput |
Decompression Throughput |
DE Support |
When to Use |
|---|---|---|---|---|---|
Moderate |
Moderate |
High |
Yes |
Good balance of speed and ratio on most data. |
|
Snappy |
Moderate |
Moderate |
High |
Yes |
Comparable to LZ4, better performance on GPU. |
Low to High (tunable) |
Moderate to Low |
Moderate |
No |
Best choice for GPU-only compression pipelines on general data, where a high compression ratio is desired. |
|
Deflate |
Low to High (tunable) |
Low |
Low |
Yes |
Compatibility with existing Deflate/zlib-compressed data. DE usage. |
Gzip |
Low to High (tunable) |
Low |
Low |
Yes |
Compatibility with existing Gzip-compressed data. DE usage. |
Zstandard |
High |
Low |
Moderate |
No |
Versatile, great choice if CPU (de)compression is important. Otherwise GDeflate is better. |
High (if compression options are chosen carefully) |
High |
High |
No |
Columnar analytics, tabular data with repetitive values. |
|
Low to High (tunable) |
High |
High |
No |
Scientific computing floating-point data. |
|
ANS |
Moderate |
High |
High |
No |
When maximum throughput matters more than compression ratio. |
Choosing by Data Type#
Structured or Numeric Data#
If your data consists of typed columns (integers, floats) with repetitive patterns—typical of analytics databases, scientific simulations, or sensor telemetry, Cascaded or Bitcomp will outperform general-purpose compressors.
Cascaded combines run-length encoding, delta encoding, and bitpacking. Configure the number of RLE and delta passes to match your data characteristics. See Cascaded Compression for details.
Bitcomp is optimized for scientific computing workloads with floating-point data. See Bitcomp Compression for details.
General Byte-Oriented Data#
For strings, mixed binary content, serialized objects, or data without strong numerical patterns:
LZ4/Snappy achieve similar compression ratios and throughputs. If compressing and decompressing on the GPU, Snappy is the better choice, since it is better across the board in most cases. If CPU (de)compression will be used, the choice is more nuanced, as LZ4 generally performs better on the CPU, and offers multiple compression modes to tune the compression ratio.
GDeflate offers a knob for tuning the compression ratio and throughput, allowing for a higher ratio than the lightweight compressors (LZ4/Snappy).
Zstandard achieves similar compression ratios to GDeflate when using its higher compression modes (2-5), with a superior compression throughput, but inferior decompression throughput.
Deflate/Gzip achieve the worst throughput of the bunch, and should only be used if absolutely necessary due to compatibility reasons. Otherwise, replace with GDeflate, or Zstandard if CPU (de)compression is important. Note that Zstandard outperforms Deflate on the CPU in every metric. Also note that for Gzip decompression, the
NVCOMP_GZIP_DECOMPRESS_ALGORITHM_LOOKAHEADmode allows for decompression of large buffers with moderate throughput.
Hardware Decompression Engine#
On Blackwell GPUs (B200, B300, GB200, GB300), the Decompression Engine (DE) offloads decompression from the SMs, freeing compute resources.
Algorithms with DE support: LZ4, Snappy, Deflate (including Gzip).
If your pipeline is decompression-bound and runs on Blackwell hardware, prefer DE-supported algorithms. See Decompression Engine for more information.