CN111431539B - 一种神经网络数据的压缩方法、装置及计算机可读存储介质 - Google Patents
一种神经网络数据的压缩方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111431539B CN111431539B CN202010143375.9A CN202010143375A CN111431539B CN 111431539 B CN111431539 B CN 111431539B CN 202010143375 A CN202010143375 A CN 202010143375A CN 111431539 B CN111431539 B CN 111431539B
- Authority
- CN
- China
- Prior art keywords
- data
- compressed
- floating point
- data block
- packet
- 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
- 238000007906 compression Methods 0.000 title claims abstract description 85
- 230000006835 compression Effects 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 34
- 230000004913 activation Effects 0.000 claims abstract description 20
- 238000003062 neural network model Methods 0.000 claims abstract description 17
- 238000013144 data compression Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000007781 pre-processing Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
本发明提供了一种神经网络数据的压缩方法、装置及计算机可读存储介质,其中该方法包括:接收待压缩数据,待压缩数据为神经网络模型的任意层的激活输出;根据待压缩数据与预设数据长度确定多个数据块;根据位平面压缩算法对多个数据块进行压缩操作。利用上述方法,通过将待压缩数据转换为多个数据块,并采用位平面压缩算法对数据块进行压缩操作,能够实现较高的压缩率,进而能够节省存储空间、提高访存效率。
Description
技术领域
本发明属于神经网络数据的压缩领域,具体涉及一种神经网络数据的压缩方法、装置及计算机可读存储介质。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
随着神经网络的快速发展,对神经网络模型的识别准确率要求不断地提高,神经网络的规模也不断增加。对存储空间和内存带宽的需求也日益增大,这一方面导致存储成本的升高,另一方面导致神经网络芯片的片内片外访存效率降低,影响了神经网络的数据处理性能。
因此,如何对神经网络数据实现压缩,是提高神经网络运算速度的关键问题。
发明内容
针对上述现有技术难以提高片内片外访存效率的问题。本发明实施例提出了一种神经网络数据的压缩方法、装置及计算机可读存储介质。利用这种方法及装置,能够解决上述问题。
本发明的实施例中提供了以下方案。
第一方面,提供一种神经网络数据的压缩方法,包括:接收待压缩数据,待压缩数据为神经网络模型的任意层的激活输出;根据待压缩数据与预设数据长度确定多个数据块;根据位平面压缩算法对多个数据块进行压缩操作。
在一种可能的实施方式中,待压缩数据由多个浮点值组成,且浮点值的数据格式为BFloat16。
在一种可能的实施方式中,根据待压缩数据与预设数据长度确定多个数据块,还包括:根据预设数据长度对待压缩数据进行分组操作;根据待压缩数据的每个分组中的多个浮点值确定每个分组对应的数据块。
在一种可能的实施方式中,根据待压缩数据与预设数据长度确定每个分组对应的数据块,还包括:将待压缩数据的每个分组中包含的多个浮点值转换为多个无符号整数值或有符号整数值;根据待压缩数据的每个分组中包含的多个无符号整数值或有符号整数值确定每个分组对应的数据块。
在一种可能的实施方式中,根据待压缩数据的每个分组中的多个浮点值确定每个分组对应的数据块,还包括:确定待压缩数据的每个分组中包含的多个浮点值的指数部分和尾数部分,并单独存储多个浮点值的尾数部分;根据待压缩数据的每个分组中包含的多个浮点值的指数部分确定每个分组对应的数据块。
在一种可能的实施方式中,根据待压缩数据与预设数据长度确定多个数据块,还包括:根据预设数据长度分别对待压缩数据的每行浮点值进行分组操作,从而确定每行浮点值对应的至少一个数据块;以及,根据位平面压缩算法对多个数据块进行压缩操作,还包括:根据每行浮点值对应的至少一个数据块并行执行压缩操作。
在一种可能的实施方式中,根据位平面压缩算法对多个数据块进行压缩操作之前,还包括:判断多个数据块中的每一个数据块是否满足预设数据长度;其中,若多个数据块中的指定数据块不满足预设数据长度,则为指定数据块添加不压缩标识,且无需对指定数据块执行压缩操作。
第二方面,提供一种神经网络数据的压缩装置,包括:接收单元,用于接收待压缩数据,待压缩数据为神经网络模型的任意层的激活输出;确定单元,用于根据待压缩数据与预设数据长度确定多个数据块;压缩单元,用于根据位平面压缩算法对多个数据块进行压缩操作。
在一种可能的实施方式中,待压缩数据由多个浮点值组成,且浮点值的数据格式为BFloat16。
在一种可能的实施方式中,确定单元还用于:根据预设数据长度对待压缩数据进行分组操作;根据待压缩数据的每个分组中的多个浮点值确定每个分组对应的数据块。
在一种可能的实施方式中,确定单元还用于:将待压缩数据的每个分组中包含的多个浮点值转换为多个无符号整数值或有符号整数值;根据待压缩数据的每个分组中包含的多个无符号整数值或有符号整数值确定每个分组对应的数据块。
在一种可能的实施方式中,确定单元还用于:确定待压缩数据的每个分组中包含的多个浮点值的指数部分和尾数部分,并单独存储多个浮点值的尾数部分;根据待压缩数据的每个分组中包含的多个浮点值的指数部分确定每个分组对应的数据块。
在一种可能的实施方式中,确定单元还用于:根据预设数据长度分别对待压缩数据的每行浮点值进行分组操作,从而确定每行浮点值对应的至少一个数据块;以及,压缩单元还用于:根据每行浮点值对应的至少一个数据块并行执行压缩操作。
在一种可能的实施方式中,该装置还用于:在根据位平面压缩算法对多个数据块进行压缩操作之前,判断多个数据块中的每一个数据块是否满足预设数据长度;其中,若多个数据块中的指定数据块不满足预设数据长度,则为指定数据块添加不压缩标识,且无需对指定数据块执行压缩操作。
第三方面,提供一种神经网络数据的压缩装置,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:接收待压缩数据,待压缩数据为神经网络模型的任意层的激活输出;根据待压缩数据与预设数据长度确定多个数据块;根据位平面压缩算法对多个数据块进行压缩操作。
第四方面,提供一种计算机可读存储介质,计算机可读存储介质存储有程序,当程序被多核处理器执行时,使得多核处理器执行如第一方面的方法。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:通过采用位平面压缩算法对待压缩数据进行压缩处理,能够实现较高的压缩率,进而能够节省存储空间,提高访存效率,无需增加额外开销就可提升芯片计算能力。
应当理解,上述说明仅是本发明技术方案的概述,以便能够更清楚地了解本发明的技术手段,从而可依照说明书的内容予以实施。为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举例说明本发明的具体实施方式。
附图说明
通过阅读下文的示例性实施例的详细描述,本领域普通技术人员将明白本文所述的优点和益处以及其他优点和益处。附图仅用于示出示例性实施例的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的标号表示相同的部件。在附图中:
图1为示意性的神经网络芯片的结构示意图;
图2为根据本发明一实施例的神经网络数据的压缩方法的流程示意图;
图3为根据本发明一实施例的待压缩数据的示意图;
图4为BFloat16数据格式的示意图;
图5为根据本发明一实施例的第一位平面压缩预处理示意图;
图6为根据本发明一实施例的第二位平面压缩预处理示意图;
图7为根据本发明一实施例的第三位平面压缩预处理示意图;
图8为根据本发明一实施例的神经网络数据的压缩装置的结构示意图;
图9为根据本发明另一实施例的神经网络数据的压缩装置的结构示意图;
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本发明中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在的可能性。
另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
图1是一种示意性的神经网络芯片10的结构示意图。
其中运算单元11可以用于部署已训练的神经网络模型并进行数据处理,神经网络模型包括多个层,在实际的神经网络运算过程中,可以将神经网络模型的各个层的激活输出存储到存储空间12中,并在后续层的运算过程中,如需要使用之前层的激活输出,则可以从该存储空间12中读取并使用。
图2示出了根据本发明实施例的神经网络数据的压缩方法200的方法流程示意图。
如图2所示,该方法200可以包括:
步骤201:接收待压缩数据;
其中,上述待压缩数据可以是神经网络模型的任意层的激活输出。例如,可以将图像数据输入已训练的浮点型神经网络以进行神经网络运算,并获取该神经网络的任意层的激活输出作为该待压缩数据。其中,该已训练的神经网络模型可以是识别网络、分类网络等,本实施例对此不作具体限制。
举例来说,上述激活输出可以是一个包括通道数、行数、行宽等多个维度的高阶张量。如图3所示,为浮点型神经网络模型的任意层的激活输出的特征图(feature map),其尺寸为18(行宽)×18(行数)×3(通道数),其中的每一者均为浮点值,比如BFloat16格式的浮点值。可选地,该待压缩数据也可以具有其他来源或形式,本实施例对此不作具体限制。
在一些可能的实施方式中,待压缩数据由多个浮点值组成,且上述浮点值的数据格式具体可以为16位脑浮点(brain floating point),也称为BFloat16。图4示出了Bfloat16的数据格式,其包括1bit的符号位、8bit的指数部分以及7bit的尾数部分。Bfloat16这一数据格式由谷歌公司发明,其主要思想是提供动态范围与标准IEEE-FP32相同但精度较低的16位浮点格式。这种更低精度的浮点数使可以在内存中存放更多数据,并且提高存访效率,电路实现上也会更加简单。在另外一些实施方式中,浮点值的数据格式也可以是其它格式,比如FP32,FP16等等。
如图2所示,该方法200还可以包括:
步骤202:根据待压缩数据与预设数据长度确定多个数据块;
其中,数据块为位平面压缩算法的最小处理单元,通常可以包含预设数据长度的多个浮点值。预设数据长度通常取值为16,也即数据块通常包含16个浮点值。
在一些可能的实施方式中,步骤202可以进一步包括:根据预设数据长度对待压缩数据进行分组操作;根据待压缩数据的每个分组中的若干个浮点值确定每个分组对应的数据块。其中,上述预设数据长度为分组操作的截断数据长度,常用的预设数据长度为16,也即每16个相邻的浮点值划分为一个分组。
例如,假设预设数据长度取值为16,当对图3中所示出的待压缩数据进行分组操作时,可以根据预设数据长度对激活输出进行整体压缩,可以得到第一分组:D0~D15,第二分组:D16~D31,…,并以此类推。其中若该待压缩数据包含的浮点值的总长度不是16的整数倍,一种解决方案是:可以对最后一个分组补1~15个0值,使其与其他分组的数据长度一致,然而这种解决方案由于存在额外的补0操作会导致降低压缩率;另一种解决方案是:对不满预设数据长度的分组进行不压缩操作。
在一些可能的实施方式中,在上述各种分组操作之后,进一步可以根据待压缩数据的每个分组中的若干个浮点值确定每个分组对应的数据块,具体可以包括:将待压缩数据的每个分组中包含的多个浮点值转换为多个无符号整数值或有符号整数值;接下来,根据待压缩数据的每个分组中包含的多个无符号整数值或有符号整数值确定每个分组对应的数据块。比如,在第一分组D0~D15中,可以将每个如图4所示出的bfloat16值的16个比特当成一个16位的无符号整数值,得到对应于第一分组的16个16位无符号整数值,并根据对应于第一分组的16个16位无符号整数值组成对应于第一分组的数据块。通过上述方案,使得BFloat16数据能够在后续的步骤中进行位平面压缩操作。
在一些可能的实施方式中,根据待压缩数据的每个分组中的若干个浮点值确定每个分组对应的数据块,还可以包括:确定待压缩数据的每个分组中包含的多个浮点值的指数部分和尾数部分,并单独存储多个浮点值的尾数部分;根据待压缩数据的每个分组中包含的多个浮点值的指数部分确定每个分组对应的数据块。比如,在第一分组D0~D15中,可以将每个如图4所示出的bfloat16值的指数部分拆分出来,形成16个8位的无符号整数值,并根据第一分组中的16个8位无符号整数值组成对应于第一分组的数据块。其中,由于在神经网络的同一层的激活输出中,数据的差异主要体现在尾数部分上,指数部分的变化相对缓慢,因此本实施例可以将BFloat16浮点值的指数部分的8个bit单独拆分出来并能够在后续的步骤中进行位平面压缩操作,且保持尾数部分和符号位不变,实现更为简单。
如图2所示,该方法200还包括:
步骤203:根据位平面压缩算法对多个数据块进行压缩操作。
其中,位平面压缩(Bit Plane Compression,简称BPC)算法至少包括位平面压缩预处理和位平面压缩编码。
其中,位平面压缩预处理具体可以包括顺序执行的第一位平面压缩预处理、第二位平面压缩预处理和第三位平面压缩预处理,用于增加数据的可压缩性。图5~图7分别示出了上述三种位平面压缩预处理的数据处理过程,接下来结合图5~图7对步骤203进行详细阐述:假设由第一分组D0~D15而确定的数据块包含16个16位无符号整数值(data0~data15),可以理解,本实施例所示出方法同样适用于其他数据长度和数据位宽。如图5所示,第一位平面压缩预处理包括:选取数据块的第一个数据data0作为基底base,并利用公式:deltan=datan-datan-1使剩下的数据依次与相邻数做减法,得到(delta1,...,delta15),其中n为1~15之间的正整数。为了保证不溢出,两个16bit数据相减得到17bit的减法结果,进而可以得到16bit的base和15个17bit的减法结果(delta1,...,delta15)。如图6所示,第二位平面压缩预处理包括:将(delta1,...,delta15)看做一个17bit*15的数据矩阵,对该数据矩阵做转置操作,可以得到一个15bit*17的新数据块,并依次将这17个15bit数据定义为(DPB0,...,DPB16),由此可以得到16bit的base和17个15bit的DBP数据。如图7所示,第三位平面压缩预处理包括:将得到的DBP数据依次与相邻DBP做异或操作,得到DBX数据,即DPB0与DPB1异或得到DBX0,……,DPB15与DPB16异或得到DPX15,因为DPB16是最后一个数据,没有相邻数据与其作异或,所以令DBX16=DPB16,经过此步运算后,得到16bit的base和17个15bit的DBX数据(DBX0,...,DBX15,DBP16),至此,完成对数据块1:(data0,...,data15)的位平面压缩预处理。接下来,可以位平面压缩编码规则对上述位平面压缩预处理后的数据块1执行位平面压缩编码。其中,对于第一列base数据,可以直接添加前缀编码并输出,本实施例中所采用的前缀规则为(0:3’b000;数据位宽为4bit:3’b001;数据位宽为8bit:3’b010;数据位宽为16bit:3’b011;数据位宽为32bit:11’b1)。由此,实现对待压缩数据中第一分组的压缩操作,位平面压缩编码规则是一个串行的编码过程,可以采用预设压缩顺序依次压缩待压缩数据中的全部分组,比如可以逐行逐通道地对全部数据进行压缩。
在一些可能的实施方式中,还可以根据预设数据长度分别对待压缩数据的每行浮点值进行分组操作,从而确定每行浮点值对应的至少一个数据块;接下来,根据待压缩数据的每行浮点值对应的至少一个数据块执行并行的压缩操作。采用并行编码处理可以得到更高的处理速度。
例如,在神经网络的硬件实现中,为了提高压缩速度,可以对图3中所示出的待压缩数据的多个行进行并行的压缩操作,其中假设预设数据长度为16,可以得到第一行浮点值的第一分组:D0~D15,第二分组:D16~D17;第二行浮点值的第一分组:D18~D33,第二分组:D34~D35;…,并依此类推。其中每行浮点值包含的浮点值长度不是16的整数倍,每个第二分组的数据长度不足16,针对这种情况,一种解决方案是可以对每个第二分组补14个0值,进而可以使每个第二分组与第一分组的数据长度相同,然而这种解决方案由于存在额外的补0操作会导致降低压缩率。另一种解决方案是对上述不满预设数据长度的第二分组所确定的数据块进行不压缩操作。
在一些可能的实施方式中,在步骤203之前,方法200还可以包括:判断多个数据块中的每一个数据块是否满足预设数据长度;其中,若多个数据块中的指定数据块不满足预设数据长度,则为指定数据块添加不压缩标识,且无需对指定数据块执行压缩操作。其中,上述不压缩标识可以是预设的前缀编码,例如,对于数据长度小于16的数据块,无需进行压缩操作,在数据块前添加前缀后编码输出。基于此,在数据解码时,如判断数据前缀是该不压缩标识,后面的数据直接原样输出即可。
基于上述实施例的各个方面,能够对待压缩数据进行压缩处理并实现较高的压缩率,进而能够节省存储空间,提高访存效率,无需增加额外开销就可提升芯片计算能力。
基于相同或类似的技术构思,如图8所示,本发明实施例还提供一种神经网络数据的压缩装置800,包括:
接收单元801,用于接收待压缩数据,所述待压缩数据为神经网络模型的任意层的激活输出;
确定单元802,用于根据所述待压缩数据与预设数据长度确定多个数据块;
压缩单元803,用于根据位平面压缩算法对所述多个数据块进行压缩操作。
在一种可能的实施方式中,所述待压缩数据由多个浮点值组成,且所述浮点值的数据格式为BFloat16。
在一种可能的实施方式中,所述确定单元802还用于:根据所述预设数据长度对所述待压缩数据进行分组操作;根据所述待压缩数据的每个分组中的多个浮点值确定每个分组对应的数据块。
在一种可能的实施方式中,所述确定单元802还用于:将所述待压缩数据的每个分组中包含的多个浮点值转换为多个无符号整数值或有符号整数值;根据所述待压缩数据的每个分组中包含的多个无符号整数值或有符号整数值确定每个分组对应的数据块。
在一种可能的实施方式中,所述确定单元802还用于:确定所述待压缩数据的每个分组中包含的多个浮点值的指数部分和尾数部分,并单独存储所述多个浮点值的尾数部分;根据所述待压缩数据的每个分组中包含的多个浮点值的指数部分确定每个分组对应的数据块。
在一种可能的实施方式中,所述确定单元802还用于:根据所述预设数据长度分别对所述待压缩数据的每行浮点值进行分组操作,从而确定所述每行浮点值对应的至少一个数据块;以及,所述压缩单元还用于:根据所述每行浮点值对应的至少一个数据块并行执行所述压缩操作。
在一种可能的实施方式中,该装置还可以用于:在根据位平面压缩算法对所述多个数据块进行压缩操作之前,判断所述多个数据块中的每一个数据块是否满足所述预设数据长度;其中,若所述多个数据块中的指定数据块不满足所述预设数据长度,则为所述指定数据块添加不压缩标识,且无需对所述指定数据块执行所述压缩操作。
通过上述处理装置,能实现较高的数据压缩率,显著节省神经网络数据的传输带宽与存储空间,无需增加额外开销就可提升处理装置的计算能力。
图9为根据本申请实施例的一种神经网络数据的压缩装置的示意图,用于执行如图2所示出的神经网络数据的压缩方法,该装置包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:接收待压缩数据,所述待压缩数据为神经网络模型的任意层的激活输出;根据所述待压缩数据与预设数据长度确定多个数据块;根据位平面压缩算法对所述多个数据块进行压缩操作。
本申请一实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有程序,当程序被多核处理器执行时,使得该多核处理器执行:接收待压缩数据,所述待压缩数据为神经网络模型的任意层的激活输出;根据所述待压缩数据与预设数据长度确定多个数据块;根据位平面压缩算法对所述多个数据块进行压缩操作。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以其描述进行了简化,相关之处可参见方法实施例的部分说明即可。
本申请实施例提供的装置和计算机可读存储介质与方法是一一对应的,因此,装置、设备和计算机可读存储介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述装置、设备和计算机可读存储介质的有益技术效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (12)
1.一种神经网络数据的压缩方法,其特征在于,包括:
接收待压缩数据,所述待压缩数据为神经网络模型的任意层的激活输出,所述待压缩数据由多个浮点值组成;
基于预设数据长度对所述待压缩数据进行分组;
存储每个分组中包含的浮点值的尾数部分,并根据每个分组中包含的浮点值的指数部分确定每个分组对应的数据块;
根据位平面压缩算法对每个分组对应的数据块进行压缩操作。
2.根据权利要求1所述的方法,其特征在于,所述浮点值的数据格式为BFloat16。
3.根据权利要求1所述的方法,其特征在于,还包括:
将所述待压缩数据的每个分组中包含的多个浮点值转换为多个无符号整数值或有符号整数值;
根据所述待压缩数据的每个分组中包含的多个无符号整数值或有符号整数值确定每个分组对应的数据块。
4.根据权利要求1所述的方法,其特征在于,还包括:
根据所述预设数据长度分别对所述待压缩数据的每行浮点值进行分组操作,从而确定所述每行浮点值对应的至少一个数据块;以及,
根据所述每行浮点值对应的至少一个数据块并行执行所述压缩操作。
5.根据权利要求1-4中任一项所述的方法,其特征在于,根据位平面压缩算法对每个分组对应的数据块进行压缩操作之前,还包括:
判断每个分组对应的数据块是否满足所述预设数据长度;
其中,若指定数据块不满足所述预设数据长度,则为所述指定数据块添加不压缩标识,且无需对所述指定数据块执行所述压缩操作。
6.一种神经网络数据的压缩装置,其特征在于,包括:
接收单元,用于接收待压缩数据,所述待压缩数据为神经网络模型的任意层的激活输出,所述待压缩数据由多个浮点值组成;
确定单元,用于基于预设数据长度对所述待压缩数据进行分组;存储每个分组中包含的浮点值的尾数部分,并根据每个分组中包含的浮点值的指数部分确定每个分组对应的数据块;
压缩单元,用于根据位平面压缩算法对每个分组对应的数据块进行压缩操作。
7.根据权利要求6所述的装置,其特征在于,所述浮点值的数据格式为BFloat16。
8.根据权利要求6所述的装置,其特征在于,所述确定单元还用于:
将所述待压缩数据的每个分组中包含的多个浮点值转换为多个无符号整数值或有符号整数值;
根据所述待压缩数据的每个分组中包含的多个无符号整数值或有符号整数值确定每个分组对应的数据块。
9.根据权利要求6所述的装置,其特征在于,
所述确定单元还用于:根据所述预设数据长度分别对所述待压缩数据的每行浮点值进行分组操作,从而确定所述每行浮点值对应的至少一个数据块;以及,
所述压缩单元还用于:根据所述每行浮点值对应的至少一个数据块并行执行所述压缩操作。
10.根据权利要求6-9中任一项所述的装置,其特征在于,还用于:
在根据位平面压缩算法对每个分组对应的数据块进行压缩操作之前,判断每个分组对应的数据块是否满足所述预设数据长度;
其中,若指定数据块不满足所述预设数据长度,则为所述指定数据块添加不压缩标识,且无需对所述指定数据块执行所述压缩操作。
11.一种神经网络数据的压缩装置,其特征在于,包括:
至少一个处理器;以及,
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:
接收待压缩数据,所述待压缩数据为神经网络模型的任意层的激活输出,所述待压缩数据由多个浮点值组成;
基于预设数据长度对所述待压缩数据进行分组;
存储每个分组中包含的浮点值的尾数部分,并根据每个分组中包含的浮点值的指数部分确定每个分组对应的数据块;
根据位平面压缩算法对每个分组对应的数据块进行压缩操作。
12.一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被多核处理器执行时,使得所述多核处理器执行如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010143375.9A CN111431539B (zh) | 2020-03-04 | 2020-03-04 | 一种神经网络数据的压缩方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010143375.9A CN111431539B (zh) | 2020-03-04 | 2020-03-04 | 一种神经网络数据的压缩方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111431539A CN111431539A (zh) | 2020-07-17 |
CN111431539B true CN111431539B (zh) | 2023-12-08 |
Family
ID=71551976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010143375.9A Active CN111431539B (zh) | 2020-03-04 | 2020-03-04 | 一种神经网络数据的压缩方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111431539B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114692816B (zh) * | 2020-12-31 | 2023-08-25 | 华为技术有限公司 | 神经网络模型的处理方法和设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002163180A (ja) * | 2000-11-27 | 2002-06-07 | Nissan Motor Co Ltd | データ収集装置およびデータ転送方法 |
US8836548B1 (en) * | 2013-12-05 | 2014-09-16 | Emc Corporation | Method and system for data compression at a storage system |
CN105024702A (zh) * | 2015-07-08 | 2015-11-04 | 西安理工大学 | 一种面向科学计算的浮点型数据无损压缩方法 |
US9660666B1 (en) * | 2014-12-22 | 2017-05-23 | EMC IP Holding Company LLC | Content-aware lossless compression and decompression of floating point data |
US9853660B1 (en) * | 2017-03-23 | 2017-12-26 | Intel Corporation | Techniques for parallel data compression |
CN107590533A (zh) * | 2017-08-29 | 2018-01-16 | 中国科学院计算技术研究所 | 一种用于深度神经网络的压缩装置 |
CN108764454A (zh) * | 2018-04-28 | 2018-11-06 | 中国科学院计算技术研究所 | 基于小波变换压缩和/或解压缩的神经网络处理方法 |
GB201819541D0 (en) * | 2018-11-30 | 2019-01-16 | Imagination Tech Ltd | Data compression and storage |
CN109739444A (zh) * | 2019-01-08 | 2019-05-10 | 郑州云海信息技术有限公司 | 存储系统压缩数据的方法、装置、设备及可读存储介质 |
CN110520909A (zh) * | 2017-04-17 | 2019-11-29 | 微软技术许可有限责任公司 | 使用激活数据的压缩和解压缩来减少存储器带宽利用率的神经网络处理器 |
CN110557124A (zh) * | 2018-05-30 | 2019-12-10 | 华为技术有限公司 | 一种数据压缩方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6577254B2 (en) * | 2001-11-14 | 2003-06-10 | Hewlett-Packard Development Company, L.P. | Data compression/decompression system |
US8301803B2 (en) * | 2009-10-23 | 2012-10-30 | Samplify Systems, Inc. | Block floating point compression of signal data |
WO2013003479A2 (en) * | 2011-06-30 | 2013-01-03 | Samplify Systems, Inc. | Compression of floating-point data |
US20170054449A1 (en) * | 2015-08-19 | 2017-02-23 | Texas Instruments Incorporated | Method and System for Compression of Radar Signals |
US9748972B2 (en) * | 2015-09-14 | 2017-08-29 | Leco Corporation | Lossless data compression |
US10715175B2 (en) * | 2017-08-28 | 2020-07-14 | Tesla, Inc. | Systems and methods for encoding and decoding |
US20190220739A1 (en) * | 2018-01-16 | 2019-07-18 | Electronics And Telecommunications Research Institute | Neural network computing device and operation method thereof |
US20190392300A1 (en) * | 2018-06-20 | 2019-12-26 | NEC Laboratories Europe GmbH | Systems and methods for data compression in neural networks |
-
2020
- 2020-03-04 CN CN202010143375.9A patent/CN111431539B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002163180A (ja) * | 2000-11-27 | 2002-06-07 | Nissan Motor Co Ltd | データ収集装置およびデータ転送方法 |
US8836548B1 (en) * | 2013-12-05 | 2014-09-16 | Emc Corporation | Method and system for data compression at a storage system |
US9660666B1 (en) * | 2014-12-22 | 2017-05-23 | EMC IP Holding Company LLC | Content-aware lossless compression and decompression of floating point data |
CN105024702A (zh) * | 2015-07-08 | 2015-11-04 | 西安理工大学 | 一种面向科学计算的浮点型数据无损压缩方法 |
US9853660B1 (en) * | 2017-03-23 | 2017-12-26 | Intel Corporation | Techniques for parallel data compression |
CN110520909A (zh) * | 2017-04-17 | 2019-11-29 | 微软技术许可有限责任公司 | 使用激活数据的压缩和解压缩来减少存储器带宽利用率的神经网络处理器 |
CN107590533A (zh) * | 2017-08-29 | 2018-01-16 | 中国科学院计算技术研究所 | 一种用于深度神经网络的压缩装置 |
CN108764454A (zh) * | 2018-04-28 | 2018-11-06 | 中国科学院计算技术研究所 | 基于小波变换压缩和/或解压缩的神经网络处理方法 |
CN110557124A (zh) * | 2018-05-30 | 2019-12-10 | 华为技术有限公司 | 一种数据压缩方法及装置 |
GB201819541D0 (en) * | 2018-11-30 | 2019-01-16 | Imagination Tech Ltd | Data compression and storage |
CN109739444A (zh) * | 2019-01-08 | 2019-05-10 | 郑州云海信息技术有限公司 | 存储系统压缩数据的方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111431539A (zh) | 2020-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10977833B2 (en) | Compressing m-bit data using spatial decorrelation and entropy encoding on n-bit data | |
KR101790463B1 (ko) | 오디오/비디오 샘플 벡터의 피라미드 벡터 양자화 인덱싱 및 디인덱싱을 위한 방법 및 장치 | |
US7770091B2 (en) | Data compression for use in communication systems | |
US7737869B2 (en) | Symbol based data compression | |
CN110943744B (zh) | 数据压缩、解压缩以及基于数据压缩和解压缩的处理方法及装置 | |
US7511638B2 (en) | Data compression for communication between two or more components in a system | |
CZ300954B6 (cs) | Zarízení a zpusob pro kódování digitálního informacního signálu, zarízení pro dekódování a nosic záznamu | |
CN116594572B (zh) | 浮点数流式数据压缩方法、装置、计算机设备及介质 | |
CN111431539B (zh) | 一种神经网络数据的压缩方法、装置及计算机可读存储介质 | |
KR20030071327A (ko) | 개선된 허프만 디코딩 방법 및 장치 | |
CN114640354A (zh) | 数据压缩方法、装置、电子设备及计算机可读存储介质 | |
CN111061722B (zh) | 一种数据压缩、数据解压缩方法、装置及设备 | |
US7205915B2 (en) | Method of decoding variable length prefix codes | |
CN115765754A (zh) | 一种数据编码方法及一种编码数据比较方法 | |
US10931303B1 (en) | Data processing system | |
CN110175185B (zh) | 一种基于时序数据分布特征的自适应无损压缩方法 | |
US9348535B1 (en) | Compression format designed for a very fast decompressor | |
CN115175248B (zh) | 用于通信系统的定点数据压缩、解压方法、装置及设备 | |
CN114610266A (zh) | 补偿数据处理方法、装置、设备及介质 | |
CN116996077A (zh) | 面向时序浮点数据的有损压缩方法、解压方法及设备 | |
US20210303975A1 (en) | Compression and decompression of weight values | |
TWI384377B (zh) | 資料編碼及解碼方法 | |
CN117917857A (zh) | 非迭代熵编码 | |
KR100475246B1 (ko) | 고정 소수점 코드 변환을 이용한 엠펙1 오디오 화일의디코딩 성능 향상 방법 및 이를 위한 기록 매체 | |
CN113886491A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201202 Address after: Room 206, 2 / F, building C, phase I, Zhongguancun Software Park, No. 8, Dongbei Wangxi Road, Haidian District, Beijing 100094 Applicant after: Canaan Bright Sight Co.,Ltd. Address before: 310000, room 12, building 4, building nine, No. nine, 1203 Ring Road, Hangzhou, Zhejiang, Jianggan District Applicant before: Hangzhou Canaan Creative Information Technology Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |