CN109886858B - 一种数据处理的方法及装置 - Google Patents
一种数据处理的方法及装置 Download PDFInfo
- Publication number
- CN109886858B CN109886858B CN201910074156.7A CN201910074156A CN109886858B CN 109886858 B CN109886858 B CN 109886858B CN 201910074156 A CN201910074156 A CN 201910074156A CN 109886858 B CN109886858 B CN 109886858B
- Authority
- CN
- China
- Prior art keywords
- data
- gpu
- processing
- data set
- processing core
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本发明提供了一种数据处理的方法及装置,用于解决现有技术中数据处理效率低的问题。包括:从主存中获取按照设定压缩算法压缩的第一数据集合到图形处理器GPU的显存;控制所述GPU的至少一个处理核心在所述第一数据集合获取至少一个第一数据;控制所述GPU的至少一个处理核心按照预先设定的解压规则对所述至少一个第一数据进行解压,确定解压后的至少一个第二数据;控制所述GPU的至少一个处理核心按照预先设定的处理规则对所述至少一个第二数据进行处理。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理的方法及装置。
背景技术
图形处理器(Graphics Processing Unit,GPU)是计算机中包括的一种硬件,GPU可以利用内部众多的处理核心协助计算机的中央处理器(Central Processing Unit,CPU)对多种类型计算任务进行并行加速,图1为一台包括GPU的计算机的计算和存储框架示意图,具体的,当需要使用GPU对数据进行处理时,首先需要将被处理数据从计算机的主存传输到GPU的显存中,然后GPU中的其他存储部件和计算部件从所述显存中获取被处理数据。在上述过程中,当被处理数据的数据量较大时,被处理数据的传输开销较大,并且当被处理数据的数据量大于GPU的显存时,在数量处理的过程中需要在计算机的主存和GPU的显存之间进行大量的数据倒换,进一步增加了传输开销,影响传输效率。
现有技术中,为了减小传输开销,在被处理数据存入磁盘之前采用基于熵的压缩方法对被处理数据进行压缩,磁盘将压缩后的被处理数据导入主存,主存将压缩后的被处理数据发送至显存,由于被处理数据被压缩,因此较小了传输开销,提高了传输效率,但是存入显存的压缩后的被处理数据在进行处理之前需要进行解压,但是由于基于熵的压缩方法在解压过程中的串行特性,无法通过GPU的内部众多处理核心并行处理,导致解压效率低,解压时间长,导致数据处理效率低。
综上所述,如何在提高数据处理效率是目前需要解决的问题。
发明内容
有鉴于此,本发明提供了一种数据处理的方法及装置,用于解决现有技术中数据处理效率低且存储空间的开销大的问题。
根据本发明实施例的第一个方面,提供了一种数据处理的方法,包括:从主存中获取按照设定压缩算法压缩的第一数据集合到图形处理器GPU的显存;控制所述GPU的至少一个处理核心在所述第一数据集合获取至少一个第一数据;控制所述GPU的至少一个处理核心按照预先设定的解压规则对所述至少一个第一数据进行解压,确定解压后的至少一个第二数据;控制所述GPU的至少一个处理核心按照预先设定的处理规则对所述至少一个第二数据进行处理。
在一个实施例中,所述从主存中获取按照设定压缩算法压缩的第一数据集合到图形处理器GPU的显存之后,该方法还包括:控制所述GPU的至少一个处理核心确定所述第一数据集合对应的所述解压规则。
在一个实施例中,所述控制所述GPU的至少一个处理核心按照预先设定的解压规则对所述至少一个第一数据进行解压,确定解压后的至少一个第二数据之后,该方法还包括:将所述至少一个第二数据写入所述GPU的显存中,确定解压后的第二数据集合;控制所述GPU的至少一个处理核心在所述第二数据集合获取至少一个第二数据。
在一个实施例中,所述控制所述GPU的至少一个处理核心按照预先设定的解压规则对所述至少一个第一数据进行解压,确定解压后的至少一个第二数据之后,该方法还包括:将所述至少一个第二数据写入所述至少一个处理核心的寄存器中。
在一个实施例中,所述控制所述GPU的至少一个处理核心按照预先设定的处理规则对上述至少一个第二数据进行处理之后,该方法还包括:响应于所述第一数据集合中的数据未全部处理完成,获取所述第一数据集合中的至少一个第三数据进行解压和处理。
在一个实施例中,所述控制所述GPU的至少一个处理核心在所述第一数据集合获取至少一个第一数据,具体包括:控制所述GPU的至少一个处理核心获取所述第一数据集合中的至少一个第一数据的编号;根据所述至少一个第一数据的编号确定所述至少一个第一数据的偏移量;根据所述至少一个第一数据的偏移量确定所述至少一个第一数据。
在一个实施例中,所述根据所述至少一个第一数据的编号确定所述至少一个第一数据的偏移量,具体包括:根据编码宽度与所述至少一个第一数据的编号确定所述至少一个第一数据的偏移量,其中,所述编码宽度是根据所述设定压缩算法和所述第一数据集合对应的原数据集合确定的。
在一个实施例中,所述控制所述GPU的至少一个处理核心按照预先设定的解压规则对所述至少一个第一数据进行解压,确定解压后的至少一个第二数据,具体包括:控制所述GPU的至少一个处理核心按照所述解压规则以及按照所述设定压缩算法压缩第一数据集合时获取的元数据,确定解压后的至少一个第二数据,其中,所述元数据包括压缩后的第一数据集合中数据的值与压缩前的原数据集合中数据的值之间的对应关系、以及编码宽度。
在一个实施例中,所述设定压缩算法为支持随机访问特性的压缩算法。
在一个实施例中,所述支持随机访问特性的压缩算法包括字典压缩。
在一个实施例中,所述处理规则包括求和,或者求均值。
根据本发明实施例的第二个方面,提供了一种数据处理的装置,包括:获取单元,用于从主存中获取按照设定压缩算法压缩的第一数据集合到图形处理器GPU的显存;所述获取单元还用于,控制所述GPU的至少一个处理核心在所述第一数据集合获取至少一个第一数据;解压单元,用于控制所述GPU的至少一个处理核心按照预先设定的解压规则对所述至少一个第一数据进行解压,确定解压后的至少一个第二数据;处理单元,用于控制所述GPU的至少一个处理核心按照预先设定的处理规则对所述至少一个第二数据进行处理。
在一个实施例中,该装置还包括:确定单元,用于控制所述GPU的至少一个处理核心确定所述第一数据集合对应的所述解压规则。
在一个实施例中,所述解压单元还用于:将所述至少一个第二数据写入所述GPU的显存中,确定解压后的第二数据集合;所述获取单元还用于控制所述GPU的至少一个处理核心在所述第二数据集合获取至少一个第二数据。
在一个实施例中,所述解压单元还用于:将所述至少一个第二数据写入所述至少一个处理核心的寄存器中。
在一个实施例中,该装置还包括:判断单元,用于响应于所述第一数据集合中的数据未全部处理完成,获取所述第一数据集合中的至少一个第三数据进行解压和处理。
在一个实施例中,所述获取单元具体用于:控制所述GPU的至少一个处理核心获取所述第一数据集合中的至少一个第一数据的编号;根据所述至少一个第一数据的编号确定所述至少一个第一数据的偏移量;根据所述至少一个第一数据的偏移量确定所述至少一个第一数据。
在一个实施例中,所述获取单元具体用于:根据编码宽度与所述至少一个第一数据的编号确定所述至少一个第一数据的偏移量,其中,所述编码宽度是根据所述设定压缩算法和所述第一数据集合对应的原数据集合确定的。
在一个实施例中,所述解压单元具体用于:控制所述GPU的至少一个处理核心按照所述解压规则以及按照所述设定压缩算法压缩第一数据集合时获取的元数据,确定解压后的至少一个第二数据,其中,所述元数据包括压缩后的第一数据集合中数据的值与压缩前的原数据集合中数据的值之间的对应关系、以及编码宽度。
在一个实施例中,所述设定压缩算法为支持随机访问特性的压缩算法。
在一个实施例中,所述支持随机访问特性的压缩算法包括字典压缩。
在一个实施例中,所述处理规则包括求和,或者求均值。
根据本发明实施例的第三个方面,提供了一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被图像处理器GPU调用时执行实现如第一方面或第一方面任一种可能所述的方法。
本发明实施例的有益效果包括:首先从主存中获取按照设定压缩算法压缩的第一数据集合到图形处理器GPU的显存,然后控制所述GPU的至少一个处理核心在所述第一数据集合获取至少一个第一数据,接着控制所述GPU的至少一个处理核心按照预先设定的解压规则对所述至少一个第一数据进行解压,确定解压后的至少一个第二数据,最后控制所述GPU的至少一个处理核心按照预先设定的处理规则对所述至少一个第二数据进行处理。通过上述方法,GPU的显存接收到压缩的第一数据集合后不需要将所述第一数据集合全部解压,GPU的处理核心只要按照解压规则和处理规则对需要处理的单个数据进行解压即可,减小了显存中的存储开销,并且GPU的处理核心可以同时并行解压多个数据,提高了数据处理效率。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是现有技术中一台包括GPU的计算机的计算和存储框架示意图;
图2是现有技术中一种数据处理过程示意图;
图3是现有技术中另一种数据处理过程示意图;
图4是现有技术中再一种数据处理过程示意图;
图5是本发明实施例提供的一种数据处理的方法流程图;
图6是本发明实施例提供的另一种数据处理的方法流程图;
图7是本发明实施例提供的一种数据处理过程示意图;
图8是本发明实施例提供的另一种数据处理的方法流程图;
图9是本发明实施例提供的一种数据处理的装置示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,不代表顺序,也不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
现有技术中,在图1的计算机的计算和存储框架示意图下,GPU对数据进行处理时,通常采用以下两种方式,方式一,如图2所示,主存将没有压缩过的原始数据集合发送给GPU的显存,在GPU的处理核心中从原始数据集合中获取数据进行计算,确定计算结果。方式二、如图3所示,主存中的数据为原始数据集合根据基于熵的压缩方法压缩后的压缩数据集合,主存将所述压缩数据集合发送给显存,显存根据基于熵的压缩方法对应的解压方式进行串行解压,获得解压后的原始数据集合,在GPU的处理核心中从原始数据集合中获取数据进行计算,确定计算结果。采用方式一对数据进行处理时,主存发送数据至显存时占用的传输带宽较大,浪费传输资源;采用方式二对数据进行处理时在显存中进行解压时需要串行解压,解压时间长,并且在显存中不仅要存储压缩数据集合还需要存储解压后的原始数据集合,导致存储空间开销大。
为解决对数据进行处理时在显存中进行解压时需要串行解压,解压时间长,数据处理效率低的问题,本发明实施例提出了两种方式,具体如下:
方式一、支持随机访问特性的压缩算法对原始数据集合进行压缩的方式。具体的,所述支持随机访问特性的压缩算法即可以根据的压缩前数据集中的数据的编号可以直接计算得出该数据在压缩后的数据集合中的位置,采用该方式时,GPU对数据进行处理的示意图4所示,主存中的数据为原始数据集合根据支持随机访问特性的压缩算法的方法压缩后的压缩数据集合,将主存所述压缩数据集合传输至显存,在显存中根据支持随机访问特性的压缩算法对应的解压方式进行并行解压,将解压后的数据再写入显存中,获得解压后的原始数据集合,在GPU的多个处理核心中从原始数据集合中获取数据进行并行计算,确定计算结果,由于可以并行解压,可以减少解压的时间,提高数据的处理效率,具体的处理流程如图5所示,包括:
步骤S500、从主存中获取按照设定压缩算法压缩的第一数据集合到图形处理器GPU的显存。
步骤S501、控制所述GPU的至少一个处理核心在所述第一数据集合获取至少一个第一数据。
步骤S502、控制所述GPU的至少一个处理核心按照预先设定的解压规则对所述至少一个第一数据进行解压,确定解压后的至少一个第二数据。
步骤S503、将所述至少一个第二数据写入所述GPU的显存中,确定解压后的第二数据集合。
步骤S504、控制所述GPU的至少一个处理核心在所述第二数据集合获取至少一个第二数据。
具体的,GPU的多个处理核心可以同时处理多个第二数据。
步骤S505、控制所述GPU的至少一个处理核心按照预先设定的处理规则对所述至少一个第二数据进行处理。
通过上述方式,GPU的显存中不仅要存储压缩数据集合还需要存储解压后的原始数据集合,存储空间的开销还是很大,为了解决这一问题,本发明提供了方式二,具体如下:
方式二、本发明提供了一种数据处理的方法,具体如图6所示,包括:
步骤S600、从主存中获取按照设定压缩算法压缩的第一数据集合到图形处理器GPU的显存。
具体的,所述设定压缩算法为支持随机访问特性的压缩算法,可选的,所述支持随机访问特性的压缩算法包括字典压缩,本发明实施例中还可以采用其他支持随机访问特性的压缩算法,本发明实施例对其不做限定。
可选的,所述存储所述第一数据集合的为GPU的显存,也可以是其他独立存储元件,本发明实施例对其不做限定。
本发明实施例中,所述第一数据集合可以为GPU的处理核心主动从主存中获取的,也可以为CPU控制主存主动发送给GPU的显存的。
步骤S601、控制所述GPU的至少一个处理核心在所述第一数据集合获取至少一个第一数据。
具体的,控制所述GPU的至少一个处理核心获取所述第一数据集合中的至少一个第一数据的编号;根据编码宽度与所述至少一个第一数据的编号确定所述至少一个第一数据的偏移量,其中,所述编码宽度是根据所述设定压缩算法和所述第一数据集合对应的原数据集合确定的;根据所述至少一个第一数据的偏移量确定所述至少一个第一数据。
举例说明,假设一个数据集合中有10000个数据,上述10000个数据中包括8个不同的数值,对8个数据进行二进制编码时需要3位二进制数,即编码宽度为3。
假设第一数据的编号为i,编码宽度为w,偏移量offset=w*i,根据所述偏移量在所述第一数据集合中确定第一数据。
步骤S602、控制所述GPU的至少一个处理核心按照预先设定的解压规则对所述至少一个第一数据进行解压,确定解压后的至少一个第二数据。
具体的,控制所述GPU的至少一个处理核心按照所述解压规则以及按照所述设定压缩算法压缩第一数据集合时获取的元数据,确定解压后的至少一个第二数据,其中,所述元数据包括压缩后的第一数据集合中数据的值与压缩前的原数据集合中数据的值之间的对应关系、以及编码宽度。
可选的,确定解压后的至少一个第二数据之后,将所述至少一个第二数据写入所述至少一个处理核心的寄存器中。
步骤S603、控制所述GPU的至少一个处理核心按照预先设定的处理规则对所述至少一个第二数据进行处理。
具体的,控制所述GPU的至少一个处理核心按照预先设定的处理规则对所述写入所述至少一个处理核心的寄存器中的至少一个第二数据进行处理。
例如,对所述第二数据进行求和。
其中,步骤S602中的所述解压规则是根据所述设定压缩算法确定的,步骤S603中的所述处理规则包括求和,或者求均值等计算方式,本发明实施例中还可以采用其他计算方式,本发明实施例对其不做限定。
举例说明,确定所述第一数据集合的解压规则和处理规则是根据即时编译技术实现的。
本发明实施例中,首先从主存中获取按照设定压缩算法压缩的第一数据集合,然后控制所述GPU的至少一个处理核心在所述第一数据集合获取至少一个第一数据,接着控制所述GPU的至少一个处理核心按照预先设定的解压规则对所述至少一个第一数据进行解压,确定解压后的至少一个第二数据,最后控制所述GPU的至少一个处理核心按照预先设定的处理规则对所述至少一个第二数据进行处理。通过上述方法,GPU的显存接收到压缩的第一数据集合后不需要将所述第一数据集合全部解压,GPU的处理核心只要按照解压规则和处理规则对需要处理的单个数据进行解压即可,减小了显存中的存储开销,并且GPU的处理核心可以同时并行解压多个数据,提高了数据处理效率。
可选的,实现步骤S600至步骤S603的过程可以编写在一套程序中,也可以编写在两套程序中,本发明对其不做限定,只要该程序可以控制GPU中的各个部件实现处理流程即可。
可选的,步骤S600之前,该方法还包括确定原始数据集合的大小是否大于设定阈值,其中,所述设定阈值可以为显存的存储空间的值;若原始数据集合小于所述显存的存储空间的值,则将所述原始数据集合直接压缩;若原始数据集合大于所述显存的存储空间的值,则将所述原始数据集合先进行分片,然后对分片后的原始数据集合进行压缩。
可选的,步骤S600之后,该方法还包括控制所述GPU的至少一个处理核心确定所述第一数据集合对应的所述解压规则。
可选的,步骤S603之前,该方法还包括控制所述GPU的至少一个处理核心确定所述第一数据集合对应的所述处理规则。
本发明实施例中,在数据处理之前根据数据描述和操作描述事先获取所述第一数据集合所对应的解压规则和处理规则,并据此生成针对第一数据集合的数据访问和处理代码,在对第一数据集合中的全部数据进行数据处理时都使用相同的解压规则和处理规则,不再需要针对每个数据分别执行相应的选择判断逻辑,从而减少了数据处理开销。
可选的,步骤S603之后,该方法还包括:响应于所述第一数据集合中的数据未全部处理完成,获取所述第一数据集合中的至少一个第三数据进行解压和处理。
举例说明,假设所述第一数据集合中包含有n个数据,若第一数据为第n个,则所述第一数据集合中的数据全部处理完成,结束处理;若第一数据为第n-1个,则继续处理第n个数据。
本发明实施例中,对压缩后的第一数据集合中的单个数据进行解压后将解压后的数据驻留在GPU的处理核心的寄存器中,可以被处理核心直接访问,避免了解压之后将数据写回显存以及处理数据前从显存读取数据的开销,其中,所述处理核心也可以称为处理器。
本发明实施例中,上述过程可以称为支持随机访问特性的压缩算法与解压计算融合的数据处理方法,具体示意图如图7所示,具体的,主存中的数据为原始数据集合根据支持随机访问特性的压缩算法压缩后的压缩数据集合,主存将所述压缩数据集合发送给显存,GPU的处理核心根据支持随机访问特性的压缩算法对应的解压规则进行并行解压及计算,确定数据处理结果。
下面通过一个具体实施例,对本发明实施例提出的一种数据处理方法进行详细说明,举例说明,假设原始数据集合为数据集A,需要对数据集A中所有数据进行求和,数据集A中的数据为连续存储的n个整数,第i个数据为a_i,其中,0<=i<=n;在数据集A存入磁盘之前采用字典压缩的支持随机访问特性的压缩算法对数据集A进行压缩,每个数据经过压缩后的编码宽度为w,即每个数据压缩后可以通过w位的二进制数表示,数据集A压缩后得到数据集B,数据集B中的第i个数据b_i为a_i压缩后的编码数据,将数据集A压缩为数据集B时生成了元数据C,其中,所述元数据C包括数据集A中数据的值与数据集B中数据的值的对应关系以及编码宽度w,数据集B进行解压时采用字典压缩对应的解压规则,通过计算机中包括的GPU计算数据集A中所有数据的和(sum)的具体流程如图8所示:
步骤S800、GPU显存获取压缩后的数据集B。
其中,所述数据集B中包括n个数据,每个数据的编号为i,0<=i<=n-1。
步骤S801、初始化变量sum的值等于0,并确定i=0。
具体的,从第0个数据开始依次将变量sum与编码数据b_i对应的原始数据值相加。
步骤S802、确定数据集B中的编码数据b_i对应的编号i在数据集B中的偏移量offset=i*w。
步骤S803、根据所述编号i在数据集B中的偏移量offset,确定压缩后的编码数据b_i。
步骤S804、根据所述编码数据b_i、元数据C以及字典压缩对应的解压规则,确定编码数据b_i对应的原始数据a_i。
步骤S805、更新变量sum为初始变量sum的值与a_i之和。
具体的,sum=sum+a_i。
步骤S806、判断i的值是否小于n-1,若是,则更新i,i=i+1,返回步骤S802,继续处理下一个数据b_i+1,若否,即i等于n-1,则结束处理。
其中,当结束处理时,变量sum的值即为数据集A中所有原始数据的求和结果。
图9是本发明实施例提供的一种数据处理的装置示意图。如图8所示,本实施例的数据处理的装置包括:获取单元91、解压单元92和处理单元93。其中,获取单元91,用于从主存中获取按照设定压缩算法压缩的第一数据集合到图形处理器GPU的显存;所述获取单元91还用于,控制所述GPU的至少一个处理核心在所述第一数据集合获取至少一个第一数据;解压单元92,用于控制所述GPU的至少一个处理核心按照预先设定的解压规则对所述至少一个第一数据进行解压,确定解压后的至少一个第二数据;处理单元93,用于控制所述GPU的至少一个处理核心按照预先设定的处理规则对所述至少一个第二数据进行处理。
可选的,该装置还包括:确定单元,用于控制所述GPU的至少一个处理核心确定所述第一数据集合对应的所述解压规则。
可选的,所述解压单元还用于:将所述至少一个第二数据写入所述GPU的显存中,确定解压后的第二数据集合;所述获取单元还用于控制所述GPU的至少一个处理核心在所述第二数据集合获取至少一个第二数据。
可选的,所述解压单元还用于:将所述至少一个第二数据写入所述至少一个处理核心的寄存器中。
可选的,该装置还包括:判断单元,用于响应于所述第一数据集合中的数据未全部处理完成,获取所述第一数据集合中的至少一个第三数据进行解压和处理。
可选的,所述获取单元具体用于:控制所述GPU的至少一个处理核心获取所述第一数据集合中的至少一个第一数据的编号;根据所述至少一个第一数据的编号确定所述至少一个第一数据的偏移量;根据所述至少一个第一数据的偏移量确定所述至少一个第一数据。
可选的,所述获取单元具体用于:根据编码宽度与所述至少一个第一数据的编号确定所述至少一个第一数据的偏移量,其中,所述编码宽度是根据所述设定压缩算法和所述第一数据集合对应的原数据集合确定的。
可选的,所述解压单元具体用于:控制所述GPU的至少一个处理核心按照所述解压规则以及按照所述设定压缩算法压缩第一数据集合时获取的元数据,确定解压后的至少一个第二数据,其中,所述元数据包括压缩后的第一数据集合中数据的值与压缩前的原数据集合中数据的值之间的对应关系、以及编码宽度。
可选的,所述设定压缩算法为支持随机访问特性的压缩算法。
可选的,所述支持随机访问特性的压缩算法包括字典压缩。
可选的,所述处理规则包括求和,或者求均值。
如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本发明实施例的各个方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。
计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。
可以使用包括但不限于无线、有线、光纤电缆、RF等或前述的任意适当组合的任意合适的介质来传送实现在计算机可读介质上的程序代码。
用于执行针对本发明实施例各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如Java、Smalltalk、C++等;以及常规过程编程语言如“C”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(LAN)或广域网(WAN)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。
上述根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图图例和/或框图描述了本发明实施例的各个方面。将要理解的是,流程图图例和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。
还可以将这些计算机程序指令存储在可以指导计算机、其它可编程数据处理设备或其它装置以特定方式运行的计算机可读介质中,使得在计算机可读介质中存储的指令产生包括实现在流程图和/或框图块或块中指定的功能/动作的指令的制品。
计算机程序指令还可以被加载至计算机、其它可编程数据处理设备或其它装置上,以使在计算机、其它可编程设备或其它装置上执行一系列可操作步骤来产生计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供用于实现在流程图和/或框图块或块中指定的功能/动作的过程。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种数据处理的方法,其特征在于,包括:
从主存中获取按照设定压缩算法压缩的第一数据集合到图形处理器GPU的显存;
控制所述GPU的至少一个处理核心在所述第一数据集合获取至少一个第一数据;
控制所述GPU的至少一个处理核心按照预先设定的解压规则对所述至少一个第一数据进行解压,确定解压后的至少一个第二数据;
控制所述GPU的至少一个处理核心按照预先设定的处理规则对所述至少一个第二数据进行处理;
其中,所述控制所述GPU的至少一个处理核心在所述第一数据集合获取至少一个第一数据,具体包括:
控制所述GPU的至少一个处理核心获取所述第一数据集合中的至少一个第一数据的编号;
根据所述至少一个第一数据的编号确定所述至少一个第一数据的偏移量;
根据所述至少一个第一数据的偏移量确定所述至少一个第一数据;
所述控制所述GPU的至少一个处理核心按照预先设定的解压规则对所述至少一个第一数据进行解压,确定解压后的至少一个第二数据,具体包括:
控制所述GPU的至少一个处理核心按照所述解压规则以及按照所述设定压缩算法压缩第一数据集合时获取的元数据,确定解压后的至少一个第二数据,其中,所述元数据包括压缩后的第一数据集合中数据的值与压缩前的原数据集合中数据的值之间的对应关系、以及编码宽度。
2.如权利要求1所述的方法,其特征在于,所述从主存中获取按照设定压缩算法压缩的第一数据集合到图形处理器GPU的显存之后,该方法还包括:
控制所述GPU的至少一个处理核心确定所述第一数据集合对应的所述解压规则。
3.如权利要求1所述的方法,其特征在于,所述控制所述GPU的至少一个处理核心按照预先设定的解压规则对所述至少一个第一数据进行解压,确定解压后的至少一个第二数据之后,该方法还包括:
将所述至少一个第二数据写入所述GPU的显存中,确定解压后的第二数据集合;
控制所述GPU的至少一个处理核心在所述第二数据集合获取至少一个第二数据。
4.如权利要求1所述的方法,其特征在于,所述控制所述GPU的至少一个处理核心按照预先设定的解压规则对所述至少一个第一数据进行解压,确定解压后的至少一个第二数据之后,该方法还包括:
将所述至少一个第二数据写入所述至少一个处理核心的寄存器中。
5.如权利要求1所述的方法,其特征在于,所述控制所述GPU的至少一个处理核心按照预先设定的处理规则对上述至少一个第二数据进行处理之后,该方法还包括:
响应于所述第一数据集合中的数据未全部处理完成,获取所述第一数据集合中的至少一个第三数据进行解压和处理。
6.如权利要求1所述的方法,其特征在于,所述根据所述至少一个第一数据的编号确定所述至少一个第一数据的偏移量,具体包括:
根据编码宽度与所述至少一个第一数据的编号确定所述至少一个第一数据的偏移量,其中,所述编码宽度是根据所述设定压缩算法和所述第一数据集合对应的原数据集合确定的。
7.如权利要求1所述的方法,其特征在于,所述设定压缩算法为支持随机访问特性的压缩算法。
8.如权利要求7所述的方法,其特征在于,所述支持随机访问特性的压缩算法包括字典压缩。
9.如权利要求1所述的方法,其特征在于,所述处理规则包括求和,或者求均值。
10.一种数据处理的装置,其特征在于,包括:
获取单元,用于从主存中获取按照设定压缩算法压缩的第一数据集合到图形处理器GPU的显存;
所述获取单元还用于,控制所述GPU的至少一个处理核心在所述第一数据集合获取至少一个第一数据;
解压单元,用于控制所述GPU的至少一个处理核心按照预先设定的解压规则对所述至少一个第一数据进行解压,确定解压后的至少一个第二数据;
处理单元,用于控制所述GPU的至少一个处理核心按照预先设定的处理规则对所述至少一个第二数据进行处理;
其中,所述获取单元具体用于:控制所述GPU的至少一个处理核心获取所述第一数据集合中的至少一个第一数据的编号;
根据所述至少一个第一数据的编号确定所述至少一个第一数据的偏移量;
根据所述至少一个第一数据的偏移量确定所述至少一个第一数据;
所述处理单元具体用于:
控制所述GPU的至少一个处理核心按照所述解压规则以及按照所述设定压缩算法压缩第一数据集合时获取的元数据,确定解压后的至少一个第二数据,其中,所述元数据包括压缩后的第一数据集合中数据的值与压缩前的原数据集合中数据的值之间的对应关系、以及编码宽度。
11.一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被图像处理器GPU调用时执行实现如权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910074156.7A CN109886858B (zh) | 2019-01-25 | 2019-01-25 | 一种数据处理的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910074156.7A CN109886858B (zh) | 2019-01-25 | 2019-01-25 | 一种数据处理的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109886858A CN109886858A (zh) | 2019-06-14 |
CN109886858B true CN109886858B (zh) | 2023-04-11 |
Family
ID=66926976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910074156.7A Active CN109886858B (zh) | 2019-01-25 | 2019-01-25 | 一种数据处理的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109886858B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9311721B1 (en) * | 2013-04-04 | 2016-04-12 | Sandia Corporation | Graphics processing unit-assisted lossless decompression |
CN109062502A (zh) * | 2018-07-10 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种数据压缩方法、装置、设备及计算机可读存储介质 |
-
2019
- 2019-01-25 CN CN201910074156.7A patent/CN109886858B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9311721B1 (en) * | 2013-04-04 | 2016-04-12 | Sandia Corporation | Graphics processing unit-assisted lossless decompression |
CN109062502A (zh) * | 2018-07-10 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种数据压缩方法、装置、设备及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
基于GPU加速的binLBT压缩解压算法;于卓等;《北京航空航天大学学报》;20100315(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109886858A (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111857550B (zh) | 用于数据去重的方法、设备以及计算机可读介质 | |
KR102152346B1 (ko) | 이미지 파일의 블록 간 차이를 통한 압축율 향상 방법 및 시스템 | |
EP3410302B1 (en) | Graphic instruction data processing method, apparatus | |
US10701172B2 (en) | Clients for storage services | |
US20170193028A1 (en) | Delta encoding in storage clients | |
US20190222224A1 (en) | Adaptive compression for data services | |
CN114610650A (zh) | 内存压缩方法、装置、存储介质及电子设备 | |
US9584620B1 (en) | Caching in storage clients | |
JP7106587B2 (ja) | イメージファイルのピクセル変換を利用した圧縮率向上方法およびシステム | |
CN109886858B (zh) | 一种数据处理的方法及装置 | |
CN114065704A (zh) | 数据压缩方法、电子设备和计算机程序产品 | |
CN111683189A (zh) | 图片压缩方法、系统、终端、及存储介质 | |
CN110740138A (zh) | 数据传输方法和装置 | |
CN108234552B (zh) | 一种数据存储方法及装置 | |
CN114780501A (zh) | 数据处理方法、电子设备和计算机程序产品 | |
KR102195239B1 (ko) | 대역폭을 고려한 하둡의 데이터 압축 전송 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
CN115225094A (zh) | 数据压缩方法、电子设备和计算机程序产品 | |
CN111639055B (zh) | 差分包计算方法、装置、设备及存储介质 | |
US20130181852A1 (en) | Coding circuitry for difference-based data transformation | |
CN109886862B (zh) | 一种数据处理的方法及装置 | |
US11431349B2 (en) | Method, electronic device and computer program product for processing data | |
US20220188077A1 (en) | Arithmetic processing device, arithmetic processing method, and storage medium | |
US11966597B1 (en) | Multi-domain configurable data compressor/de-compressor | |
CN110175269B (zh) | 一种顶点索引的压缩及解压缩方法、装置及计算机存储介质 | |
US20220393699A1 (en) | Method for compressing sequential records of interrelated data fields |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |