GPULZ:面向现代GPU上多字节数据的LZSS无损压缩优化
GPULZ: Optimizing LZSS Lossless Compression for Multi-byte Data on Modern GPUs
AI总结:
针对现有GPU上LZSS压缩器吞吐量低、仅支持单字节数据的问题,本文提出GPULZ方案,通过算法与架构层面优化实现多字节数据高效压缩,在A4000上最高达272.1倍加速,压缩比最高提升1.4倍。
摘要:
如今的图形处理单元(GPU)应用会产生海量数据,如何高效存储和传输这些数据颇具挑战。因此,数据压缩正成为缓解存储压力与通信开销的关键技术。LZSS是Deflate等众多广泛使用的压缩器的核心算法。然而,由于LZSS算法的串行特性,现有基于GPU的LZSS压缩器普遍存在吞吐量较低的问题。此外,许多GPU应用会生成多字节数据(例如int16/int32索引、浮点数),但当前的LZSS压缩仅以单字节数据作为输入。针对这一问题,本文提出了GPULZ——一种运行在现代GPU上的高效多字节数据LZSS压缩方案。本文的贡献分为四个方面:首先,我们对现有的GPU端LZ压缩器进行了深入分析,探究了其存在的主要问题。其次,我们提出了两项核心的算法层面优化:具体而言,(1)将前缀和计算从单遍改为两遍,并融合多个内核以减少共享内存与全局内存之间的数据移动;(2)针对多字节符号优化现有的模式匹配方法,以降低计算复杂度并挖掘更长的重复模式。第三,我们开展了架构层面的性能优化,例如通过调整数据分区适配不同的GPU架构,最大化共享内存利用率。最后,我们使用NVIDIA A100和A4000 GPU,在6个不同类型的数据集上对GPULZ进行了评估。结果表明,与现有最优方案相比,GPULZ在A4000上最高可实现272.1倍的加速比,压缩比最高提升1.4倍。
英文摘要:
Today's graphics processing unit (GPU) applications produce vast volumes of data, which are challenging to store and transfer efficiently. Thus, data compression is becoming a critical technique to mitigate the storage burden and communication cost. LZSS is the core algorithm in many widely used compressors, such as Deflate. However, existing GPU-based LZSS compressors suffer from low throughput due to the sequential nature of the LZSS algorithm. Moreover, many GPU applications produce multi-byte data (e.g., int16/int32 index, floating-point numbers), while the current LZSS compression only takes single-byte data as input. To this end, in this work, we propose GPULZ, a highly efficient LZSS compression on modern GPUs for multi-byte data. The contribution of our work is fourfold: First, we perform an in-depth analysis of existing LZ compressors for GPUs and investigate their main issues. Then, we propose two main algorithm-level optimizations. Specifically, we (1) change prefix sum from one pass to two passes and fuse multiple kernels to reduce data movement between shared memory and global memory, and (2) optimize existing pattern-matching approach for multi-byte symbols to reduce computation complexity and explore longer repeated patterns. Third, we perform architectural performance optimizations, such as maximizing shared memory utilization by adapting data partitions to different GPU architectures. Finally, we evaluate GPULZ on six datasets of various types with NVIDIA A100 and A4000 GPUs. Results show that GPULZ achieves up to 272.1X speedup on A4000 and up to 1.4X higher compression ratio compared to state-of-the-art solutions.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。