CN109886862A - 一种数据处理的方法及装置 - Google Patents
一种数据处理的方法及装置 Download PDFInfo
- Publication number
- CN109886862A CN109886862A CN201910074154.8A CN201910074154A CN109886862A CN 109886862 A CN109886862 A CN 109886862A CN 201910074154 A CN201910074154 A CN 201910074154A CN 109886862 A CN109886862 A CN 109886862A
- Authority
- CN
- China
- Prior art keywords
- decompression
- data
- data set
- gpu
- compression
- 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.)
- Granted
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供了一种数据处理的方法及装置,用于解决现有技术中数据传输效率较低且存储空间开销较大的问题。包括:从磁盘中获取第一数据集合到主存;控制所述CPU根据第一解压算法对所述第一数据集合进行第一次解压,确定所述第一次解压后的第二数据集合,其中,所述第一解压算法为不支持随机访问的压缩方法对应的解压算法;从主存中获取所述第二数据集合到图像处理器GPU的显存;控制所述GPU的至少一个处理核心根据第二解压算法对所述第二数据集合进行第二次解压,其中,所述第二解压算法为随机访问解压算法。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理的方法及装置。
背景技术
图形处理器(Graphics Processing Unit,GPU)是计算机中包括的一种硬件,GPU可以利用内部众多的处理核心协助计算机的中央处理器(Central Processing Unit,CPU)对多种类型计算任务进行并行加速,图1为一台包括GPU的计算机的计算和存储框架示意图,具体的,当需要使用GPU对数据进行处理时,首先需要将被处理数据从计算机的磁盘导入主存,然后从主存传输到GPU的显存中,然后GPU中处理核心从所述显存中获取被处理数据进行处理。在上述过程中,当被处理数据的数据量较大时,被处理数据从磁盘导入主存的传输开销较大且主存中需要较大的存储空间,当被处理数据的数据量大于GPU的显存时,在数量处理的过程中需要在计算机的主存和GPU的显存之间进行大量的数据倒换,进一步增加了传输开销,影响传输效率。
现有技术中,为了减小传输开销,在被处理数据存入磁盘之前采用基于熵的压缩方法对被处理数据进行压缩,当磁盘中存储的压缩后的被处理数据需要进行解压时,将磁盘中存储的压缩后的被处理数据导入主存,再将主存压缩后的被处理数据发送至显存,由于被处理数据被压缩,因此减小了传输开销,提高了传输效率,但是存入显存的压缩后的被处理数据在进行处理之前需要进行解压,由于基于熵的压缩方法在解压过程中的串行特性,无法通过GPU的内部众多处理核心并行处理,导致解压效率低,解压时间长,导致数据处理效率低,并且,在解压过程中压缩后的被处理数据和解压后被处理数据都需要驻留在GPU显存中,增加了对GPU存储空间的需求,减少了GPU单批次能够处理的数据量,增加了存储空间的开销。
综上所述,如何在提高数据传输效率的同时减小存储空间的开销是目前需要解决的问题。
发明内容
有鉴于此,本发明提供了一种数据处理的方法及装置,用于解决现有技术中数据传输效率较低且存储空间开销较大的问题。
根据本发明实施例的第一个方面,提供了一种数据处理的方法,包括:从磁盘中获取第一数据集合到主存;控制中央处理器CPU根据第一解压算法对所述第一数据集合进行第一次解压,确定所述第一次解压后的第二数据集合,其中,所述第一解压算法为不支持随机访问的压缩方法对应的解压算法;从主存中获取所述第二数据集合到图像处理器GPU的显存;控制所述GPU的至少一个处理核心根据第二解压算法对所述第二数据集合进行第二次解压,其中,所述第二解压算法为随机访问解压算法。
在一个实施例中,所述控制所述CPU根据第一解压算法对所述第一数据集合进行第一次解压,确定所述第一次解压后的第二数据集合之后,该方法还包括:将所述第二数据集合写入主存的一次压缩数据缓冲区。
在一个实施例中,所述从主存中获取所述第二数据集合到图像处理器GPU的显存,具体包括:从主存的一次压缩数据缓冲区中获取所述第二数据集合到图像处理器GPU的显存的显存数据缓冲区。
在一个实施例中,所述控制所述GPU的至少一个处理核心根据第二解压算法对所述第二数据集合进行第二次解压之后,该方法包括:将所述GPU的显存的显存数据缓冲区中的第二数据集合移除。
在一个实施例中,所述控制所述GPU的至少一个处理核心根据第二解压算法对所述第二数据集合进行第二次解压,具体包括:控制所述GPU的多个核以并行方式对所述第二数据集合进行第二次解压,确定解压后的第一原始数据集合,将所述第一原始数据集合写入所述GPU的显存。
在一个实施例中,所述控制所述GPU的多个核以并行方式对所述第二数据集合进行第二次解压,确定解压后的第一原始数据集合,将所述第一原始数据集合写入所述GPU的显存,具体包括:控制所述多个处理核从所述GPU的显存中的所述第一原始数据集合中获取数据进行处理。
在一个实施例中,所述控制所述GPU的至少一个处理核心根据第二解压算法对所述第二数据集合进行第二次解压,具体包括:控制所述GPU的多个处理核对所述第二数据集合进行第二次解压,将解压后的数据写入所述多个处理核分别对应的寄存器中。
在一个实施例中,所述控制所述GPU的多个处理核对所述第二数据集合进行第二次解压,将解压后的数据写入所述多个处理核分别对应的寄存器中之后,该方法还包括:控制所述多个处理核分别从对应的寄存器中获取解压后的数据进行处理。
根据本发明实施例的第二个方面,提供了一种数据压缩的方法,包括:控制中央处理器CPU将第二原始数据集合按照设定值进行分片,确定分片后的至少一个第一原始数据集合;控制所述CPU或图像处理器GPU对所述第一原始数据集合进行第一次压缩,确定第一次压缩后的数据集合;控制所述CPU对所述第一次压缩后的数据集合进行第二次压缩,确定压缩后的第一数据集合;将所述压缩后的第一数据集合发送到磁盘。
在一个实施例中,所述第一次压缩采用随机访问压缩算法进行压缩,第二次压缩采用不可随机访问的压缩算法进行压缩。
根据本发明实施例的第三个方面,提供了一种数据处理的装置,包括:第一获取单元,用于从磁盘中获取第一数据集合到主存;第一解压单元,用于控制中央处理器CPU根据第一解压算法对所述第一数据集合进行第一次解压,确定所述第一次解压后的第二数据集合,其中,所述第一解压算法为不支持随机访问的压缩方法对应的解压算法;第二获取单元,用于从主存中获取所述第二数据集合到图像处理器GPU的显存;第二解压单元,用于控制所述GPU的至少一个处理核心根据第二解压算法对所述第二数据集合进行第二次解压,其中,所述第二解压算法为随机访问解压算法。
在一个实施例中,该装置还包括:写入单元,用于将所述第二数据集合写入主存的一次压缩数据缓冲区。
在一个实施例中,所述第二获取单元具体用于:从主存的一次压缩数据缓冲区中获取所述第二数据集合到图像处理器GPU的显存的显存数据缓冲区。
在一个实施例中,该装置还包括:移除单元,用于将所述GPU的显存的显存数据缓冲区中的第二数据集合移除。
在一个实施例中,所述第二解压单元具体用于:控制所述GPU的多个核以并行方式对所述第二数据集合进行第二次解压,确定解压后的第一原始数据集合,将所述第一原始数据集合写入所述GPU的显存。
在一个实施例中,所述第二解压单元具体用于:控制所述多个处理核从所述GPU的显存中的所述第一原始数据集合中获取数据进行处理。
在一个实施例中,所述第二解压单元具体用于:控制所述GPU的多个处理核对所述第二数据集合进行第二次解压,将解压后的数据写入所述多个处理核分别对应的寄存器中。
在一个实施例中,所述第二解压单元具体用于:控制所述多个处理核分别从对应的寄存器中获取解压后的数据进行处理。
根据本发明实施例的第四个方面,提供了一种数据处理的装置,包括:分片单元,用于控制CPU将第二原始数据集合按照设定值进行分片,确定分片后的至少一个第一原始数据集合;第一压缩单元,用于控制所述CPU或图像处理器GPU对所述第一原始数据集合进行第一次压缩,确定第一次压缩后的数据集合;第二压缩单元,用于控制所述CPU对所述第一次压缩后的数据集合进行第二次压缩,确定压缩后的第一数据集合;发送单元,用于将所述压缩后的第一数据集合发送到磁盘。
在一个实施例中,所述第一次压缩采用随机访问压缩算法进行压缩,第二次压缩采用不可随机访问的压缩算法进行压缩。
根据本发明实施例的第五个方面,提供了一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如第一方面或第一方面任一种可能所述的方法。
本发明实施例的有益效果包括:首先从磁盘中获取第一数据集合到主存,然后控制中央处理器CPU根据第一解压算法对所述第一数据集合进行第一次解压,确定所述第一次解压后的第二数据集合,其中,所述第一解压算法为不支持随机访问的压缩方法对应的解压算法,接着从主存中获取所述第二数据集合到图像处理器GPU的显存,最后控制所述GPU的至少一个处理核心根据第二解压算法对所述第二数据集合进行第二次解压,其中,所述第二解压算法为随机访问解压算法。通过上述方法,对原始数据集合进行二次压缩,可以减少磁盘到主存的传输开销,并节约磁盘与主存中的存储空间,在GPU的显存中对经过第一次解压后的第二数据集合进行并行解压和处理,可以提高解压效率以及数据处理速度,并且不需要将第二数据集合整体解压后再进行处理,节约了GPU的显存中的存储空间。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是现有技术中一台包括GPU的计算机的计算和存储框架示意图;
图2是现有技术中一种数据处理过程示意图;
图3是本发明实施例提供的一种数据压缩的方法流程图;
图4是本发明实施例提供的一种数据分片压缩的示意图;
图5是本发明实施例提供的一种数据处理的方法流程图;
图6是本发明实施例提供的一种数据处理过程示意图;
图7是本发明实施例提供的一种数据压缩的装置示意图;
图8是本发明实施例提供的一种数据处理的装置示意图;
图9是本发明实施例提供的另一种数据处理的方法流程图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,不代表顺序,也不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
现有技术中,现有技术中,在图1的计算机的计算和存储框架示意图下,GPU对数据进行处理时,通常采用如图2所示的方式,将原始数据集合采用不可随机访问的压缩算法进行压缩,确定压缩后的数据集合,将所述压缩后的数据集合存入磁盘,磁盘将压缩后的数据集合发送给主存,其中,所述主存是所有处理机构(例如CPU)共享的内存,当使用统一内存架构(Unified Memory Architecture,UMA)时GPU也可以访问主存中的部分存储空间,CPU将主存中压缩后的数据集合发送给GPU的显存,GPU的处理核心串行解压所述压缩后的数据集合,得到原始数据集合,所述原始数据集合写入显存中,GPU的处理核心从显存中获取原始数据集合进行处理。采用上述方式对数据进行传输和存储时,对数据进行处理时在显存中进行解压时需要串行解压,解压时间长,并且在显存中不仅要存储压缩后的数据集合还需要存储解压后的原始数据集合,导致存储空间开销大。
为解决数据传输效率较低且存储空间开销较大的问题,本发明提供的一种数据压缩的方法,具体如图3所示,包括:
步骤S300、控制中央处理器CPU将第二原始数据集合按照设定值进行分片,确定分片后的至少一个第一原始数据集合。
步骤S301、控制所述CPU或图像处理器GPU对所述第一原始数据集合进行第一次压缩,确定第一次压缩后的数据集合。
步骤S302、控制所述CPU对所述第一次压缩后的数据集合进行第二次压缩,确定压缩后的第一数据集合。
具体的,所述第一次压缩采用随机访问压缩算法进行压缩,第二次压缩采用不可随机访问的压缩算法进行压缩。
步骤S303、将所述压缩后的第一数据集合发送到磁盘。
举例说明,具体的数据压缩的示意图,如图4所示,假设第二原始数据集合相对于磁盘、内存和显存的存储空间较大,需要将所述第二原始数据集合按照设定值进行分片,其中,所述设定值是根据磁盘、内存、显存的存储空间大小以及数据传输速率确定的,假设第二原始数据集合的大小为20G,根据磁盘、内存、显存的存储空间大小以及数据传输速率确定出设定值为5G,在存入磁盘之前,则需要将第二原始数据集合分片为4部分,分别为分片0、分片1、分片2和分片3,其中任一分片都为第一原始数据集合,针对每个分片后的第一原始数据集合先采用随机访问压缩算法进行压缩,再采用不可随机访问的压缩算法进行压缩,确定压缩后的第一数据集合。本发明实施例中,不同分片的大小也可以不同。
本发明还提供的一种数据处理的方法,用于将上述保存在磁盘中的经过两次压缩的第一数据集合进行处理,具体如图5所示,包括:
步骤S500、从磁盘中获取第一数据集合到主存。
具体的,从磁盘中获取经过两次压缩的第一数据集合到主存的两次压缩数据缓冲区。
举例说明,所述第一数据集合为第一原始数据集合先经过随机访问压缩算法进行压缩,然后经过不可随机访问压缩算法进行压缩确定的。
可选的,本发明实施例中,磁盘也可以为硬盘,或者其他存储介质,本发明对其不做限定。
步骤S501、控制中央处理器CPU根据第一解压算法对所述第一数据集合进行第一次解压,确定所述第一次解压后的第二数据集合,其中,所述第一解压算法为不支持随机访问的压缩方法对应的解压算法。
举例说明,所述第一次解压后的第二数据集合为仅经过随机访问压缩算法进行压缩的数据集合。
可选的,所述步骤S501之后,该方法还包括将所述第二数据集合写入主存的一次压缩数据缓冲区。
步骤S502、从主存中获取所述第二数据集合到图像处理器GPU的显存。
具体的,从主存的一次压缩数据缓冲区中获取所述第二数据集合到图像处理器GPU的显存的显存数据缓冲区。
步骤S503、控制所述GPU的至少一个处理核心根据第二解压算法对所述第二数据集合进行第二次解压,其中,所述第二解压算法为随机访问解压算法。
具体的,控制所述GPU的多个核以并行方式对所述第二数据集合进行第二次解压。
本发明实施例中,首先从磁盘中获取第一数据集合到主存,然后控制中央处理器CPU根据第一解压算法对所述第一数据集合进行第一次解压,确定所述第一次解压后的第二数据集合,其中,所述第一解压算法为不支持随机访问的压缩方法对应的解压算法,接着从主存中获取所述第二数据集合到图像处理器GPU的显存,最后控制所述GPU的至少一个处理核心根据第二解压算法对所述第二数据集合进行第二次解压,其中,所述第二解压算法为随机访问解压算法。通过上述方法,对原始数据集合进行二次压缩,可以减少磁盘到主存的传输开销,并节约磁盘与CPU主存中的存储空间,在GPU的显存中对经过第一次解压后的第二数据集合进行并行解压和处理,可以提高解压效率以及数据处理速度,并且不需要将第二数据集合整体解压后再进行处理,节约了GPU的显存中的存储空间。
本发明实施例中,上述图5的处理过程也可以通过图6所示的示意图进行表示,可以更清楚的表达图5的处理过程。
可选的,步骤S503之后,该方法包括:将所述GPU的显存的显存数据缓冲区中的第二数据集合移除。
本发明实施例中,步骤S503具体包括两种情况。
情况一、控制所述GPU的多个核以并行方式对所述第二数据集合进行第二次解压,确定解压后的第一原始数据集合,将所述第一原始数据集合写入所述GPU的显存;控制所述多个处理核从所述GPU的显存中的所述第一原始数据集合中获取数据进行处理。
情况二、控制所述GPU的多个处理核对所述第二数据集合进行第二次解压,将解压后的数据写入所述多个处理核分别对应的寄存器中;控制所述多个处理核分别从对应的寄存器中获取解压后的数据进行处理。
图7是本发明实施例提供的一种数据压缩的装置示意图。如图7所示,本实施例的数据压缩的装置包括:分片单元71、第一压缩单元72、第二压缩单元73和发送单元74,其中,所述分片单元,用于控制CPU将第二原始数据集合进行设定阈值进行分片,确定分片后的至少一个第一原始数据集合;所述第一压缩单元,用于控制所述CPU或图像处理器GPU对所述第一原始数据集合进行第一次压缩,确定第一次压缩后的数据集合;所述第二压缩单元还用于,控制所述CPU对所述第一次压缩后的数据集合进行第二次压缩,确定压缩后的第一数据集合;所述发送单元,用于将所述压缩后的第一数据集合发送到磁盘。
图8是本发明实施例提供的一种数据处理的装置示意图。如图8所示,本实施例的数据处理的装置包括:第一获取单元81、第一解压单元82、第二获取单元83和第二解压单元84。其中,所述第一获取单元,用于从磁盘中获取第一数据集合到主存;所述第一解压单元,用于控制中央处理器CPU根据第一解压算法对所述第一数据集合进行第一次解压,确定所述第一次解压后的第二数据集合,其中,所述第一解压算法为不支持随机访问的压缩方法对应的解压算法;所述第二获取单元,用于从主存中获取所述第二数据集合到图像处理器GPU的显存;所述第二解压单元,用于控制所述GPU的至少一个处理核心根据第二解压算法对所述第二数据集合进行第二次解压,其中,所述第二解压算法为随机访问解压算法。
可选的,该装置还包括:写入单元,用于将所述第二数据集合写入主存的一次压缩数据缓冲区。
可选的,所述第二获取单元具体用于:从主存的一次压缩数据缓冲区中获取所述第二数据集合到图像处理器GPU的显存的显存数据缓冲区。
可选的,该装置还包括:移除单元,用于将所述GPU的显存的显存数据缓冲区中的第二数据集合移除。
可选的,所述第二解压单元具体用于:控制所述GPU的多个核以并行方式对所述第二数据集合进行第二次解压,确定解压后的第一原始数据集合,将所述第一原始数据集合写入所述GPU的显存。
可选的,所述第二解压单元具体用于:控制所述多个处理核从所述GPU的显存中的所述第一原始数据集合中获取数据进行处理。
可选的,所述第二解压单元具体用于:控制所述GPU的多个处理核对所述第二数据集合进行第二次解压,将解压后的数据写入所述多个处理核分别对应的寄存器中。
可选的,所述第二解压单元具体用于:控制所述多个处理核分别从对应的寄存器中获取解压后的数据进行处理。
本发明实施例中,所述第一获取单元又可以称为磁盘内存传输模块,所述第一解压单元又可以称为CPU解压模块,所述第二获取单元又可以称为内存显存传输模块,所述第二解压单元又可以称为GPU解压模块,假设第二原始数据集合分为分片0、分片1、分片2和分片3,4个第一原始数据集合,针对不同的处理模块,当处理完其中一个分片后,可继续处理下一个分片,多个模块可以在同一时刻对多个分片进行处理,假设处理时刻为T0、T1、T2和T3,具体处理流程如图9所示,其中,磁盘内存模块在T0时刻先处理分片0,然后在T1时刻CPU解压模块处理分片0,然后在T2时刻内存显存传输模块处理分片0,最后在T3时刻GPU解压模块处理分片0;在T1时刻CPU解压模块处理分片0的同时磁盘内存传输模块处理分片1;在T2时刻内存显存传输模块处理分片0的同时,CPU解压模块处理分片1,磁盘内存模块处理分片2;在T3时刻GPU解压模块处理分片0的同时,内存显存传输模块处理分片1,CPU解压模块处理分片2,磁盘内存模块处理分片3。
具体的,磁盘内存传输模块用于将两次压缩的分片数据集合从磁盘读取到内存的两次压缩数据缓冲区中,所述磁盘内存传输模块在从磁盘读取数据之前,首先检查内存中两次压缩数据缓冲区是否有空余存储空间,若有,则将尚未被访问的分片数据集合从磁盘传输到两次压缩数据缓冲区;CPU解压模块用于将两次压缩的分片数据集合进行第一次解压,得到仅被可随机访问压缩的数据集合,所述CPU解压模块在进行一次解压之前,依次检查内存的两次压缩数据缓冲区和内存的一次压缩数据缓冲区,若两次压缩数据缓冲区中还有未被处理的两次压缩的分片数据集合,并且一次压缩数据缓冲区中还用空余空间,则从两次压缩数据缓冲区中读取部分数据,通过CPU进行一次解压,并将解压后的数据存入一次压缩数据缓冲区;内存显存传输模块用于将仅被随机访问压缩的分片数据集合从一次压缩数据缓冲区传输到显存数据缓冲区中,所述内存显存传输模块依次检查一次压缩数据缓冲区和显存数据缓冲区,若一次压缩数据缓冲区中有未被处理的仅被随机访问压缩的分片数据集合,并且显存数据缓冲区中还用空余空间,则从一次压缩数据缓冲区中读取部分数据,将其传输并存储到显存数据缓冲区。GPU解压模块用于将显存数据缓冲区中仅被随机访问压缩的分片数据集合进行解压并进行后续处理,若显存数据缓冲区中有数据,则GPU的只是一个处理核心对数据进行解压和处理,在数据处理完成后,将对应的分片数据集合从显存数据缓冲区中移除。
如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为***、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“***”的将软件方面与硬件方面相结合的实施方式。此外,本发明实施例的各个方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体***、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行***、设备或装置使用的程序或结合指令执行***、设备或装置使用的程序的任意有形介质。
计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行***、设备或装置使用的或结合指令执行***、设备或装置使用的程序进行通信、传播或传输。
可以使用包括但不限于无线、有线、光纤电缆、RF等或前述的任意适当组合的任意合适的介质来传送实现在计算机可读介质上的程序代码。
用于执行针对本发明实施例各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如Java、Smalltalk、C++等;以及常规过程编程语言如“C”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(LAN)或广域网(WAN)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。
上述根据本发明实施例的方法、设备(***)和计算机程序产品的流程图图例和/或框图描述了本发明实施例的各个方面。将要理解的是,流程图图例和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。
还可以将这些计算机程序指令存储在可以指导计算机、其它可编程数据处理设备或其它装置以特定方式运行的计算机可读介质中,使得在计算机可读介质中存储的指令产生包括实现在流程图和/或框图块或块中指定的功能/动作的指令的制品。
计算机程序指令还可以被加载至计算机、其它可编程数据处理设备或其它装置上,以使在计算机、其它可编程设备或其它装置上执行一系列可操作步骤来产生计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供用于实现在流程图和/或框图块或块中指定的功能/动作的过程。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种数据处理的方法,其特征在于,包括:
从磁盘中获取第一数据集合到主存;
控制中央处理器CPU根据第一解压算法对所述第一数据集合进行第一次解压,确定所述第一次解压后的第二数据集合,其中,所述第一解压算法为不支持随机访问的压缩方法对应的解压算法;
从主存中获取所述第二数据集合到图像处理器GPU的显存;
控制所述GPU的至少一个处理核心根据第二解压算法对所述第二数据集合进行第二次解压,其中,所述第二解压算法为随机访问解压算法。
2.如权利要求1所述的方法,其特征在于,所述控制所述CPU根据第一解压算法对所述第一数据集合进行第一次解压,确定所述第一次解压后的第二数据集合之后,该方法还包括:
将所述第二数据集合写入主存的一次压缩数据缓冲区。
3.如权利要求2所述的方法,其特征在于,所述从主存中获取所述第二数据集合到图像处理器GPU的显存,具体包括:
从主存的一次压缩数据缓冲区中获取所述第二数据集合到图像处理器GPU的显存的显存数据缓冲区。
4.如权利要求3所述的方法,其特征在于,所述控制所述GPU的至少一个处理核心根据第二解压算法对所述第二数据集合进行第二次解压之后,该方法包括:
将所述GPU的显存的显存数据缓冲区中的第二数据集合移除。
5.如权利要求1所述的方法,其特征在于,所述控制所述GPU的至少一个处理核心根据第二解压算法对所述第二数据集合进行第二次解压,具体包括:
控制所述GPU的多个核以并行方式对所述第二数据集合进行第二次解压,确定解压后的第一原始数据集合,将所述第一原始数据集合写入所述GPU的显存。
6.如权利要求5所述的方法,其特征在于,所述控制所述GPU的多个核以并行方式对所述第二数据集合进行第二次解压,确定解压后的第一原始数据集合,将所述第一原始数据集合写入所述GPU的显存,具体包括:
控制所述多个处理核从所述GPU的显存中的所述第一原始数据集合中获取数据进行处理。
7.如权利要求1所述的方法,其特征在于,所述控制所述GPU的至少一个处理核心根据第二解压算法对所述第二数据集合进行第二次解压,具体包括:
控制所述GPU的多个处理核对所述第二数据集合进行第二次解压,将解压后的数据写入所述多个处理核分别对应的寄存器中。
8.如权利要求7所述的方法,其特征在于,所述控制所述GPU的多个处理核对所述第二数据集合进行第二次解压,将解压后的数据写入所述多个处理核分别对应的寄存器中之后,该方法还包括:
控制所述多个处理核分别从对应的寄存器中获取解压后的数据进行处理。
9.一种数据压缩的方法,其特征在于,包括:
控制中央处理器CPU将第二原始数据集合按照设定值进行分片,确定分片后的至少一个第一原始数据集合,;
控制所述CPU或图像处理器GPU对所述第一原始数据集合进行第一次压缩,确定第一次压缩后的数据集合;
控制所述CPU对所述第一次压缩后的数据集合进行第二次压缩,确定压缩后的第一数据集合;
将所述压缩后的第一数据集合发送到磁盘。
10.如权利要求9所述的方法,其特征在于,第一次压缩采用随机访问压缩算法进行压缩,第二次压缩采用不可随机访问的压缩算法进行压缩。
11.一种数据处理的装置,其特征在于,包括:
第一获取单元,用于从磁盘中获取第一数据集合到主存;
第一解压单元,用于控制所述CPU根据第一解压算法对所述第一数据集合进行第一次解压,确定所述第一次解压后的第二数据集合,其中,所述第一解压算法为不支持随机访问的压缩方法对应的解压算法;
第二获取单元,用于从主存中获取所述第二数据集合到图像处理器GPU的显存;
第二解压单元,用于控制所述GPU的至少一个处理核心根据第二解压算法对所述第二数据集合进行第二次解压,其中,所述第二解压算法为随机访问解压算法。
12.一种数据压缩的装置,其特征在于,包括:
分片单元,用于控制CPU将第二原始数据集合按照设定值进行分片,确定分片后的至少一个第一原始数据集合;
第一压缩单元,用于控制所述CPU或图像处理器GPU对所述第一原始数据集合进行第一次压缩,确定第一次压缩后的数据集合;
第二压缩单元,用于控制所述CPU对所述第一次压缩后的数据集合进行第二次压缩,确定压缩后的第一数据集合;
发送单元,用于将所述压缩后的第一数据集合发送到磁盘。
13.一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器调用时实现如权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910074154.8A CN109886862B (zh) | 2019-01-25 | 2019-01-25 | 一种数据处理的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910074154.8A CN109886862B (zh) | 2019-01-25 | 2019-01-25 | 一种数据处理的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109886862A true CN109886862A (zh) | 2019-06-14 |
CN109886862B CN109886862B (zh) | 2023-01-17 |
Family
ID=66926964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910074154.8A Active CN109886862B (zh) | 2019-01-25 | 2019-01-25 | 一种数据处理的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109886862B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678200A (zh) * | 2012-08-31 | 2014-03-26 | 三星电子株式会社 | 数据处理装置、处理数据的方法和计算机可读记录介质 |
US20140195499A1 (en) * | 2013-01-10 | 2014-07-10 | International Business Machines Corporation | Real-time classification of data into data compression domains |
CN105120293A (zh) * | 2015-08-26 | 2015-12-02 | 中国航空工业集团公司洛阳电光设备研究所 | 基于cpu和gpu的图像协同解码方法及装置 |
CN108206937A (zh) * | 2016-12-20 | 2018-06-26 | 浙江宇视科技有限公司 | 一种提升智能分析性能的方法和装置 |
-
2019
- 2019-01-25 CN CN201910074154.8A patent/CN109886862B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678200A (zh) * | 2012-08-31 | 2014-03-26 | 三星电子株式会社 | 数据处理装置、处理数据的方法和计算机可读记录介质 |
US20140195499A1 (en) * | 2013-01-10 | 2014-07-10 | International Business Machines Corporation | Real-time classification of data into data compression domains |
CN105120293A (zh) * | 2015-08-26 | 2015-12-02 | 中国航空工业集团公司洛阳电光设备研究所 | 基于cpu和gpu的图像协同解码方法及装置 |
CN108206937A (zh) * | 2016-12-20 | 2018-06-26 | 浙江宇视科技有限公司 | 一种提升智能分析性能的方法和装置 |
Non-Patent Citations (1)
Title |
---|
于卓等: "基于GPU加速的binLBT压缩解压算法", 《北京航空航天大学学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN109886862B (zh) | 2023-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7221242B2 (ja) | ニューラルネットワークデータ処理装置、方法および電子機器 | |
US8111704B2 (en) | Multiple compression techniques for packetized information | |
US9058792B1 (en) | Coalescing to avoid read-modify-write during compressed data operations | |
US20240080041A1 (en) | Parallel decompression of compressed data streams | |
CN108885585A (zh) | 在基于中央处理单元(cpu)的***中使用多个末级高速缓冲存储器(llc)线提供存储器带宽压缩 | |
CN107111461A (zh) | 在基于中央处理单元(cpu)的***中通过经压缩存储器控制器(cmc)使用背靠背读取操作来提供存储器带宽压缩 | |
CN115345318A (zh) | 用于执行多机器学习任务的分布式***及其方法 | |
CN110322904A (zh) | 压缩图像信息读取控制方法及装置 | |
CN115880132A (zh) | 图形处理器、矩阵乘法任务处理方法、装置及存储介质 | |
CN109886862A (zh) | 一种数据处理的方法及装置 | |
CN101751356B (zh) | 用于改进直接存储器存取传送效率的方法、***和装置 | |
CN113497627A (zh) | 一种数据压缩和解压缩方法、装置及*** | |
KR102518057B1 (ko) | 인공지능 프로세서를 위한 캐시 | |
CN108780422A (zh) | 在基于中央处理单元cpu的***中使用压缩指示符ci提示目录来提供存储器带宽压缩 | |
US9299126B2 (en) | Image processing apparatus and a method of storing encoded data blocks generated by such an image processing apparatus | |
CN109886858A (zh) | 一种数据处理的方法及装置 | |
US9495304B2 (en) | Address compression method, address decompression method, compressor, and decompressor | |
EP4355047A2 (en) | Technology for early abort of compression acceleration | |
CN212873459U (zh) | 一种用于数据压缩存储的*** | |
CN108781085A (zh) | 生成具有用于从回看缓冲器预取经解压缩数据的回看预取指令的压缩数据流 | |
CN103294771A (zh) | swf文件中声音数据批量压缩的方法及装置 | |
US20160173895A1 (en) | Method and device for storing and reading data, particularly video data, in storage blocks | |
CN117370026A (zh) | 数据提取方法、装置、加速卡及介质 | |
US8427495B1 (en) | Coalescing to avoid read-modify-write during compressed data operations | |
CN117830073A (zh) | 图形处理器及其数据处理方法和包含其的电子设备 |
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 |