- 相关推荐
GPU平台的论文
1 引言
数据压缩被广泛应用于不同领域,这些领域通常涉及到大规模数据的处理与存储,或者涉及到远距离的网络数据传输。数据压缩能够有效地降低数据的存储空间,并且可以减少网络的传输时间。如图1所示,由于采用了串行的方法,传统的数据压缩与解压缩过程非常耗时,成为系统运行的瓶颈。如果能够有效利用目前硬件平台的并行能力,降低压缩与解压缩所需的时间,系统性能(例如视频解码速度、实时网络响应时间等)将大大提高为了获得比串行压缩与解压缩算法更好的性能,许多常用的压缩与解压缩工具都已经采用了并行的实现方法。例如,WinZip和Winrar已经使用块级并行对多核系统进行优化,以实现数据级并行(datalevel parallelism,DLP)和线程级并行(thread levelparallelism,TLP)。这些工具背后的基本思想是将输入数据分成多个小块,再使用不同CPU核对每个数据块进行并行处理。图形处理器(graphic processing unit,GPU)支持大规模的并行计算,被广泛用于图形图像的加速处理中。在当今的桌面系统与移动终端上,GPU已经成为了基本配置。因此如何利用GPU的计算能力来加速现有的压缩与解压缩算法成为了研究热点。为了简化GPU的编程模式,NVIDIA开发了统一计算设备架构(compme unified device architecture,CUDA)平台,使得CPU与GPu能够协同处理。然而因为基于GPU的CUDA是在单指令多数据(single instruction,multiple data,SIMD)模式下实现的,所以将常规的块级并行压缩技术直接移植到GPU上并非易事。
本文探究了基于字典的两种无损压缩技术:有状态(statefu1)的压缩与无状态(stateless)的压缩。这两种压缩技术的区别在于在压缩或解压缩的过程中是否需要维持相关的内部状态(即字典)。无状态的压缩/解压缩算法,例如简单的字典压缩方法 、哈弗曼编码(Huffman coding)等,是基于预先计算好的字典进行数据的压缩与解压缩。而有状态的算法,如LZW(Lempe1.Ziv—Welch)和算术编码,在压缩/解压缩过程中需要动态地构建字典(或相似的数据结构)。无状态的压缩/解压缩技术明显更加简单和快速,而有状态的压缩/解压缩技术虽然较慢,但往往能产生更好的压缩结果。
由于基于字典的压缩算法需要频繁地访问字典,而通常字典又是存放在全局内存中,这就使得压缩过程的全局内存访问负载很大。高代价的非合并内存访问(non—coalescing memory access)模式带来的延迟损失,将会使得在单个warp(warp是GPU执行程序时的调度单位)下利用多线程处理不同数据块带来的改进效果优势无存。传统的块级并行处理方式往往会带来不好的内存访问模式。除此之外,每一个并行的压缩块采用的字典内容不同,由于CUDA平台的SIMD特性,在遇见条件分支的时候将使得等待控制分支化解(control divergence resolution)的时间变得很长,并行的GPU计算将串行执行,大大影响GPU的性能。因此开发出一种能充分利用GPU的计算能力和内存带宽,而不牺牲性能的高效压缩技术是当前的一大挑战。本文提出了一种有效的GPU并行压缩/解压缩框架,这种框架可以应用到有状态和无状态压缩技术中,并结合了常规的块级并行方法与GPU体系结构的特性优势。
本文组织结构如下:第2章介绍了并行压缩与解压缩算法的相关工作;第3章提出了一个GPU友好的并行压缩/解压缩框架及其相关技术;第4章详细介绍了利用前述框架的基于字典的压缩技术和LZW的实现;实验结果在第5章进行了介绍;第6章对本文进行了总结。
2 相关工作压缩/解压缩技术的并行化已经被广泛地研究。
Franaszek等人口 提出了一种基于块引用压缩算法和字典协作构建的并行压缩技术,采用多个压缩器共同构建出字典。虽然该方法对压缩性能有着巨大的改善,但是在压缩率上不如LZ77方法。Nagumo等人 提出了基于两个静态字典压缩策略的并行化算法。Smith等人 引进了一种基于文本替代的数据无损压缩并行算法。这种算法可以很容易地实现为n—MOS电路。Storer等人描述了一种针对Nagumo方案的大型的并行体系结构。Henriques等人 也提出了一种并行算法和体系结构来实现LZ数据压缩技术。Lee等人研究了怎样将数据压缩技术应用到科学数据集的迁移中。Farach等人 从一些非常基础的问题考虑并行性,如字典匹配和字符串压缩。这也对并行多媒体数据压缩产生了相当大的影响。Shen等人 对这个研究领域进行了调研综述。在解压缩时,并行化方法通常可以增加解码的带宽。根据底层编码系统的不同,该领域已有的相关工作可以被大致分为两类:第一类是基于定长的编码。对于这一类压缩技术而言,因为连续编码的边界是固定的,所以并行解码的过程相对非常容易。相对于变长编码而言,定长编码的唯一缺陷在于压缩效率不高。第二类方法处理了变长编码的并行解码问题n 的并行粒度,这些方法可以进一步划分为块级并行和编码级并行。第一类方法常常将压缩的数据组织成块,并且将块标识符存储在文件头或索引表中。利用这种方法,并行解码器可以被应用在每一个块上。这些方法对于媒体数据如JPEG、MPEG.2 或H.264[131而言是十分适合的,因为大多数压缩的媒体数据已经按块结构(宏块)表示出来了。然而这些方法的缺点在于,常用的块标识技术如块头、字节对齐或索引表等方案会引入一些开销,使得压缩效率降低。Klein等人 利用自动块边界检测方法详述了这一问题。基本思想是每个解码器对应不同的块起始点,而这个起始点也与准确的边界值足够接近。正确的编码边界的检测是通过检验重叠区域上处理器的输出来实现的。利用这种方法,可以有效地避免存储部分的块边界信息。
编码级别的并行目前也可以用在多解码器解压缩多个连续压缩数据块的过程中。与之前的方法不同,这种方案下的并行解码十分有挑战性,因为不知道下一个编码将从何处开始。目前已有多种方法能够很好地解决这个问题。比如Nikara等人n 在输入缓冲的每个可能的位置上,采用多个推测的并行解码器进行操作,并只输出正确的解码结果。但这种方法对于大的输入缓冲区会引入显著的硬件开销。
Qin等人对这个问题则引人一个位置协议来预测不同解码器要处理的代码起始地址。然而,这些编码级别的方法需要解码器间的深度同步,目前的GPU还没有相关的有效支持。在这种情况下,适当的结合块级别和编码级别的并行可能会更有效地解决这个问题。
【GPU平台的论文】相关文章:
学生自主学习的平台论文05-02
电子政务平台的建设论文05-03
AiSchool平台对数学教学的作用论文05-02
通信原理实验平台研究与运用论文05-04
平台企业巨头及其竞争方式论文04-29
电子病历平台下医院统计论文05-02
构建作文平台促成作文教学论文04-27
如何搭建有效的说话训练平台论文05-03
构筑“对话”的平台,培养幼儿口语表达论文04-27
农产品建立商务平台论文05-03