cuSZ(x): Optimizing Error-Bounded Lossy Compression for Scientific Data on GPUs
Error-bounded lossy compression is a critical technique for significantly reducing scientific data volumes. With ever-emerging heterogeneous HPC architecture, GPU-accelerated error-bounded compressors (such as cuSZ and cuZFP) have been developed. However, they suffer from either low performance or low compression ratios. To this end, we propose cuSZ(x) to target both high compression ratio and throughput. We identify that data sparsity and data smoothness are key factors for high compression throughput. Our key contributions in this work are fourfold: (1) We propose an efficient compression workflow to adaptively perform run-length encoding and/or variable-length encoding. (2) We derive Lorenzo reconstruction in decompression as multidimensional partial-sum computation and propose a fine-grained Lorenzo reconstruction algorithm for GPU architectures. (3) We carefully optimize each of cuSZ's kernels by leveraging state-of-the-art CUDA parallel primitives. (4) We evaluate cuSZ(x) using seven real-world HPC application datasets on V100 and A100 GPUs. Experiments show cuSZ(x) improves the compression performance and ratios by up to 18.4× and 5.3×, respectively, over cuSZ on the tested datasets.
READ FULL TEXT