API Comparison#
nvCOMP offers four API tiers. Each targets a different integration depth and/or programming language.
Which API Should I Use?#
API |
Language |
Complexity |
Memory Management |
Choose When |
|---|---|---|---|---|
Python Codec |
Python |
Low |
Automatic |
You work in Python and want the simplest path to GPU compression. |
C++ Manager (HLIF) |
C++ |
Low–Medium |
Automatic (Manager handles temp buffers, chunking if desired) |
You need C++ integration with managed state. |
C Batched (LLIF) |
C/C++ |
High |
Manual (user allocates temp, output, and status arrays) |
You need maximum control over GPU resources, or you are integrating into a C codebase. You manage chunking, temp workspace, and device pointer arrays yourself. |
nvCOMPDx (Device Extensions) |
CUDA C++ |
High |
Manual (compile-time descriptors, user-managed shared memory) |
You want to call (de)compression from inside your own CUDA kernel at warp or block granularity, avoiding separate kernel launches. Only for ANS and LZ4. |
For quick-start examples of each API, see:
Python API (Python)