Error-bounded lossy compression is a state-of-the-art data reduction technique for HPC applications because it not only significantly reduces storage overhead but also can retain high fidelity for postanalysis. Because supercomputers and HPC applications are becoming heterogeneous using accelerator-based architectures, in particular GPUs, several development teams have recently released GPU versions of their lossy compressors. However, existing state-of-the-art GPU-based lossy compressors suffer from either low compression and decompression throughput or low compression quality. In this paper, we present an optimized GPU version, cuSZ, for one of the best error-bounded lossy compressors-SZ. To the best of our knowledge, cuSZ is the first error-bounded lossy compressor on GPUs for scientific data. Our contributions are fourfold. (1) We propose a dual-quantization scheme to entirely remove the data dependency in the prediction step of SZ such that this step can be performed very efficiently on GPUs. (2) We develop an efficient customized Huffman coding for the SZ compressor on GPUs. (3) We implement cuSZ using CUDA and optimize its performance by improving the utilization of GPU memory bandwidth. (4) We evaluate our cuSZ on five real-world HPC application datasets from the Scientific Data Reduction Benchmarks and compare it with other state-of-the-art methods on both CPUs and GPUs. Experiments show that our cuSZ improves SZ's compression throughput by up to 370.1x and 13.1x, respectively, over the production version running on single and multiple CPU cores, respectively, while getting the same quality of reconstructed data. It also improves the compression ratio by up to 3.48x on the tested data compared with another state-of-the-art GPU supported lossy compressor.
翻译:由于超级计算机和HPC应用程序正在使用基于加速器的架构, 特别是 GPU, 几个开发团队最近发布了其损失压缩器的 GPU 版本。 然而, 现有的基于 GPU 的丢失压缩机由于低压缩和压缩压或低压缩质量而遭受了最先进的数据减少技术。 在本文中, 我们不仅会大大降低存储管理管理管理费用,而且会保持对后分析的高度忠诚。 由于超级计算机和 HPC 应用程序正在使用基于加速器的架构, 特别是 GPU, 特别是 GPU, 几个开发团队最近发布了其损失压缩压缩器的GPU。 然而, 我们提议了一个双倍量化测试计划, 以完全消除SZ的预测步骤中的数据依赖性, 从而可以非常有效地在GPUPS上运行一个最优化的 GSUPS 版本, 并且通过SUDUD 的实时同步的 CS- SalderS 运行一个高效的CUFS- sality 运行系统, 通过Salview Scial Scial- dalx 运行另一个的GUL 数据, 通过SLUDS- dalx 运行S- sal- 改进另一个的SUD- dalx 运行, 通过S- dealalx 和S- dal- dalx 运行S- sde dal- dalx 运行S- daldalx 运行S- dalx 运行S- dalx 运行S- 运行另一个数据, 通过S- sBx 运行S- saldalderx 运行, 通过S- saldaldal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal- saldal- saldal- sal- sal- sal- saldaldal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal- sal AS