|
FZGPUModules 1.0
GPU-accelerated modular compression pipeline
|
GPU-accelerated modular lossy compression pipeline for scientific floating-point data.
FZGPUModules is a CUDA library for building composable, high-throughput compression pipelines. Each pipeline is a directed acyclic graph (DAG) of stages — predictors, quantizers, encoders, and transforms — connected and executed on the GPU with stream-ordered memory management.
Key properties:
| Class | Header | Description |
|---|---|---|
fz::Pipeline | pipeline/compressor.h | High-level builder and executor |
fz::Stage | stage/stage.h | Base class for all compression stages |
fz::CompressionDAG | pipeline/dag.h | Low-level DAG wiring and execution |
fz::MemoryPool | mem/mempool.h | Stream-ordered CUDA memory pool |
fz::PipelinePerfResult | pipeline/perf.h | Per-stage profiling results |
| Stage | Header | Description |
|---|---|---|
LorenzoStage<TInput, TCode> | predictors/lorenzo/lorenzo.h | 1-D/2-D/3-D Lorenzo predictor |
QuantizerStage<TInput, TCode> | predictors/quantizer/quantizer.h | Direct-value quantizer (ABS/REL/NOA) |
RLEStage<T> | encoders/RLE/rle.h | Run-length encoding |
DifferenceStage<T, TOut> | encoders/diff/diff.h | First-order difference coding |
BitshuffleStage | transforms/bitshuffle/bitshuffle_stage.h | GPU bit-matrix transpose |
RZEStage | transforms/rze/rze_stage.h | Recursive zero-byte elimination |
ZigzagStage<TIn, TOut> | transforms/zigzag/zigzag_stage.h | Zigzag encode/decode |
NegabinaryStage<TIn, TOut> | transforms/negabinary/negabinary_stage.h | Negabinary encode/decode |
MINIMAL** — allocate on demand, free at last consumer. Lowest peak GPU memory.PREALLOCATE** — allocate everything at finalize(). Required for CUDA Graph capture. Enables buffer coloring to alias non-overlapping allocations.