计算机科学与探索 ›› 2014, Vol. 8 ›› Issue (5): 525-536.DOI: 10.3778/j.issn.1673-9418.1309017

• 学术研究 • 上一篇    下一篇

基于GPU平台的有效字典压缩与解压缩技术

覃子姗1,2,顾  璠1,2,秦晓科3,陈铭松1,2+   

  1. 1. 华东师范大学 软件学院,上海 200062
    2. 华东师范大学 上海市高可信计算重点实验室,上海 200062
    3. 英伟达(NVIDIA),奥兰多 FL 32826
  • 出版日期:2014-05-01 发布日期:2014-05-05

Efficient Dictionary-Based Compression/Decompression Techniques Using GPU

QIN Zishan1,2, GU Fan1,2,  QIN Xiaoke3,  CHEN Mingsong1,2+   

  1. 1. Software Engineering Institute, East China Normal University, Shanghai 200062, China
    2. Shanghai Key Laboratory of Trustworthy Computing, East China Normal University, Shanghai 200062, China
    3. NVIDIA Corporation, Orlando, FL 32826, USA
  • Online:2014-05-01 Published:2014-05-05

摘要: 压缩技术被广泛应用于数据存储和传输中,然而由于其内在的串行特性,大多数已有的基于字典的压缩与解压缩算法被设计在CPU上串行执行。为了探究使用图形处理器(graphic processing unit,GPU)对压缩与解压缩过程潜在性能的提升,结合合并内存访问与并行组装的技术,基于CUDA(compute unified device architecture)平台研究了两种并行压缩与解压缩方法:基于字典的无状态压缩和基于字典的LZW压缩。实验结果表明,与传统的单核实现比较,所提方法能够显著改善已有的基于字典的串行压缩与解压缩算法的性能。

关键词: 图形处理器(GPU), 统一计算设备架构(CUDA), 基于字典的压缩与解压缩

Abstract: Compression techniques are widely used in data storage and transmission. However, due to the inherent sequential nature, most existing dictionary-based compression/decompression algorithms are designed for sequential execution on CPUs. To explore the potential performance improvements of compression and decompression processes using graphic processing unit (GPU), by investigating the techniques of coalescing memory access and parallel assembling, this paper studies two parallel implementations of dictionary-based techniques based on CUDA (compute unified device architecture), stateless compression/decompression and LZW compression/decompression. The experimental results demonstrate that, compared with traditional sequential implementations based on single core, the two proposed approaches can improve the performance of existing sequential dictionary-based compression/decompression algorithms drastically.

Key words: graphic processing unit (GPU), compute unified device architecture (CUDA), dictionary-based compression/decompression