A Low-Overhead, Lightweight, Lossless GPU Compression Algorithm for Numerical Simulations
Abstract
HPC (High Performance Computing) applications such as numerical simulations are memory-intensive. As memory grows scarce compared to compute power, compression could alleviate hardware demands by reducing memory footprint at runtime, especially on GPU. Existing compression algorithms for scientific data are not specifically designed for GPU memory usage reduction. This work investigates the requirements of such an algorithm. We identify losslessness, end-to-end throughput, and reduced memory footprint as the key characteristics for alleviating memory requirements and improving overall resource utilization. We introduce bxCOMP, a lightweight, low-overhead, lossless GPU compression algorithm for scientific data, and describe its implementation. The proposed block-based approach outperforms state-of-the-art scientific data compression methods in decompression throughput and retains 75% of the best compression ratios on challenging real-life HPC datasets. A preprocessing phase precomputes writing positions and compressed size. Hence, no extra memory allocation is needed during compression, increasing the upper size limit of input data for identical memory resources. This also removes the need for a final copy to a tight buffer, allowing bxCOMP to match existing algorithms in end-to-end compression throughput. Optimal block size can be adjusted between iterations to optimize compression ratio throughout the simulation.