|
FZGPUModules 2.0
GPU-accelerated modular compression pipelines
|
Header: modules/coders/rze/rze_stage.h
Class: fz::RZEStage — no template parameters
Category: Coder (lossless)
Common instantiation:
Zero-Elimination Encoding — the RZE lossless component of the LC framework (RZE_1/2/4/8, used by cuSZ-Hi's LC pipelines). Operates on a raw byte stream treated as word_size-byte words. Each chunk is processed in shared memory:
Because bit-shuffled scientific data can have many zero byte-planes, RZE can compress those planes very aggressively. RZE is the zero-eliminating sibling of RREStage (which eliminates repeated values); the two share the vendored LC chunk kernels (modules/coders/lc_common/lc_chunk_components.cuh).
word_size selects the LC RZE_1 / RZE_2 / RZE_4 / RZE_8 variant — the _N suffix is the word size (not a recursion-level count). The cuSZ-Hi chains use RZE_1.
Requires input to be a multiple of chunk_size bytes. The pipeline pads automatically when BitshuffleStage upstream uses a matching block_size.
The GPU kernels in RZEStage are a faithful port of d_RZE.h, d_zero_elimination.h, and d_repetition_elimination.h from the LC framework (Burtscher et al., Texas State University, BSD-3-Clause), shared with RREStage via modules/coders/lc_common/lc_chunk_components.cuh.
Noushin Azami, Alex Fallin, Brandon Burtchell, Andrew Rodriguez, Benila Jerald, Yiqian Liu, Anju Mongandampulath Akathoott, and Martin Burtscher. LC framework for synthesizing high-speed parallel lossless and error-bounded lossy data compression and decompression algorithms for CPUs and GPUs. https://github.com/burtscher/LC-framework
See THIRD_PARTY.md for the full license text.