Huffman Coding with Gap Arrays for GPU Acceleration
Huffman Coding with Gap Arrays for GPU Acceleration
复制标题
使用间隙数组进行霍夫曼编码以实现 GPU 加速
DOI:
10.1145/3404397.3404429
复制
发表时间:
2020
期刊:
影响因子:
--
通讯作者:
T. Tabaru
中科院分区:
文献类型:
--
作者:
Naoya Yamamoto;K. Nakano;Yasuaki Ito;Daisuke Takafuji;Akihiko Kasagi;T. Tabaru
Huffman coding is a fundamental lossless data compression scheme used in many data compression file formats such as gzip, zip, png, and jpeg. Huffman encoding is easily parallelized, because all 8-bit symbols can be converted into codewords independently. On the other hand, since an encoded codeword sequence has no separator to identify each codeword, parallelizing Huffman decoding is a much harder task. This work presents a new data structure called gap array to be attached to an encoded codeword sequence of Huffman coding for accelerating parallel Huffman decoding. In addition, it also shows that GPU Huffman encoding and decoding can be accelerated by several techniques including (1) the Single Kernel Soft Synchronization (SKSS), (2) wordwise global memory access and (3) compact codebooks. The experimental results for 10 files on NVIDIA Tesla V100 GPU show that our GPU Huffman encoding and decoding run 2.87x-7.70x times and 1.26x-2.63x times faster than previously presented GPU Huffman encoding and decoding, respectively. Also, Huffman decoding can be further accelerated by a factor of 1.67x-6450x if a gap array is attached to an encoded codeword sequence. Since the size and computing overhead of gap arrays in Huffman encoding are small, we can conclude that gap arrays should be introduced for GPU Huffman encoding and decoding.