[发明专利]一种基于GPU和CPU混合平台的高速无损数据压缩方法有效
申请号: | 201310321071.7 | 申请日: | 2013-07-26 |
公开(公告)号: | CN103427844A | 公开(公告)日: | 2013-12-04 |
发明(设计)人: | 金海;郑然;周斌 | 申请(专利权)人: | 华中科技大学 |
主分类号: | H03M7/30 | 分类号: | H03M7/30 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 朱仁玲 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 gpu cpu 混合 平台 高速 无损 数据压缩 方法 | ||
技术领域
本发明属于计算机数据压缩技术领域,更具体地,涉及一种基于GPU和CPU混合平台的高速无损数据压缩方法。
背景技术
据国际数据公司(International Data Corporation,简称IDC)研究表明:近10年来,全球信息总量每过两年,就会增长一倍。2011年,全球被创建和被复制的数据总量为1.8ZB(1800EB),到了2015年将达到8ZB(8000EB),而下一个十年即2020年左右,全球的数据将比现在高出50倍。与此同时,虽然网络带宽和新的存储技术也得到了快速的发展,但仍然远不能满足当前海量数据传输和存储的性能需求。而解决海量数据传输和存储面临的挑战的关键技术之一就是数据压缩。通过数据压缩技术,可以有效的减少需要传输和存储的数据容量,从而有效的控制数据传输和存放的成本,实现数据的低成本高效管理。
传统的基于CPU平台的压缩理论和压缩算法关注的重点在于如何提高数据的压缩比率,海量数据时代对数据压缩的速度提出了更高的要求。为了提高压缩速率,数据的并行压缩成为一个新的发展方向。进行并行数据压缩的前提是需要找到数据级别的并行性,将数据进行分块,并同时对各个分块进行压缩是一种自然的并行思想。现有的J.Gilchrist、GZIP、S.Pradhan等算法分别利用多线程,多核和集群的方式,在CPU平台上实现了并行数据压缩。但在实际的应用中,随着需要处理的数据量的增加,由于交互中产生的大量通信量,中间结果需要占用大量的内存空间,以及CPU本身固有的硬件体系结构并不适合大规模的并行计算特性,所有这些因素使得在CPU平台下采用并行的压缩算法并不能使得压缩的速率达到预期的目标。
也有学者将一些CPU平台下的一些经典的无损数据压缩算法,如行程编码算法,BZIP2算法等通过改进,移植到了GPU平台下。这些算法为了解决上述CPU压缩的不足,专注于如何利用GPU的共享存储器和全局存储器,从而最大限度的减少不同模块之间的通信,减少内存的占用,进而提高压缩的速率。但由于这些算法本身是基于CPU平台发明的,在本质上并不适合GPU这种不同的硬件结构,因此在实际的应用中,压缩速率的提高仍然有待提高。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于GPU和CPU混合平台的高速无损数据压缩方法,其目的在于通过将数据压缩的过程分解为并行计算和串行计算两个部分,并行计算部分包括划分多个压缩数据字典和预读窗口,组织为多个矩阵,并将待压缩数据文件交由GPU中的多个线程块并行完成,而将串行计算部分中压缩编码的生成与输出交由CPU完成,这种工作模式综合了GPU和CPU本身各自的优点和长处,从而在保证压缩率不降低的情况下,大大提高海量数据的压缩速率。
为实现上述目的,按照本发明的一个方面,提供了一种基于GPU和CPU混合平台的高速无损数据压缩方法,包括以下步骤:
(1)CPU读取待压缩数据文件,将该待压缩数据文件从内存拷贝到GPU的全局存储器中;
(2)设置GPU上的线程块组bk[a],每个线程块中的线程个数b,其中a为线程块的总数;
(3)设置压缩字典窗口的长度为c,并设置指向第一个压缩字典窗口的头部指针为p_dic_h;
(4)设置预读窗口大小为d,指向第一个预读窗口的指针p_pre_r,该指针的初始值设置为p_dic_h-c;
(5)初始化工作线程组threads[a*b],以及(a*b/2)/c个gMatrix矩阵,其大小为c*d;
(6)调用工作线程组threads[a*b]中的(a*b/2)个线程处理待压缩数据文件中q=(a*b/2)/c个长度为c+d的数据;
(7)在q个结果矩阵gMatrix的每一个中寻找具有最多连续1的斜线段,确定每个结果矩阵的三元结果数组locations[p],数组中的每个元素存储有三元结果(x,y,length),其中p为该结果矩阵中斜线段的数量,且等于c+d–1,x表示斜线段相对于其所在结果矩阵对应的压缩字典的偏移量,y表示该斜线段相对于其所在结果矩阵对应的预读窗口的偏移量,length表示该斜线段的长度;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310321071.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种光载超宽带无线定位系统
- 下一篇:绝缘栅双极型晶体管的保护电路