CN117099109A - 用于深度神经网络权重的压缩技术 - Google Patents
用于深度神经网络权重的压缩技术 Download PDFInfo
- Publication number
- CN117099109A CN117099109A CN202280024671.4A CN202280024671A CN117099109A CN 117099109 A CN117099109 A CN 117099109A CN 202280024671 A CN202280024671 A CN 202280024671A CN 117099109 A CN117099109 A CN 117099109A
- Authority
- CN
- China
- Prior art keywords
- frame
- weight
- compressed
- bits
- weight values
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 134
- 238000007906 compression Methods 0.000 title claims description 269
- 230000006835 compression Effects 0.000 title claims description 269
- 238000013528 artificial neural network Methods 0.000 title description 23
- 238000010606 normalization Methods 0.000 claims abstract description 160
- 238000012545 processing Methods 0.000 claims description 143
- 230000006837 decompression Effects 0.000 claims description 79
- 239000000945 filler Substances 0.000 claims description 79
- 230000004044 response Effects 0.000 claims description 45
- 230000015654 memory Effects 0.000 description 126
- 238000013473 artificial intelligence Methods 0.000 description 85
- 238000010845 search algorithm Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 13
- 238000013144 data compression Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 8
- 230000001413 cellular effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 230000004913 activation Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000001747 exhibiting effect Effects 0.000 description 2
- 238000009432 framing Methods 0.000 description 2
- 239000000463 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
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 235000017060 Arachis glabrata Nutrition 0.000 description 1
- 241001553178 Arachis glabrata Species 0.000 description 1
- 235000010777 Arachis hypogaea Nutrition 0.000 description 1
- 235000018262 Arachis monticola Nutrition 0.000 description 1
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 235000020232 peanut Nutrition 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- 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/70—Type of the data to be coded, other than image and sound
- H03M7/702—Software
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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/04—Architecture, e.g. interconnection topology
-
- 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/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
各个实施例包括用于对权重数据集进行压缩和解压缩的方法和设备。一些实施例可包括通过以下操作来对权重数据进行压缩:接收表示权重值的二进制数的权重数据集;生成帧有效载荷,该帧有效载荷包括该权重数据集中的第一权重值子集的经压缩第一帧;以及生成具有该帧有效载荷的经压缩权重数据块。一些实施例可包括通过以下操作来对权重数据进行解压缩:检索经压缩权重数据块,其中该经压缩权重数据块包括与帧有效载荷相关联的帧报头,其中该帧报头包括归一化因子指示符,并且其中该帧有效载荷包括经压缩权重值;以及生成第一经解压缩帧,该第一经解压缩帧包括该帧有效载荷的经压缩权重值的经解压缩权重值。
Description
相关申请
本申请要求于2021年4月1日提交的美国非临时申请No.17/220,620的优先权权益;其全部内容通过援引纳入于此。
背景
在深度神经网络处理中,经量化神经网络模型可以包含大量权重。当权重由处理器/硬件用于实现深度神经网络处理时,大量的权重需要大量的存储器、系统带宽和电力。
概述
各个所公开的方面可包括用于对神经网络的权重数据进行压缩的装置和方法。各个方面可包括:接收表示权重值的二进制数的权重数据集;生成第一帧有效载荷,该第一帧有效载荷包括该权重数据集中的第一权重值子集的经压缩第一帧;生成与该第一帧有效载荷相关联的第一帧报头,其中该第一帧报头包括用于该经压缩第一帧的归一化因子指示符;以及生成具有该第一帧有效载荷的经压缩权重数据块。
在一些方面,生成该第一帧有效载荷可包括:通过根据该权重数据集中的该第一权重值子集的第一帧的归一化因子从该第一权重值子集中的每个权重值移除填充比特来压缩该第一帧以生成该经压缩第一帧。
一些方面可进一步包括:从该第一帧的该第一权重值子集中的每个权重值移除偏移值以产生该第一帧的经修改权重值,其中压缩该第一权重值子集的该第一帧可包括:根据该经压缩第一帧的该归一化因子从该第一帧中的该经修改权重值移除该填充比特以生成该第一帧。
一些方面可进一步包括:生成用于该经压缩权重数据块的全局报头,其中该全局报头包括该偏移值,并且其中生成与该第一帧有效载荷相关联的该第一帧报头可包括:生成该第一帧报头,其中该第一帧报头包括偏移指示符,该偏移指示符被配置成指示该偏移值是否从该第一帧的该第一权重值子集移除。
在一些方面,填充比特可以是符号扩展比特。
一些方面可进一步包括:基于选择性搜索准则,基于权重值中能够从该权重值移除以进行无损压缩的填充比特模式来标识该权重数据集中的该第一权重值子集的第一帧;为该第一帧设置第一归一化因子,该第一归一化因子表示要从该第一权重值子集中的每个权重值移除的填充比特数目;基于选择性搜索准则,基于权重值中能够从该权重值移除以进行无损压缩的填充比特模式来标识该权重数据集中的第二权重值子集的第二帧;确定是否该第二帧的所有比特都是零值;以及响应于确定该第二帧的所有比特都是零值:为该第二帧设置第二归一化因子以表示该第二帧的该第二权重值子集的所有比特;通过根据该第二帧的该第二归一化因子从该第二权重值子集移除所有比特来压缩该第二权重值子集的该第二帧;以及生成不与帧有效载荷相关联的第二帧报头。
一些方面可进一步包括:基于选择性搜索准则,基于权重值中能够从该权重值移除以进行无损压缩的填充比特模式来标识该权重数据集中的该第一权重值子集的第一帧;标识该第一帧的该第一权重值子集中具有最高数目的有效比特的权重值;以及为该第一帧设置归一化因子,该归一化因子表示要基于该最高数目的有效比特从该第一权重值子集中的每个权重值移除的填充比特数目。
一些方面可进一步包括:确定该第一帧有效载荷的第一压缩度量是否超过压缩度量阈值,其中生成具有该第一帧有效载荷的该经压缩权重数据块可包括:响应于确定该第一帧有效载荷的该第一压缩度量超过该压缩度量阈值而生成具有该第一帧有效载荷的该经压缩权重数据块。
一些方面可进一步包括:将该压缩度量阈值设置为该第一帧有效载荷的该第一压缩度量;生成第二帧有效载荷,该第二帧有效载荷包括该权重数据集中的第二权重值子集的经压缩第二帧;确定该第二帧有效载荷的第二压缩度量是否超过该压缩度量阈值;响应于确定该第二压缩度量超过该压缩度量阈值而将该压缩度量阈值设置为该第二帧有效载荷的该第二压缩度量;生成第三帧有效载荷,该第三帧有效载荷包括该权重数据集中的第三权重值子集的经压缩第三帧;以及确定该第三帧有效载荷的第三压缩度量是否超过该压缩度量阈值,其中响应于确定该第一帧有效载荷的该第一压缩度量超过该压缩度量阈值而生成具有该第一帧有效载荷的该经压缩权重数据块可包括:响应于确定该第三帧有效载荷的该第三压缩度量未超过该压缩度量阈值而生成具有该第二帧有效载荷的该经压缩权重数据块。
各个方面可包括用于对神经网络的权重数据进行解压缩的装置和方法。各个方面可包括:检索经压缩权重数据块,其中该经压缩权重数据块包括与第一帧有效载荷相关联的第一帧报头,其中该第一帧报头包括第一归一化因子指示符,并且其中该第一帧有效载荷包括经压缩权重值;以及生成第一经解压缩帧,该第一经解压缩帧包括该第一帧有效载荷的该经压缩权重值的经解压缩权重值。
在一些方面,该经压缩权重数据块包括具有偏移值的全局报头,并且该第一帧报头包括偏移指示符,该偏移指示符被配置成指示是否要针对从该第一帧有效载荷生成的每个经解压缩权重值包括该偏移值。一些方面可进一步包括:解析该全局报头以获得该偏移值;解析该第一帧报头以获得该偏移指示符;以及确定该偏移指示符是否被设置在该第一帧报头中,其中生成该第一经解压缩帧可包括:响应于确定该偏移指示符被设置在该第一帧报头中而在从与该第一帧报头相关联的该第一帧有效载荷生成的每个经解压缩权重值中包括该偏移值。
在一些方面,该经压缩权重数据块包括不与帧有效载荷相关联的、包含第二归一化因子指示符的第二帧报头。一些方面可进一步包括:根据该第二帧报头的该第二归一化因子指示符来生成第二经解压缩帧,该第二经解压缩帧包括具有全零值比特的经解压缩权重值。
在一些方面,该经压缩权重数据块包括与第二帧有效载荷相关联的第二帧报头,其中该第二帧报头包括第二归一化因子指示符,并且其中该第二帧有效载荷包括经压缩权重值。一些方面进一步包括:通过根据该第二帧报头的该第二归一化因子指示符将填充比特添加到该第二帧有效载荷的该经压缩权重值来生成第二经解压缩帧,该第二经解压缩帧包括该第二帧有效载荷的该经压缩权重值的经解压缩权重值。
在一些方面,生成该第一经解压缩帧可包括:根据该第一帧报头的该第一归一化因子指示符将填充比特添加到该第一帧有效载荷的该经压缩权重值以生成经解压缩权重值,其中用于该第一帧有效载荷的该经压缩权重值中的第一经压缩权重值的填充比特的值是根据该第一经压缩权重值的最高有效比特来确定的。
在一些方面,填充比特可以是符号扩展比特。
在一些方面,该第一帧报头包括帧长度,该帧长度被配置成指示该第一帧有效载荷的该经压缩权重值的数目。
在一些方面,该经压缩权重数据块包括不与帧有效载荷相关联的、包含帧长度的第二帧报头,该帧长度被配置成指示包括该经压缩权重值的数目的第二经解压缩帧。一些方面可进一步包括:生成具有与该第二帧报头的该帧长度相对应的全零值比特的数个连贯经解压缩权重值。
进一步方面包括:一种计算设备,其具有被配置成执行上述任何方法的操作的压缩处理设备或解压缩处理设备。
附图简述
纳入于本文且构成本说明书一部分的附图解说了各个实施例中的示例实施例,并与以上给出的一般描述和下面给出的详细描述一起用来解释权利要求的特征。
图1是解说适于实现各个实施例的示例计算设备的组件框图。
图2是解说适于实现各个实施例的示例片上系统(SoC)的组件框图。
图3A和3B是解说适于实现各个实施例的对用于压缩的十进制权重值的二进制表示的组帧的示例的数据图。
图4是解说适于实现各个实施例的经压缩权重数据块的示例的框图。
图5是解说适于实现各个实施例的经压缩权重数据块的全局报头的示例的框图。
图6是解说适于实现各个实施例的经压缩权重数据块的帧报头的示例的框图。
图7是解说适于实现各个实施例的对经压缩权重数据进行解压缩的示例的数据和组件框图。
图8是解说根据实施例的用于压缩权重数据的方法的过程流图。
图9是解说根据实施例的用于设置权重数据压缩参数的方法的过程流图。
图10是解说根据实施例的用于压缩权重数据的方法的过程流图。
图11是解说根据实施例的用于对经压缩权重数据进行解压缩的方法的过程流图。
图12是解说根据实施例的用于压缩权重数据的方法的过程流图。
图13是解说根据实施例的用于对经压缩权重数据进行解压缩的方法的过程流图。
图14是解说根据各个实施例的适于实现权重数据压缩和/或解压缩系统的示例移动计算设备的组件框图。
图15是解说根据各个实施例的适于实现权重数据压缩和/或解压缩系统的示例移动计算设备的组件框图。
图16是解说根据各个实施例的适于实现权重数据压缩和/或解压缩系统的示例服务器的组件框图。
详细描述
将参照附图来详细地描述各个实施例。在可能之处,相同附图标记将贯穿附图用于指代相同或类似部分。对特定示例和实现作出的引述用于解说性目的,而无意限定权利要求的范围。
各个实施例包括用于对深度神经网络的权重数据进行压缩和解压缩的方法和实现此类方法的计算设备。一些实施例可包括用于深度神经网络的权重数据的无损压缩技术。在一些实施例中,压缩可基于对呈现出重复数据模式的权重数据帧的标识并移除供压缩的重复数据。在一些实施例中,与权重数据如何被压缩相关的全局和/或帧报头信息可提供用于对经压缩权重数据进行解压缩的信息。
深度神经网络处理通常需要大量数据。该数据可包括大量权重数据,这些权重数据通过用于实现深度神经网络处理的处理器/硬件给计算机系统带来高存储器、系统带宽和电力成本的负担。本文所描述的各实施例给出无损权重数据压缩和极低成本解压缩的方法和用于实现这些方法的设备,这可减少使用大量权重数据实现深度神经网络处理的存储器、系统带宽和电力成本。
在一些实施例中,对权重数据的压缩可离线完成并且经压缩权重数据可被存储在存储器中以用于实现深度神经网络处理。对权重数据的离线压缩可允许昂贵且耗时的搜索权重数据的充分压缩,如通过经压缩权重数据的压缩度量与压缩度量阈值相比来测量的。在一些实施例中,压缩度量阈值可被配置成在用于搜索供压缩的权重数据的组合子集的参数内标识权重数据的最佳压缩。在一些实施例中,权重数据中的稀疏性(其中毗连权重值为零值)可按使得对于毗连零值可能不会存储权重数据的方式进行压缩。
并非所有权重数据(诸如权重值中的填充数据)都可用于实现深度神经网络处理。在一些实施例中,权重数据的压缩可通过标识呈现出填充数据模式的权重数据帧来实现,该填充数据模式可从权重数据移除而不改变帧的权重值。移除填充数据可减少帧的数据量以及更广泛的权重数据集的数据量。压缩参数(诸如被配置成指示从帧中的每个权重值移除的填充数据量的归一化因子)可与经压缩权重数据相关联地存储以用于对经压缩权重数据进行解压缩。从帧移除填充数据以压缩帧的权重数据可通过将权重数据的剩余比特移位以覆写被移除的填充数据来实现。在移除填充比特之后剩余的权重数据的比特数目在本文中可被称为经压缩权重位宽。
在一些实施例中,低成本解压缩可通过使用按位运算对经压缩权重数据进行解归一化(denormalize)来完成。归一化因子可向解压缩计算设备指示要使每个经压缩权重值移位的比特数目以将填充比特重新引入经压缩权重数据。在一些实施例中,可使用按位算数运算来生成重新引入的填充数据相比于权重值的原始填充数据的对应值。在一些实施例中,填充比特可以是符号扩展比特。
术语“计算设备”和“移动计算设备”在本文可互换地使用以指代以下各项中的任一个或全部:蜂窝电话、智能电话、个人或移动多媒体播放器、个人数据助理(PDA)、膝上型计算机、平板计算机、可转换膝上型/平板计算机(2合1计算机)、智能本、超级本、上网本、掌上计算机、无线电子邮件接收器、启用因特网的多媒体蜂窝电话、移动游戏控制台、无线游戏控制器、以及包括存储器和可编程处理器的类似的个人电子设备。术语“计算设备”可进一步指代驻定的计算设备,包括个人计算机、台式计算机、一体化计算机、工作站、超级计算机、大型计算机、嵌入式计算机(诸如嵌入在交通工具和其他较大系统中)、服务器、多媒体计算机和游戏控制台。
图1解说了包括适于与各个实施例联用的计算设备100的系统。计算设备100可以包括SoC 102,该SoC 102具有处理器104、存储器106、通信接口108、存储器接口110、外围设备接口120、以及人工智能(AI)处理器124。计算设备100可进一步包括通信组件112(诸如有线或无线调制解调器)、存储器114、用于建立无线通信链路的天线116、和/或外围设备122。处理器104和AI处理器124可包括各种处理设备(例如,数个处理器核)中的任何一者。
术语“片上系统”或即“SoC”在本文中用于指代一组互连的电子电路,通常但非排他性地包括处理设备、存储器和通信接口。处理设备可包括各种各样的不同类型的处理器104和/或处理器核,诸如通用处理器、中央处理单元(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)、加速处理单元(APU)、安全处理单元(SPU)、计算设备的特定组件的子系统处理器(诸如相机子系统的图像处理器或显示器的显示处理器)、辅助处理器、单核处理器、多核处理器、控制器和/或微控制器。处理设备可进一步实施其他硬件和硬件组合,诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、其他可编程逻辑器件、分立的门逻辑、晶体管逻辑、性能监视硬件、看门狗硬件、和/或时间参考。集成电路可被配置成使得该集成电路的组件驻留在单片半导体材料(诸如硅)上。
SoC 102可包括一个或多个处理器104。计算设备100可包括不止一个SoC102,由此增加处理器104和处理器核的数目。计算设备100还可包括不与SoC102相关联的处理器104。个体处理器104可以是多核处理器。处理器104可以各自被配置用于可与计算设备100的其他处理器104相同或不同的特定目的。相同或不同配置的处理器104和处理器核中的一者或多者可被编群在一起。一群处理器104或处理器核可被称为多处理器群集。
SoC 102的存储器106可以是被配置用于存储供处理器104或SoC 102的其他组件(包括AI处理器124)访问的数据和处理器可执行代码的易失性或非易失性存储器。计算设备100和/或SoC 102可包括被配置用于各种目的的一个或多个存储器106。一个或多个存储器106可包括易失性存储器,诸如随机存取存储器(RAM)或主存储器、或者高速缓存存储器。这些存储器106可以被配置成临时地持有从数据传感器或子系统接收的有限量的数据,基于各种因素预计将来会访问而从非易失性存储器请求、从非易失性存储器加载到存储器106的数据和/或处理器可执行代码指令,和/或由处理器104和/或AI处理器124产生并临时地存储用于将来快速访问而不被存储在非易失性存储器中的中间处理数据和/或处理器可执行代码指令。在一些实施例中,任何数目和组合的存储器106可包括一次性可编程或只读存储器。
存储器106可被配置成至少暂时存储从另一存储器设备(诸如另一存储器106或存储器114)加载至存储器106的数据和处理器可执行代码以供由一个或多个处理器104或由SoC 102的其他组件(包括AI处理器124)访问。可响应于由处理器104或由SoC 102的其他组件(包括AI处理器124)执行功能而加载被加载到存储器106的数据或处理器可执行代码。响应于功能的执行而将数据或处理器可执行代码加载到存储器106可源自对存储器106不成功的存储器访问请求(或“未命中”),因为所请求的数据或处理器可执行代码并不位于存储器106中。响应于未命中,可作出对另一存储器106或存储器114的存储器访问请求以将所请求的数据或处理器可执行代码从该另一存储器106或存储器114加载到存储器106。响应于功能的执行而将数据或处理器可执行代码加载到存储器106可源自对另一存储器106或存储器114的存储器访问请求,并且数据或处理器可执行代码可被加载到存储器106以供稍后访问。
存储器接口110和存储器114可一同工作以允许计算设备100在易失性和/或非易失性存储介质上存储数据和处理器可执行代码并且从该易失性和/或非易失性存储介质检索数据和处理器可执行代码。存储器114可与存储器106的实施例非常相似地配置,其中存储器114可存储数据或处理器可执行代码以供由一个或多个处理器104或由SoC 102的其他组件(包括AI处理器124)访问。在一些实施例中,非易失性的存储器114可在计算设备100已经断电之后保留信息。当重新上电并且计算设备100重引导时,存储在存储器114上的信息可用于计算设备100。在一些实施例中,易失性的存储器114可在计算设备100已经断电之后不保留信息。存储器接口110可控制对存储器114的访问并且允许处理器104或SoC 12的其他组件(包括AI处理器124)从存储器114读取数据和向存储器114写入数据。
SoC 102还可包括AI处理器124。AI处理器124可以是处理器104、处理器104的一部分、和/或SoC 102的自立组件。AI处理器124可被配置成执行神经网络以在计算设备100上处理激活值和权重值。计算设备100还可包括不与SoC 102相关联的AI处理器124。此类AI处理器124可以是计算设备100的自立组件,和/或被集成到其他SoC 102中。
计算设备100和/或SoC 102的一些或全部组件可以被不同地布置和/或组合而仍然提供各个实施例的功能。计算设备100可以不限于每个组件中的一个,并且每个组件的多个实例可被包括在计算设备100的各种配置中。
图2解说了SoC 200(例如,图1中的SoC 102),其可以是适于实现实施例的具有AI处理器206(例如,图1中的AI处理器124)和其他组件的计算设备(例如,图1中的计算设备100)的组件。参照图1和图2,SoC 200可包括如上所述的各种组件。例如,SoC 200可包括AI处理器206、处理器202(例如,图1中的处理器104)、以及处理器存储器(例如,图1中的存储器106)。在一些实施例中,一些此类组件(诸如被描述为SoC 200的一部分的组件)可位于SoC 200的低功率区域210内。
权重数据集的经压缩帧块可被存储在SoC 200外的存储器208(例如,图1中的存储器114)和/或SoC 200上的处理器存储器204处。在一些实施例中,权重数据集的经压缩帧块可从存储器208加载到处理器存储器204。
AI处理器206可被配置成使用激活值和权重值来实现神经网络过程,诸如生成推断。AI处理器206可从权重数据集的经压缩帧块检索用于神经网络过程的权重值。在一些实施例中,AI处理器206可从存储器208接收权重数据集的经压缩帧块。在一些实施例中,AI处理器206可从处理器存储器204接收权重数据集的经压缩帧块。
AI处理器206可被配置成对权重数据集的经压缩帧块进行解压缩以检索权重值。在一些实施例中,AI处理器206可被配置有用于对权重数据集的经压缩帧块进行解压缩的软件。在一些实施例中,AI处理器206可被配置有用于对权重数据集的经压缩帧块进行解压缩的电路系统和/或软件。对权重数据集的经压缩帧块进行解压缩在本文进一步描述。
对权重数据集的经压缩帧块进行解压缩所得到的权重值可由AI处理器206用于实现神经网络过程。在一些实施例中,AI处理器206可使用通过解压缩从权重数据集的经压缩帧块检索的权重值和权重数据集的未经压缩的权重值的组合。在一些实施例中,由AI处理器206实现的神经网络过程的结果可被存储到存储器204和/或存储器208。在一些实施例中,由AI处理器206实现的神经网络过程的结果可从AI处理器206、存储器204和/或存储器208检索以供处理器202处理。
本文中对图2中解说的SoC 200及其各种组件的描述仅旨在是示例并且绝非是限制性的。所解说的示例SoC 200的若干组件可以被不同地配置、组合和分离。若干组件可以按更多或更少的数目被包括在SoC 200中并且可在SoC 200内不同地被定位和连接,或者与SoC 200分开。类似地,众多其他组件(诸如其他存储器、处理器、外围设备子系统、接口和控制器)可被包括在SoC 200中。
图3A和3B解说了适于实现各实施例的对供压缩的十进制权重值的二进制表示的组帧的示例。参照图1-图3B,权重数据集300可包括权重值的表示。图3A和3B中的权重数据集300的示例包括整数权重值的十进制和有符号二进制表示(为清楚起见,在图3A和3B中示出)。
为了对来自权重数据集300的权重值进行压缩,可以进行对权重数据集300的分析以确定权重数据集300的各部分,这些部分可被编群成帧302a、302b、302c、302d、302e、304a、304b、304c、304d。计算设备(例如,计算设备100)可具有处理器(例如,图1中的处理器104、AI处理器124,图2中的处理器202、AI处理器206),该处理器被配置成:分析权重数据集300,标识各个帧(包括帧302a、302b、302c、302d、302e、304a、304b、304c、304d和/或其他未示出的帧),以及选择各种帧组合以确定哪些帧要用于压缩权重数据集300。对权重数据集300的分析可选择压缩度量满足和/或超过压缩度量阈值的帧组合。压缩度量和/或压缩度量阈值可基于压缩比、压缩大小等等。
在一些实施例中,压缩度量阈值可以是预定值。满足和/或超过压缩度量阈值的帧组合可被用于压缩权重数据集300。在一些实施例中,压缩度量阈值可根据对经压缩权重数据集300的分析而被设置为最佳压缩度量。例如,第一帧组合的压缩度量可被设置为压缩度量阈值,并且超过该压缩度量阈值的任何相继帧组合的压缩度量可被设置为压缩度量阈值。一旦没有帧组合能够超过压缩度量阈值,该压缩度量阈值可以是最佳压缩度量。与最佳压缩度量相关联的帧组合可以是要被用于压缩权重数据集300的帧组合。
在一些实施例中,帧的标识和/或帧的选择可由搜索算法来实现。在一些实施例中,搜索算法可被配置成标识每个帧和/或选择每个帧组合。在一些实施例中,搜索算法可以是穷举搜索算法。在一些实施例中,搜索算法可被配置成:基于可限制帧数目和/或帧组合数目的选择性搜索准则来标识帧和/或选择帧组合。在一些实施例中,搜索算法可被配置成:基于可优先化某些帧和/或某些帧组合的选择性搜索准则来标识帧和/或选择帧组合。例如,选择性搜索准则可包括帧长度(诸如帧中的权重值数目)、帧长度范围、归一化因子(诸如帧中可无损地移除的权重值的比特数目)、归一化因子范围、权重值、权重值范围、偏移值(诸如帧的权重值可改变的值)、偏移值范围等等。
神经网络可使用被量化为某个大小的权重。例如,神经网络可使用被量化为4比特、8比特、16比特等的权重。然而,并非所有权重值可使用完整量化大小。因此,权重值可包括表示该权重值的比特(在本文中被称为有效比特,其可包括符号比特)以及对于表示该权重值不是必需的比特(在本文中被称为填充比特)。在一些实施例中,填充比特可以是重复的比特值,诸如重复权重值的最高有效比特和/或与最高有效比特不同的比特值。在一些实施例中,填充比特可以是符号扩展比特。一些或所有填充比特可从权重值移除以无损地压缩权重值。对权重数据集300的分析可标识毗连权重值中可无损地从权重值移除的填充比特模式。例如,可无损地从权重值移除的填充比特模式可以是毗连权重值中共享数目的一些和/或所有填充比特。毗连权重值中可无损地从权重值移除的填充比特模式可基于毗连权重值的数目(其可被称为帧长度)来标识。呈现出模式的毗连权重值可被编群为帧302a、302b、302c、302d、302e、304a、304b、304c、304d。在一些实施例中,对呈现出模式的权重值的标识会标识交叠帧,并且对帧的选择可选择非交叠帧。在一些实施例中,所选帧可以是毗连帧。在一些实施例中,所选帧可以是非毗连帧。
在一些实施例中,处理器可将偏移应用于一些和/或所有权重值。在一些实施例中,处理器可将偏移应用于帧的权重值。将偏移应用于权重值可包括通过偏移来修改权重值。例如,可通过与权重值相减和/或相加来从权重值移除偏移。将偏移应用于权重值一般会减少权重值中可被用于表示权重值的比特(有效比特)数目。类似地,将偏移应用于权重值一般会增加权重值中的填充比特数目。应用了偏移的权重值可基于可无损地从权重值移除的填充比特模式被编群成帧。
为了压缩所选帧,处理器可根据可无损地从所选帧的权重值移除的填充比特模式从所选帧中移除权重值的填充比特。所选帧中的每个权重值可移除其一些或所有填充比特。从所选帧的每个权重值移除的填充比特数目在本文中被称为归一化因子。对权重值的修改可以仅留下有效比特和/或留下有效比特以及少于所选帧中的权重值的所有填充比特。在一些实施例中,从所选帧中的每个权重值移除的填充比特可基于可从所选帧中具有最多有效比特的权重值移除的填充比特的数目。如此,可从具有最多有效比特的权重值移除的该数目个填充比特也可从所选帧中的其他权重值移除。每个所选帧可具有其自己的归一化因子。在一些实施例中,移除数个填充比特可涉及使剩余比特移位以覆写被移除的填充比特。在移除填充比特之后权重值的剩余比特数目在本文中可被称为经压缩权重位宽。
图3A中所解说的示例示出了选择具有可变帧长度的帧302a、302b、302c、302d、302e。帧302a具有被配置成表示一群两个权重值(例如,-13和-33)的帧长度。帧302b具有被配置成表示一群九个权重值(例如,-3、2、-2、4、1、0、-2、9和10)的帧长度。帧302c具有被配置成表示一群一个权重值(例如,-153)的帧长度。帧302d具有被配置成表示一群三个权重值(例如,0、1和0)的帧长度。帧302e具有被配置成表示一群三个权重值(例如,0、0和0)的帧长度。
图3A中所解说的示例进一步示出了选择具有可变归一化因子的帧302a、302b、302c、302d、302e。帧302a具有被配置成表示从帧302a中的每个权重值移除八个填充比特的归一化因子。帧302b具有被配置成表示从帧302b中的每个权重值移除十一个填充比特的归一化因子。帧302c具有被配置成表示从帧302c中的权重值移除六个填充比特的归一化因子。帧302d具有被配置成表示从帧302d中的每个权重值移除十四个填充比特的归一化因子。在一些实施例中,帧302e具有被配置成表示从帧302e中的每个权重值移除十五个填充比特的归一化因子。在一些实施例中,帧302e具有被配置成表示从帧302e中的每个权重值移除所有比特的归一化因子。如本文进一步讨论的,仅具有权重值零的帧(诸如帧302e)可在压缩块中由报头表示而没有帧有效载荷,从而允许在压缩期间移除帧的所有比特。
图3B中所解说的示例示出了选择具有统一帧长度的帧304a、304b、304c、304d。在该示例中,统一帧长度是八个权重值。然而,统一帧长度可以是任何数目的权重值。在一些实施例中,统一帧长度可以是两个权重值的指数值(例如,2、4、8、16、32、64、128等等)。帧304a具有被配置成表示一群八个权重值(例如,-13、-33、-3、2、-2、4、1和0)的帧长度。帧304b具有被配置成表示一群八个权重值(例如,-2、9、10、-153、0、1、0和33)的帧长度。帧304c具有被配置成表示一群八个权重值(例如,2、-26、0、0、0、-9、-81和0)的帧长度。帧304d具有被配置成表示一群八个权重值(例如,-3、-12、1、-125、-1、5、0和-154)的帧长度。
图3B中所解说的示例进一步示出了选择具有可变归一化因子的帧304a、304b、304c、304d。帧304a具有被配置成表示从帧304a中的每个权重值移除八个填充比特的归一化因子。帧304b具有被配置成表示从帧304b中的每个权重值移除六个填充比特的归一化因子。帧304c具有被配置成表示从帧304c中的权重值移除七个填充比特的归一化因子。帧304d具有被配置成表示从帧304d中的每个权重值移除六个填充比特的归一化因子。
图3A和3B中的示例旨在是解说性的而非限制权利要求或说明书的范围。权重数据集300可包括任何数目的权重值并且权重值可以是任何大小和/或格式。分析权重数据集300的计算设备的处理器可标识并选择任何数目和/或长度并具有任何归一化因子的帧。
图4解说了适于实现各实施例的经压缩权重数据块的示例。参照图1-图4,经压缩权重数据块400可包括全局报头402,任何数目的帧报头404a、404b、404c、404d,以及任何数目的帧有效载荷406a、406b、406c。压缩计算设备(例如,计算设备100)可具有被配置成压缩权重数据集(例如,图3A和3B中的权重数据集300)的处理器(例如,图1中的处理器104、AI处理器124,图2中的处理器202、AI处理器206)。对权重数据集的压缩可生成经压缩权重数据块400。解压缩计算设备(例如,计算设备100)可具有被配置成对经压缩权重数据块400进行解压缩的处理器(例如,图1中的处理器104、AI处理器124,图2中的处理器202、AI处理器206)。经压缩权重数据块400可被存储在压缩计算设备和/或解压缩计算设备的存储器(例如,图1中的存储器106、114,图2中的处理器存储器204、存储器208)处。
如本文进一步所述,全局报头402可包括可被应用于对帧有效载荷406a、406b、406c的任何组合或全部进行解压缩的参数。如本文进一步所述,帧报头404a、404b、404c可包括可被应用于对相关联的帧有效载荷406a、406b、406c进行解压缩的参数,并且帧报头404d可包括可被应用于解压缩的参数而没有相关联的帧有效载荷。帧有效载荷406a、406b、406c可包括相关联帧(例如,图3A和3B中的帧302a、302b、302c、302d、302e、304a、304b、304c、304d)的经压缩权重值。在一些实施例中,经压缩权重数据块400可被排序成使得相关联的帧报头404a、404b、404c和帧有效载荷406a、406b、406c配对。在一些实施例中,经压缩权重数据块400可被排序成使得帧报头404a、404b、404c、404d和帧有效载荷406a、406b、406c按权重数据集中帧的次序来排序。
图5解说了适于实现各实施例的经压缩权重数据块(例如,图4中的经压缩权重数据块400)的全局报头。参照图1-图5,全局报头500(例如,图4中的全局报头402)可以是任何大小并包括可被应用于对经压缩权重数据的帧有效载荷(例如,图4中的帧有效载荷406a、406b、406c)的任何组合或全部进行解压缩的参数。压缩计算设备(例如,计算设备100)可具有被配置成压缩权重数据集(例如,图3A和3B中的权重数据集300)的处理器(例如,图1中的处理器104、AI处理器124,图2中的处理器202、AI处理器206)。对权重数据集的压缩可生成全局报头500。解压缩计算设备(例如,计算设备100)可具有被配置成使用全局报头500对经压缩权重数据块进行解压缩的处理器(例如,图1中的处理器104、AI处理器124,图2中的处理器202、AI处理器206)。全局报头500可被存储在压缩计算设备和/或解压缩计算设备的存储器(例如,图1中的存储器106、114,图2中的处理器存储器204、存储器208)处。在一些实施例中,全局报头500可以是任何位宽。例如,全局报头500可以是9个字节。
全局报头500可包括任何数目的偏移502、504。在一些实施例中,偏移502、504可以是被应用于任何数目和/或组合的帧(例如,图3A和3B中的帧302a、302b、302c、302d、302e、304a、304b、304c、304d)的权重值以用于压缩权重数据集的值。在一些实施例中,偏移502、504的默认值可被设置为零。偏移502、504可被应用于权重值以用于压缩权重数据集以通过偏移来修改权重值。例如,可经由与权重值相减和/或相加来从权重值移除偏移。将偏移应用于权重值一般会减少权重值中可被用于表示该权重值的比特(有效比特)数目。类似地,将偏移应用于权重值一般会增加权重值中的填充比特数目。偏移值可被用于对经压缩权重数据块进行解压缩以将在压缩期间通过偏移修改的权重值返回到原始权重值。例如,可经由与经修改权重值相减和/或相加来将偏移添加到经修改权重值。在一些实施例中,偏移502、504可以是与权重值相同的位宽。例如,偏移502、504可具有作为二的指数值的比特数目的位宽,诸如2比特、4比特、8比特、16比特、32比特、64比特、128比特等等。
在一些实施例中,全局报头500可包括任何数目的保留比特506,其可被配置用于提供用于对经压缩权重数据块进行解压缩的参数。在一些实施例中,保留比特506的数目可以是1比特、2比特等等。
在一些实施例中,全局报头500可包括经压缩符号值508,其被配置成表示经压缩权重数据块的帧有效载荷是否包含有符号经压缩权重数据。经压缩符号值508可在权重数据集的压缩期间生成。例如,当权重数据集的至少一个权重值是有符号权重值时,经压缩符号值508可被配置成表示经压缩权重数据块的帧有效载荷包含有符号经压缩权重数据。对于另一示例,当权重数据集的至少一个帧的至少一个权重值是有符号权重值时,经压缩符号值508可被配置成表示经压缩权重数据块的帧有效载荷包含有符号经压缩权重数据。对于另一示例,当权重数据集中没有权重值是有符号权重值时,经压缩符号值508可被配置成表示经压缩权重数据块的帧有效载荷不包含有符号经压缩权重数据。对于另一示例,当权重数据集中任何帧的权重值都不是有符号权重值时,经压缩符号值508可被配置成表示经压缩权重数据块的帧有效载荷不包含有符号经压缩权重数据。
经压缩符号值508可在对经压缩权重数据块进行解压缩期间用于确定经解压缩权重值是否有符号。例如,经压缩符号值508可被配置成表示经压缩权重数据块的帧有效载荷包含有符号经压缩权重数据,并且如此,经解压缩权重值有符号。对有符号权重值进行解压缩可包括:复制每个经压缩权重值的最高有效比特(诸如符号比特)的值,并使用该最高有效比特的值作为符号扩展比特来对每个相应的经压缩权重值进行解压缩。对于另一示例,经压缩符号值508可被配置成表示经压缩权重数据块的帧有效载荷不包含有符号经压缩权重数据,并且如此,经解压缩权重值无符号。对无符号权重值进行解压缩可包括:将填充比特添加到每个经压缩权重值。填充比特可以是比特值的任何组合或模式。例如,填充比特可以是全部相同的比特值,诸如全“0”或全“1”。在一些实施例中,填充比特可以是经压缩权重值的最高有效比特的比特值或与该比特值相反的值。在一些实施例中,经压缩符号值508可以是任何位宽。例如,经压缩符号值508可以是1比特。
在一些实施例中,全局报头500可包括帧报头大小510,其被配置成表示经压缩权重数据块中的帧报头(例如,图4中的帧报头404a、404b、404c、404d)的大小。帧报头大小510可在权重数据集的压缩期间生成。例如,帧报头大小510可基于经压缩权重数据块的所有帧报头的统一大小来生成。在一些实施例中,帧报头大小510可以是预配置的值。帧报头大小510可在对经压缩权重数据块进行解压缩期间用于确定帧报头和/或帧有效载荷位于经压缩权重数据块内的何处。例如,帧报头的统一大小可被用于标识经压缩权重数据块中帧报头大小的数据可以是帧报头并且经压缩权重数据块中并非帧报头大小的数据是帧有效载荷。在一些实施例中,帧报头大小510可以是任何位宽。例如,帧报头大小510可以是2比特。
在一些实施例中,全局报头500可包括未经压缩宽度512,其被配置成表示未经压缩权重数据的位宽。例如,未经压缩宽度512可被配置成表示未经压缩权重可具有作为二的指数值的比特数目的位宽,诸如2比特、4比特、8比特、16比特、32比特、64比特、128比特等等。未经压缩宽度512可在权重数据集的压缩期间生成。例如,未经压缩宽度512可基于权重数据集的权重值的位宽来生成。对于另一示例,未经压缩宽度512可以是预配置的值。未经压缩宽度512可在对经压缩权重数据块进行解压缩期间用于确定经解压缩权重值的位宽。在一些实施例中,未经压缩宽度512可以是任何位宽。例如,未经压缩宽度512可以是3比特。
在一些实施例中,全局报头500可包括未经压缩缓冲器大小514,其被配置成表示被配置用于存储未经压缩权重数据的缓冲器的位宽。未经压缩缓冲器大小514可在权重数据集的压缩期间生成。例如,未经压缩缓冲器大小514可基于用于权重数据集的缓冲器大小来生成。对于另一示例,未经压缩缓冲器大小514可以是预配置的值。未经压缩缓冲器大小514可在对经压缩权重数据块进行解压缩期间用于确定用于经解压缩权重值的缓冲器大小。在一些实施例中,未经压缩缓冲器大小514可以是任何位宽。例如,未经压缩缓冲器大小514可以是32比特。
图6解说了适于实现各实施例的经压缩权重数据块(例如,图4中的经压缩权重数据块400)的帧报头的示例。参照图1-图6,帧报头600(例如,图4中的帧报头404a、404b、404c、404d)可以是任何大小并包括可被应用于对经压缩权重数据的帧有效载荷(例如,图4中的帧有效载荷406a、406b、406c)的任何组合或全部进行解压缩的参数。压缩计算设备(例如,计算设备100)可具有被配置成压缩权重数据集(例如,图3A和3B中的权重数据集300)的处理器(例如,图1中的处理器104、AI处理器124,图2中的处理器202、AI处理器206)。对权重数据集的压缩可生成帧报头600。解压缩计算设备(例如,计算设备100)可具有被配置成使用帧报头600对经压缩权重数据块进行解压缩的处理器(例如,图1中的处理器104、AI处理器124,图2中的处理器202、AI处理器206)。帧报头600可被存储在压缩计算设备和/或解压缩计算设备的存储器(例如,图1中的存储器106、114,图2中的处理器存储器204、存储器208)处。
在一些实施例中,帧报头600可与权重数据集中的帧(例如,图3A和3B中的帧302a、302b、302c、302d、302e、304a、304b、304c、304d)相关联。在一些实施例中,帧报头600可与经压缩权重数据块的帧有效载荷相关联。在一些实施例中,帧报头600可被包括在经压缩权重数据块中而不与帧有效载荷关联。例如,对于与包含全零权重值的权重数据的帧相关联的帧报头600,帧报头600可被包括在经压缩权重数据块中而不与帧有效载荷关联。在一些实施例中,帧报头600可以是任何位宽。例如,帧报头600可以是8比特。
帧报头600可包括帧长度602,其被配置成表示权重数据集的相关联帧中所包括的权重值数目。在一些实施例中,帧长度602可被类似地配置成表示经压缩权重数据块的相关联帧有效载荷中所包括的经压缩权重值数目。在一些实施例中,帧长度602可被类似地配置成表示在经压缩权重数据块中没有相关联帧有效载荷的经压缩权重值数目。例如,帧长度602可被配置成表示经压缩毗连零权重值的数目。帧长度602可在权重数据集的压缩期间生成。例如,帧长度602可基于权重数据集的相关联帧中的权重值数目来生成。对于另一示例,帧长度602可基于相关联帧有效载荷中的经压缩权重值数目来生成。在一些实施例中,帧长度602可以是预配置的值。例如,帧长度602可以是二的指数值的预配置指数值,诸如2比特、4比特、8比特、16比特、32比特、64比特、128比特等等。对于另一示例,对于8比特权重值,帧长度602可以是可被16整除的值。对于另一示例,对于16比特权重值,帧长度602可以是可被8整除的值。帧长度602可在对经压缩权重数据块进行解压缩期间用于确定要从相关联帧有效载荷中解压缩的权重值数目。在一些实施例中,帧长度602可在对经压缩权重数据块进行解压缩期间用于确定要为不与帧有效载荷相关联的帧报头600解压缩的权重值数目。例如,帧长度602可被用于确定要解压缩的连贯零权重值数目。帧长度602可以是任何位宽。例如,对于8比特权重值,帧长度602可以是4比特。对于另一示例,对于16比特权重值,帧长度602可以是3比特。
帧报头600可包括归一化因子604,其被配置成表示从权重数据集的相关联帧中所包括的权重值移除的填充比特数目。在一些实施例中,归一化因子604可被类似地配置成表示要添加到经压缩权重数据块的相关联帧有效载荷中所包括的经压缩权重值的填充比特数目。在一些实施例中,归一化因子604可被配置成表示从权重数据集的相关联帧中所包括的零权重值移除的比特数目。在一些实施例中,归一化因子604可被类似地配置成表示要为没有经压缩权重数据块的相关联帧有效载荷的经压缩权重值添加的比特数目。例如,归一化因子604可被配置成表示用于零权重值的比特数目。归一化因子604可在权重数据集的压缩期间生成。例如,归一化因子604可基于从权重数据集的相关联帧中的权重值移除以生成相关联帧有效载荷的比特数目来生成。归一化因子604可在对经压缩权重数据块进行解压缩期间用于确定要添加到经压缩权重值以从相关联帧有效载荷中解压缩的填充比特数目。在一些实施例中,归一化因子604可在对经压缩权重数据块进行解压缩期间用于确定要为不与帧有效载荷相关联的帧报头600解压缩的零权重值的比特数目。归一化因子604可以是任何位宽。例如,对于8比特权重值,归一化因子604可以是3比特。对于另一示例,对于16比特权重值,归一化因子604可以是4比特。
在一些实施例中,在图6中所解说的示例中,归一化因子604在帧报头600中可以用在移除填充比特之后权重数据集的相关联帧中所包括的权重值的剩余比特的经压缩权重位宽来替代。在解压缩期间,可使用相关联帧的经压缩权重位宽和被配置成表示未经压缩权重数据集的位宽的未经压缩宽度(例如,图5中的未经压缩宽度512)来为帧确定归一化因子604。例如,相关联帧的经压缩权重位宽可从未经压缩宽度中减去以确定归一化因子604。
在一些实施例中,帧报头600可包括归一化因子指示符,其可以是归一化因子604。在一些实施例中,帧报头600可包括归一化因子指示符,其在图6中所解说的示例中可以是替代归一化因子604的经压缩权重位宽。
帧报头600可包括偏移指示符606,其被配置成表示是否有偏移(例如,图5中的偏移502、504)和/或哪个偏移被应用于权重数据集的相关联帧中所包括的权重值。在一些实施例中,偏移指示符606可被类似地配置成表示是否有偏移和/或哪个偏移被应用于被压缩为经压缩权重数据块中的相关联帧有效载荷中所包括的经压缩权重值的权重值。在一些实施例中,偏移指示符606可被类似地配置成表示是否有偏移和/或哪个偏移被应用于对经压缩权重数据块的相关联帧有效载荷中所包括的经压缩权重值进行解压缩。偏移指示符606可以是与经压缩权重数据块的全局报头(例如,图5中的全局报头500)中所包括的偏移相关联的值。例如,偏移指示符606可以是比特标志,该比特标志的第一值与全局报头中的第一偏移相关联并且第二值与全局报头中的第二值相关联。偏移指示符606可指示全局报头中的哪个偏移曾被用于对权重数据集的权重值进行压缩并且全局报头中的哪个偏移将被用于对经压缩权重值进行解压缩。偏移指示符606可以是任何位宽。例如,偏移指示符606可以是1比特。
图4-图6中的示例旨在是解说性的而非限制权利要求或说明书的范围。图4中的经压缩权重数据块400、图5中的全局报头500和图6中的帧报头的各种特征可用各种方式被包括和/或排除、具有不同大小、和/或按不同方式排序。
图7解说了适于实现各实施例的对经压缩权重数据块(例如,图4中的经压缩权重数据块400)进行解压缩的示例。参照图1-图7,可对经压缩权重数据块700进行解压缩以生成经解压缩权重数据块720。解压缩计算设备(例如,计算设备100)可具有被配置成对经压缩权重数据块700进行解压缩的处理器(例如,图1中的处理器104、AI处理器124,图2中的处理器202、AI处理器206)。处理器可被配置有用于实现解压缩器710的电路系统和/或软件。在一些实施例中,被配置用于实现解压缩器710的软件可被存储在解压缩计算设备的存储器(例如,图1中的存储器106、114,图2中的处理器存储器204、存储器208)处。解压缩计算设备可使用经压缩权重数据块700的全局报头704(例如,图4中的全局报头402,图5中的全局报头500)、帧报头706a、706b、706c、706d、706e(例如,图4中的帧报头404a、404b、404c、404d,图6中的帧报头600)、和/或帧有效载荷702a、702b、702c、702d(例如,图4的帧有效载荷406a、406b、406c)来对经压缩权重数据块700进行解压缩。在一些实施例中,经压缩权重数据块700可被存储在解压缩计算设备的存储器(例如,图1中的存储器106、114,图2中的处理器存储器204、存储器208)处。
解压缩器710可包括报头解析器712和块解归一化器714。解压缩器710可检索经压缩权重数据块700。例如,解压缩器710可从解压缩计算设备的存储器(可在该存储器处存储经压缩权重数据块700)检索经压缩权重数据块700。
报头解析器712可解析全局报头704以检索用于对经压缩权重数据块700进行解压缩的参数。报头解析器712还可解析帧报头706a、706b、706c、706d以检索用于对相关联帧有效载荷702a、702b、702c、702d进行解压缩的参数。在一些实施例中,报头解析器712还可解析帧报头706e,以检索用于对没有相关联帧有效载荷的零权重值进行解压缩的参数。
块解归一化器714可使用从全局报头704和帧报头706a、706b、706c、706d、706e检索的参数来对经压缩权重数据块700进行解压缩。更具体而言,块解归一化器714可使用从全局报头704和帧报头706a、706b、706c、706d检索的参数来对相关联帧有效载荷702a、702b、702c、702d进行解压缩。此外,块解归一化器714可使用从全局报头704和帧报头706e检索的参数来对没有相关联帧有效载荷的零权重值进行解压缩。在一些实施例中,块解归一化器714可通过将每个经压缩权重值移位来自相关联帧报头706a、706b、706c、706d的归一化因子(例如,图6中的归一化因子604)的比特数目来对帧有效载荷702a、702b、702c、702d的权重值进行解压缩。在一些实施例中,块解归一化器714可使用按位算术运算来调整所添加填充比特的值。例如,块解归一化器714可使用按位算术运算来调整所添加填充比特的值以匹配经压缩权重值的最高有效比特。作为进一步示例,块解归一化器714可使用按位算术运算来调整所添加符号扩展比特的值以匹配经压缩权重值的最高有效比特,诸如符号比特。经解压缩权重值可被编群为经解压缩权重数据块720。
例如,块解归一化器714可使用从全局报头704和帧报头706a检索的参数来对相关联帧有效载荷702a进行解压缩。在该示例中,块解归一化器714可从帧报头706a检索被配置成表示一群两个权重值的帧长度(例如,图6中的帧长度602)、被配置成表示八个填充比特的归一化因子、以及被配置成指示没有偏移将被用于对帧有效载荷702a进行解压缩的偏移指示符(例如,图6中的偏移指示符606)。块解归一化器714可将归一化因子应用于帧有效载荷702a的两个经压缩权重值,从而向每个经压缩权重值添加八个填充比特。在该示例中,块解归一化器714可复制每个经压缩权重值的最高有效比特的值,并使用该最高有效比特的值作为填充比特来对每个相应的经压缩权重值进行解压缩。作为进一步示例,块解归一化器714可复制每个经压缩权重值的最高有效比特(诸如符号比特)的值,并使用该最高有效比特的值作为符号扩展比特来对每个相应的经压缩权重值进行解压缩。具有填充比特和有效比特的完整位宽经解压缩权重值可被用作经解压缩权重数据块720的一部分。
对于进一步示例,块解归一化器714可使用从全局报头704和帧报头706b检索的参数来对相关联帧有效载荷702b进行解压缩。在该示例中,块解归一化器714可从帧报头706b检索被配置成表示一群九个权重值的帧长度、被配置成表示十一个填充比特的归一化因子、以及被配置成指示没有偏移将被用于对帧有效载荷702b进行解压缩的偏移指示符。块解归一化器714可将归一化因子应用于帧有效载荷702b的九个经压缩权重值,从而向每个经压缩权重值添加十一个填充比特。在该示例中,块解归一化器714可复制每个经压缩权重值的最高有效比特的值,并使用该最高有效比特的值作为填充比特来对每个相应的经压缩权重值进行解压缩。作为进一步示例,块解归一化器714可复制每个经压缩权重值的最高有效比特(诸如符号比特)的值,并使用该最高有效比特的值作为符号扩展比特来对每个相应的经压缩权重值进行解压缩。具有填充比特和有效比特的完整位宽经解压缩权重值可被用作经解压缩权重数据块720的一部分。
对于进一步示例,块解归一化器714可使用从全局报头704和帧报头706c检索的参数来对相关联帧有效载荷702c进行解压缩。在该示例中,块解归一化器714可从帧报头706c检索被配置成表示一群一个权重值的帧长度、被配置成表示六个填充比特的归一化因子、以及被配置成指示没有偏移将被用于对帧有效载荷702c进行解压缩的偏移指示符。块解归一化器714可将归一化因子应用于帧有效载荷702c的一个经压缩权重值,从而向每个经压缩权重值添加六个填充比特。在该示例中,块解归一化器714可复制经压缩权重值的最高有效比特的值,并使用该最高有效比特的值作为填充比特来对经压缩权重值进行解压缩。作为进一步示例,块解归一化器714可复制经压缩权重值的最高有效比特(诸如符号比特)的值,并使用该最高有效比特的值作为符号扩展比特来对经压缩权重值进行解压缩。具有填充比特和有效比特的完整位宽经解压缩权重值可被用作经解压缩权重数据块720的一部分。
对于进一步示例,块解归一化器714可使用从全局报头704和帧报头706d检索的参数来对相关联帧有效载荷702d进行解压缩。在该示例中,块解归一化器714可从帧报头706d检索被配置成表示一群三个权重值的帧长度、被配置成表示十四个填充比特的归一化因子、以及被配置成指示没有偏移将被用于对帧有效载荷702d进行解压缩的偏移指示符。块解归一化器714可将归一化因子应用于帧有效载荷702d的三个经压缩权重值,从而向每个经压缩权重值添加十四个填充比特。在该示例中,块解归一化器714可复制每个经压缩权重值的最高有效比特的值,并使用该最高有效比特的值作为填充比特来对每个相应的经压缩权重值进行解压缩。作为进一步示例,块解归一化器714可复制每个经压缩权重值的最高有效比特(诸如符号比特)的值,并使用该最高有效比特的值作为符号扩展比特来对每个相应的经压缩权重值进行解压缩。具有填充比特和有效比特的完整位宽经解压缩权重值可被用作经解压缩权重数据块720的一部分。
对于进一步示例,块解归一化器714可使用从全局报头704和帧报头706e检索的参数来对没有相关联帧有效载荷的零权重值进行解压缩。在该示例中,块解归一化器714可从帧报头706e检索被配置成表示一群三个权重值的帧长度、被配置成表示十六个填充比特的归一化因子、以及被配置成指示没有偏移将被用于对零权重值进行解压缩的偏移指示符。块解归一化器714可将归一化因子应用于零权重值的三个经压缩权重值,从而向每个经压缩零权重值添加十六个比特。在该示例中,块解归一化器714可添加十六个零值比特来对每个相应的经压缩零权重值进行解压缩器。具有填充比特和有效比特的完整位宽经解压缩权重值可被用作经解压缩权重数据块720的一部分。
在一些实施例中,作为对权重数据进行压缩的一部分,权重数据集的权重值可能已通过偏移值(例如,图5中的偏移502、504)修改。对于此类经修改权重值,具有从经修改权重值推导出的经压缩权重值的相关联帧有效载荷的帧报头可包括被配置成指示偏移将被用于对帧有效载荷进行解压缩的偏移指示符。在将帧报头的归一化因子应用于帧有效载荷的经压缩权重之后,块解归一化器714可通过偏移值来修改帧有效载荷的完整位宽权重值。具有填充比特和有效比特的完整位宽经解压缩权重值可被用作经解压缩权重数据块720的一部分。
图7中的示例旨在是解说性的而非限制权利要求或说明书的范围。经压缩权重数据块700和经解压缩权重数据块720可包括任何数目的权重值并且权重值可以是任何大小和/或格式。对经压缩权重数据700进行解压缩并生成经解压缩权重数据720的解压缩计算设备的处理器可使用全局报头、帧报头和帧有效载荷的任何数目和组合来这样做。类似地,对经压缩权重数据700进行解压缩并生成经解压缩权重数据720的解压缩计算设备的处理器可使用偏移、帧长度、归一化因子和经压缩权重值的任何数目、组合和值来这样做。
图8解说了根据实施例的用于压缩权重数据的方法800。参照图1-图8,方法800可在计算设备(例如,图1中的计算设备100)中、硬件中、在处理器中执行的软件中、或软件配置的处理器和专用硬件的组合(例如,图1中的处理器104、存储器106、114、AI处理器124,图2中的处理器202、处理器存储器204、AI处理器206、存储器208)中实现。为了涵盖在各个实施例中实现的替换配置,实现方法800的硬件在本文中被称为“压缩处理设备”。
在框802中,压缩处理设备可接收权重数据集(例如,图3A和3B中的权重数据集300)。在一些实施例中,权重数据集可由压缩处理设备从存储器检索。在一些实施例中,在框802中检索权重数据集的压缩处理设备可以是处理器或AI处理器。
在框804中,压缩处理设备可基于选择性搜索准则来标识权重数据集中可以从权重值移除以进行无损压缩的帧(例如,图3A和3B中的帧302a、302b、302c、302d、302e、304a、304b、304c、304d)。对帧的标识可由搜索算法来实现。在一些实施例中,搜索算法可被配置成标识每个帧。在一些实施例中,搜索算法可以是穷举搜索算法。在一些实施例中,搜索算法可被配置成基于可限制帧数目的选择性搜索准则来标识帧。在一些实施例中,搜索算法可被配置成基于可优先化某些帧和/或某些帧组合的选择性搜索准则来标识帧。例如,选择性搜索准则可包括帧长度、帧长度范围、表示可以从帧的权重值移除的填充比特数目的归一化因子、归一化因子范围、权重值、权重值范围、偏移值、偏移值范围等等。神经网络可使用被量化为某个大小的权重。例如,神经网络可使用被量化为4比特、8比特、16比特等的权重。然而,并非所有权重值可使用完整量化大小。因此,权重值可包括有效比特(其可包括符号比特)和填充比特。在一些实施例中,填充比特可以是重复的比特值,诸如重复权重值的最高有效比特和/或与最高有效比特不同的比特值。在一些实施例中,填充比特可以是符号扩展比特。
对权重数据集的分析可标识毗连权重值中可无损地从权重值移除的填充比特模式。例如,可无损地从权重值移除的填充比特模式可以是毗连权重值中共享数目的一些和/或全部填充比特。毗连权重值中可无损地从权重值移除的填充比特模式可基于毗连权重值的数目来标识。呈现出模式的毗连权重值可被编群为帧。在一些实施例中,对呈现出模式的权重值的标识会标识交叠帧。在一些实施例中,在框804中标识权重数据集中的帧的压缩处理设备可以是处理器或AI处理器。
在框806中,压缩处理设备可选择帧组合。对帧的选择可由搜索算法来实现。在一些实施例中,搜索算法可被配置成选择每个帧组合。在一些实施例中,搜索算法可以是穷举搜索算法。在一些实施例中,搜索算法可被配置成基于可限制帧组合数目的选择性搜索准则来选择帧组合。在一些实施例中,搜索算法可被配置成基于可优先化某些帧和/或某些帧组合的选择性搜索准则来选择帧组合。例如,选择性搜索准则可包括帧长度、帧长度范围、归一化因子、归一化因子范围、权重值、权重值范围、偏移值、偏移值范围等等。在一些实施例中,对帧的选择可选择非交叠帧。在一些实施例中,所选帧可以是毗连帧。在一些实施例中,所选帧可以是非毗连帧。在一些实施例中,在框806中选择帧组合的压缩处理设备可以是处理器或AI处理器。
在框808中,压缩处理设备可对所选帧组合进行压缩。对所选帧组合的压缩在本文中在参照图9的方法900中和参照图10的方法1000中进一步描述。在一些实施例中,在框808中对所选帧进行压缩的压缩处理设备可以是处理器或AI处理器。
在框810中,压缩处理设备可计算所选帧组合的压缩度量。压缩度量可基于压缩比、压缩大小等等。在框810中计算所选帧组合的压缩度量的压缩处理设备可以是处理器或AI处理器。
在判定框812中,压缩处理设备可确定压缩度量是否满足和/或超过压缩度量阈值。压缩度量阈值可基于压缩比、压缩大小等等。在一些实施例中,压缩度量阈值可以是预定值。满足和/或超过压缩度量阈值的帧组合可被用于压缩权重数据集。在一些实施例中,压缩度量阈值可根据对多组所选帧组合的压缩度量的分析被设置为最佳压缩度量。例如,第一所选帧组合的压缩度量可被设置为压缩度量阈值,并且超过该压缩度量阈值的任何相继所选帧组合的压缩度量可被设置为压缩度量阈值。一旦没有所选帧组合能够超过压缩度量阈值,该压缩度量阈值可以是最佳压缩度量。与最佳压缩度量相关联的帧组合可以是要被用于压缩权重数据集的帧组合,如本文进一步所述。在判定框812中确定压缩度量是否满足和/或超过压缩度量阈值的压缩处理设备可以是处理器或AI处理器。
响应于确定压缩度量不满足和/或未超过压缩度量阈值(即,判定框812=“否”),压缩处理设备可在框806中选择帧组合,如本文先前所述。
响应于确定压缩度量确实满足和/或确实超过压缩度量阈值(即,判定框812=“是”),压缩处理设备可在可任选的判定框814中确定是否存在剩余帧组合。如上面所讨论的,最佳压缩度量可基于将每个帧组合与压缩度量阈值进行比较。因此,当仍然存在要与压缩度量阈值进行比较的帧组合时,剩余的帧组合可与压缩度量阈值进行比较。在一些实施例中,压缩处理设备可根据帧组合的列表、表、阵列、队列、堆栈等等来确定是否存在剩余的帧组合。在可任选的判定框814中确定是否存在剩余帧组合的压缩处理设备可以是处理器或AI处理器。
响应于确定存在剩余的帧组合(即,可任选的判定框814=“是”),压缩处理设备可在框806中选择帧组合,如本文先前所述。
响应于确定压缩度量确实满足和/或确实超过压缩度量阈值(即,判定框812=“是”),或响应于确定不存在剩余帧组合(即,可任选的判定框814=“否”),压缩处理设备可在框816中存储经压缩的所选帧组合。经压缩的所选帧组合可被存储在被配置用于持久存储的存储器中。在框816中存储经压缩的所选帧组合的压缩处理设备可以是处理器或AI处理器。
图9解说了根据实施例的用于设置权重数据压缩参数的方法900。参照图1-图9,方法900可在计算设备(例如,图1中的计算设备100)中、硬件中、在处理器中执行的软件中、或软件配置的处理器和专用硬件的组合(例如,图1中的处理器104、存储器106、114、AI处理器124,图2中的处理器202、处理器存储器204、AI处理器206、存储器208)中实现。为了涵盖在各个实施例中实现的替换配置,实现方法900的硬件在本文中被称为“压缩处理设备”。在一些实施例中,方法900可进一步描述参照图8所描述的方法800的框808。
在可任选框902中,压缩处理设备可确定所选帧(例如,图3A和3B中的帧302a、302b、302c、302d、302e、304a、304b、304c、304d)的帧长度。在一些实施例中,帧长度可基于呈现出可无损地从权重值移除的填充比特模式的毗连权重值的数目,如在参照图8所描述的方法800中的框804所描述的标识权重数据集(例如,图3A和3B中的权重数据集300)中的帧时所使用的。在一些实施例中,帧长度可在标识权重数据集中的帧期间预定,如针对参照图8所描述的方法800中的框804所描述的,并且可能不需要实现可任选的框902。在可任选的框902中确定所选帧的帧长度的压缩处理设备可以是处理器或AI处理器。
在可任选的框904中,压缩处理设备可从帧中的每个权重值移除偏移值。使用偏移值可以是可任选的,并且对于未使用偏移值的实施例可能不需要实现框904。在一些实施例中,没有偏移值可被用于对所选帧进行压缩,如针对参照图8所描述的方法800中的框806所描述的。在一些实施例中,偏移值可被用于对具有至少一些权重值的所选帧进行压缩,这些权重值的有效比特数目可通过从权重值移除偏移值来减少。在一些实施例中,从帧的权重值移除偏移值可取决于从权重值移除偏移值是否会导致具有更少有效比特或更多填充比特的经修改权重值,以使得帧的权重值具有最多有效比特或最少填充比特。在一些实施例中,偏移值可以是预定的。在一些实施例中,可基于可减少帧的权重的最高数目的有效比特或增加最低数目的填充比特的值来确定偏移值。在一些实施例中,可通过将偏移值与帧中的权重值相加或相减来移除偏移值。在可任选的框904中从帧中的每个权重值移除偏移值的压缩处理设备可以是处理器或AI处理器。
在框906中,压缩处理设备可标识帧中具有最多有效比特或最少填充比特的权重值。压缩处理设备可分析权重值的各比特来确定表示权重值的值(包括有符号值)的有效比特,并比较这些权重值中的哪个权重值具有最多有效比特。类似地,压缩处理设备可分析权重值的各比特以确定权重值的值的填充比特,并比较这些权重值中的哪个权重值具有最少填充比特。在框906中标识帧中具有最多有效比特或最少填充比特的权重值的压缩处理设备可以是处理器或AI处理器。
在框908中,压缩处理设备可使用帧中具有最多有效比特或最少填充比特的权重值来为该帧设置归一化因子。归一化因子可表示可以从每个帧的权重值移除的填充比特数目。设置归一化因子可包括:确定帧中具有最多有效比特或最少填充比特的权重值的填充比特数目,并将归一化因子设置为该填充比特数目。在一些实施例中,多个权重值可具有最多有效比特或最少填充比特,并且压缩处理设备可选择这些权重值中的任何权重值来设置归一化因子。在一些实施例中,压缩处理设备可确定是否帧的所有比特都为零值。换言之,压缩处理设备可确定是否帧中的所有权重值都为零值。压缩处理设备可分析帧中的权重值的每个比特以确定其值并确定是否每个比特都具有零值。响应于确定帧的所有比特都是零值,压缩处理设备可将归一化因子设置为帧的权重值的完整位宽。换言之,压缩处理设备可将权重值的所有比特视为填充比特并将归一化因子设置为权重值的所有比特。在框908中使用帧中具有最多有效比特或最少填充比特的权重值来为该帧设置归一化因子的压缩处理设备可以是处理器或AI处理器。
图10解说了根据实施例的用于压缩权重数据的方法1000。参照图1-图10,方法1000可在计算设备(例如,图1中的计算设备100)中、硬件中、在处理器中执行的软件中、或软件配置的处理器和专用硬件的组合(例如,图1中的处理器104、存储器106、114、AI处理器124,图2中的处理器202、处理器存储器204、AI处理器206、存储器208)中实现。为了涵盖在各个实施例中实现的替换配置,实现方法1000的硬件在本文中被称为“压缩处理设备”。在一些实施例中,方法1000可在参照图9所描述的方法900的延续中实现。
在可任选的判定框1002中,压缩处理设备可确定权重数据集(例如,图3A和3B中的权重数据集300)中的帧(例如,图3A和3B中的帧302a、302b、302c、302d、302e、304a、304b、304c、304d)的归一化因子是否是该帧的权重值的完整位宽。帧的归一化因子可以是在本文参照图9所描述的方法900的框908中为帧设置的归一化因子。在一些实施例中,压缩处理设备可通过分析帧的权重值并确定该权重值的位宽来确定该帧的权重值的位宽。在一些实施例中,帧的权重值的位宽可以是预配置的值。例如,帧的权重值的位宽可以是二的指数值,诸如2比特、4比特、8比特、16比特、32比特、64比特、128比特等等。在可任选的判定框1002中确定帧的归一化因子是否是该帧的权重值的完整位宽的压缩处理设备可以是处理器或AI处理器。
在框1004中,压缩处理设备可根据归一化因子从帧的权重值移除填充比特。归一化因子可被配置成表示要从帧的权重值移除的填充比特数目。由归一化因子表示的要从帧移除的填充比特数目可由压缩处理设备读取,该压缩处理设备可从帧的每个权重值移除该数目个填充比特。在一些实施例中,移除填充比特可涉及使帧的权重值的剩余比特移位以覆写被移除的填充比特。在移除填充比特之后权重值的剩余比特可被称为经压缩权重位宽。在框1004中根据归一化因子从帧的权重值移除填充比特的压缩处理设备可以是处理器或AI处理器。在一些实施例中,压缩处理设备可响应于确定帧的归一化因子不是该帧的权重值的完整位宽(即,可任选的判定框1002=“否”)而在框1004中根据归一化因子从帧的权重值移除填充比特。
在框1006中,压缩处理设备可生成帧的帧有效载荷(例如,图4中的帧有效载荷406a、406b、406c,图7中的帧有效载荷702a、702b、702c、702d)和帧报头(例如,图4中的帧报头404a、404b、404c,图6中的帧报头600,图7中的帧报头706a、706b、706c、706d)。生成帧的帧有效载荷可包括存储帧的权重值的剩余比特。帧的权重值的所存储剩余比特可以是帧的经压缩权重值。生成帧的帧报头可包括:与帧有效载荷相关联地存储用于该帧有效载荷的压缩参数,这些压缩参数可被用于对经压缩权重值进行解压缩。压缩参数可包括帧长度(例如,图6中的帧长度602)、归一化因子指示符(例如,图6中的归一化因子604、参照图6所描述的经压缩权重位宽)、和/或偏移指示符(例如,图6中的偏移指示符606)。帧长度可以是在如本文参照图9所描述的方法900的框902中为帧确定的帧长度。归一化因子指示符可以是在本文参照图9所描述的方法900的框908中为帧设置的归一化因子。归一化因子指示符可以是框1004中移除填充比特所得到的经压缩权重位宽。偏移指示符可以是基于在本文参照图9所描述的方法900中的可任选框904中是否有偏移因子和/或哪个偏移因子被应用于帧的权重值的值。帧报头和帧有效载荷可彼此相关联地存储在存储器中。在框1006中生成帧的帧有效载荷和帧报头的压缩处理设备可以是处理器或AI处理器。
响应于确定帧的归一化因子是帧的权重值的完整位宽(即,可任选的判定框1002=“是”),压缩处理设备可在可任选框1012中从帧中的权重值移除所有比特。在可任选框1012中从帧中的权重值移除所有比特的压缩处理设备可以是处理器或AI处理器。
在可任选框1014中,压缩处理设备可生成帧的帧报头(例如,图4中的帧报头404d,图6中的帧报头600,图7中的帧报头706e)。在框1014中生成帧报头可与在框1006中生成帧报头类似的方式来实现。对于从权重值移除所有比特的帧,可能不生成帧有效载荷。在可任选框1014中生成帧的帧有效载荷的压缩处理设备可以是处理器或AI处理器。
在框1006中生成帧的帧有效载荷和帧报头或在可任选框1014中生成帧的帧有效载荷之后,压缩处理设备可在判定框1008中确定是否存在剩余帧。压缩处理设备可根据帧的列表、表、阵列、队列、堆栈等等来确定是否存在剩余帧。在判定框1008中确定是否存在剩余帧的压缩处理设备可以是处理器或AI处理器。
响应于确定不存在剩余帧(即,判定框1008=“否”),压缩处理设备可在框1010中生成全局报头(例如,图4中的全局报头402,图5中的全局报头500,图7中的全局报头704)和经压缩权重数据块(例如,图4中的经压缩权重数据块400,图7中的经压缩权重数据块700)。生成经压缩权重数据块的全局报头可包括与帧报头和帧有效载荷相关联地存储用于该帧报头和帧有效载荷的压缩和权重数据集参数。压缩参数可包括偏移(例如,图5中的偏移502、504)。偏移可以是在本文参照图9所描述的方法900的框904中被应用于帧的权重值的偏移值。在一些实施例中,全局报头可包括任何数目的保留比特(例如,图5中的保留比特506),这些保留比特可被配置用于提供用于对经压缩权重数据块进行解压缩的参数。
在一些实施例中,全局报头可包括经压缩符号值(例如,图5中的经压缩符号值508),其被配置成表示经压缩权重数据块的帧有效载荷是否包含有符号经压缩权重数据。经压缩符号值可在权重数据集的压缩期间生成。
在一些实施例中,全局报头可包括帧报头大小(例如,图5中的帧报头大小510),其被配置成表示经压缩权重数据块中的帧报头的大小。帧报头大小可在权重数据集的压缩期间生成。例如,帧报头大小可基于经压缩权重数据块的所有帧报头的统一大小来生成。在一些实施例中,帧报头大小可以是预配置的值。
在一些实施例中,全局报头可包括未经压缩宽度(例如,图5中的未经压缩宽度512),其被配置成表示未经压缩权重数据集的位宽。例如,未经压缩宽度可被配置成表示未经压缩权重可具有作为二的指数值的比特数目的位宽,诸如2比特、4比特、8比特、16比特、32比特、64比特、128比特等等。未经压缩宽度可在权重数据集的压缩期间生成。例如,未经压缩宽度可基于权重数据集的权重值的位宽来生成。对于另一示例,未经压缩宽度可以是预配置的值。在一些实施例中,全局报头可包括未经压缩缓冲器大小(例如,图5中的未经压缩缓冲器大小514),其被配置成表示被配置用于存储未经压缩权重数据集的缓冲器的位宽。未经压缩缓冲器大小可在权重数据集的压缩期间生成。例如,未经压缩缓冲器大小可基于用于权重数据集的缓冲器大小来生成。对于另一示例,未经压缩缓冲器大小可以是预配置的值。
生成经压缩权重数据块可包括将全局报头、帧报头和帧有效载荷彼此相关联地存储在存储器中。在框1010中生成全局报头和经压缩权重数据块的压缩处理设备可以是处理器或AI处理器。
响应于确定不存在剩余帧(即,判定框1008=“否”),压缩处理设备可:在本文参照图9所描述的方法900的可任选框902中确定所选帧的帧长度;在本文参照图9所描述的方法900的可任选框904中从帧中的每个权重值移除偏移值;或在本文参照图9所描述的方法900的框906中标识帧中具有最多有效比特或最少填充比特的权重值。
图11解说了根据实施例的用于对权重数据进行解压缩的方法1100。参照图1-图11,方法1100可在计算设备(例如,图1中的计算设备100)中、硬件中、在处理器中执行的软件中、或软件配置的处理器和专用硬件的组合(例如,图1中的处理器104、存储器106、114、AI处理器124,图2中的处理器202、处理器存储器204、AI处理器206、存储器208,图7中的解压缩器710、报头解析器712、块解归一化器714)中实现。为了涵盖在各个实施例中实现的替换配置,实现方法1100的硬件在本文中被称为“解压缩处理设备”。
在框1102中,解压缩处理设备可检索经压缩权重数据块(例如,图4中的经压缩权重数据块400,图7中的经压缩权重数据块700)。经压缩权重数据块可从计算设备的存储器(诸如SoC(例如,图1中的SoC 102,图3中的SoC 300)上的处理器存储器和/或与SoC分开的存储器)检索。在框1102中检索经压缩权重数据块的解压缩处理设备可以是处理器或AI处理器。
在框1104中,解压缩处理设备可解析经压缩权重数据块的全局报头(例如,图4中的全局报头402,图5中的全局报头500,图7中的全局报头704)。可解析全局报头以检索用于对经压缩权重数据块进行解压缩的参数。在一些实施例中,从全局报头检索的用于对经压缩权重数据块进行解压缩的参数可包括偏移(例如,图5中的偏移502、504)。在一些实施例中,从全局报头检索的用于对经压缩权重数据块进行解压缩的参数可包括经压缩符号值(例如,图5中的经压缩符号值508),其被配置成表示经压缩权重数据块的帧有效载荷(例如,图4中的帧有效载荷406a、406b、406c,以及图7中的帧有效载荷702a、702b、702c、702d)是否包含有符号经压缩权重数据。在一些实施例中,从全局报头检索的用于对经压缩权重数据块进行解压缩的参数可包括帧报头大小(例如,图5中的帧报头大小510),其被配置成表示经压缩权重数据块中的帧报头(例如,图4中的帧报头404a、404b、404c、404d,图6中的帧报头600,图7中的帧报头706a、706b、706c、706d、706e)的大小。在一些实施例中,从全局报头检索的用于对经压缩权重数据块进行解压缩的参数可包括未经压缩宽度(例如,图5中的未经压缩宽度512),其被配置成表示未经压缩权重数据集的位宽。例如,未经压缩宽度可被配置成表示未经压缩权重可具有作为二的指数值的比特数目的位宽,诸如2比特、4比特、8比特、16比特、32比特、64比特、128比特等等。在一些实施例中,全局报头可包括未经压缩缓冲器大小(例如,图5中的未经压缩缓冲器大小514),其被配置成表示被配置用于存储未经压缩权重数据集的缓冲器的位宽。在框1104中解析经压缩权重数据块的全局报头的解压缩处理设备可以是处理器或AI处理器。
在框1106中,解压缩处理设备可解析经压缩权重数据块的帧报头。可解析帧报头以检索用于对经压缩权重数据块进行解压缩的参数。可解析个体帧报头以检索用于对相关联帧有效载荷进行解压缩的参数。在一些实施例中,可解析个体帧报头以检索用于对没有相关联帧有效载荷的零权重值进行解压缩的参数。在一些实施例中,从帧报头检索的用于对经压缩权重数据块进行解压缩的参数可包括帧长度(例如,图6中的帧长度602)、归一化因子(例如,图6中的归一化因子604)和/或偏移指示符(例如,图6中的偏移指示符606)。帧长度可被配置成表示权重数据集的相关联帧中所包括的权重值数目。在一些实施例中,帧长度602可被类似地配置成表示经压缩权重数据块的相关联帧有效载荷中所包括的经压缩权重值数目。在一些实施例中,帧长度602可被类似地配置成表示经压缩权重数据块的没有相关联帧有效载荷的经压缩权重值数目。归一化因子可被配置成表示要添加到相关联帧有效载荷中所包括的经压缩权重值的填充比特数目。在一些实施例中,归一化因子可被配置成表示要为没有相关联帧有效载荷的经压缩权重值添加的比特数目。偏移指示符606被配置成表示是否有偏移和/或哪个偏移要被应用于对相关联帧有效载荷中所包括的经压缩权重值进行解压缩。在框1106中解析经压缩权重数据块的帧报头的解压缩处理设备可以是处理器或AI处理器。
在判定框1108中,解压缩处理设备可确定经压缩权重数据块的帧有效载荷是否有符号。帧有效载荷的经压缩权重数据可包括有符号和/或无符号权重值。具有至少一个有符号权重值可使得帧有效载荷有符号。在一些实施例中,经压缩权重数据中具有至少一个有符号权重值可使得所有帧有效载荷有符号。确定帧有效载荷是否有符号可基于在框1104中从全局报头检索的经压缩符号值。在判定框1108中确定经压缩权重数据块的帧有效载荷是否有符号的解压缩处理设备可以是处理器或AI处理器。
响应于确定经压缩权重数据块的帧有效载荷无符号(即,判定框1108=“否”),解压缩处理设备可在框1110中根据归一化因子将填充比特添加到帧有效载荷中的比特。归一化因子可被用于向解压缩处理设备指示多少填充比特要添加到帧有效载荷的每个经压缩权重值的比特以使得每个经解压缩权重值的位宽总计为权重数据集的原始未经压缩权重值的位宽。在一些实施例中,解压缩处理设备可通过将每个经压缩权重值移位归一化因子的比特数目来将填充比特添加到帧有效载荷中的比特。在一些实施例中,块解压缩处理设备可使用按位算术运算来调整所添加填充比特的值。对于无符号经压缩权重数据,什么比特值可被用于填充比特可以预配置、基于每个经压缩权重值的最高有效比特、或基于填充比特的值的资源成本。在框1110中根据归一化因子将填充比特添加到帧有效载荷中的比特的解压缩处理设备可以是处理器或AI处理器。
响应于确定经压缩权重数据块的帧有效载荷有符号(即,判定框1108=“否”),解压缩处理设备可在框1120中根据归一化因子和符号比特将填充比特添加到帧有效载荷中的比特。归一化因子可按与框1110中所描述的类似方式来使用。在一些实施例中,块解压缩处理设备可使用按位算术运算来调整所添加填充比特的值。对于有符号经压缩权重数据,什么比特值可被用于填充比特可基于每个有符号经压缩权重值的符号比特的值。在一些实施例中,填充比特可以是符号扩展比特。在框1120中根据归一化因子和符号比特将填充比特添加到帧有效载荷中的比特的解压缩处理设备可以是处理器或AI处理器。
在框1110中根据归一化因子将填充比特添加到帧有效载荷中的比特或在框1120中根据归一化因子和符号比特将填充比特添加到帧有效载荷中的比特之后,解压缩处理设备可在可任选的判定框1112中确定是否为帧有效载荷设置了偏移指示符。是否为帧有效载荷设置了偏移指示符可从框1106中解析帧有效载荷的相关联帧报头(并且具体而言解析偏移指示符)的输出来确定。在可任选的判定框1112中确定是否为帧有效载荷设置了偏移指示符的解压缩处理设备可以是处理器或AI处理器。
响应于确定为帧有效载荷设置了偏移指示符(即,可任选的判定框1112=“是”),解压缩处理设备可在可任选框1114中针对帧有效载荷中的每个经解压缩权重值包括偏移值。偏移值可从框1104中解析全局报头和偏移的输出来确定。在一些实施例中,全局报头可包括多个偏移,并且相关联帧报头的偏移指示符可被配置成向解压缩处理设备指示要使用来自全局报头的哪个偏移。解压缩处理设备可在帧有效载荷中的每个经解压缩权重值中包括偏移值。例如,解压缩处理设备可将偏移值和帧有效载荷中的每个经解压缩权重值相加或相减。在可任选框1114中针对帧有效载荷中的每个经解压缩权重值包括偏移值的解压缩处理设备可以是处理器或AI处理器。
在判定框1116中,解压缩处理设备可确定是否存在剩余帧有效载荷。解压缩处理设备可根据帧有效载荷的列表、表、阵列、队列、堆栈等等来确定是否存在剩余帧有效载荷。在判定框1116中确定是否存在剩余帧有效载荷的解压缩处理设备可以是处理器或AI处理器。在一些实施例中,解压缩处理设备可在框1110中根据归一化因子将填充比特添加到帧有效载荷中的比特或在框1120中根据归一化因子和符号比特将填充比特添加到帧有效载荷中的比特之后在判定框1116中确定是否存在剩余帧有效载荷。在一些实施例中,解压缩处理设备可响应于确定没有为帧有效载荷设置偏移指示符(即,可任选的判定框1112=“否”)或在可任选框1114中针对帧有效载荷中的每个经解压缩权重值包括偏移值之后在判定框1116中确定是否存在剩余帧有效载荷。
响应于确定不存在剩余帧(即,判定框1008=“否”),解压缩处理设备可在框1118中生成经解压缩权重数据块(例如,图7中的经解压缩权重数据块720)。解压缩处理设备可输出在框1110中添加填充比特所得到的经解压缩权重值并存储到存储器。在一些实施例中,解压缩处理设备可输出在可任选框1112中添加填充比特所得到的经解压缩权重值并存储到存储器。在一些实施例中,解压缩处理设备可输出在可任选框1114中包括用于经解压缩权重值的偏移所得到的经解压缩权重值并存储到存储器。在框1118中生成经解压缩权重数据块的解压缩处理设备可以是处理器或AI处理器。
响应于确定不存在剩余帧(即,判定框1008=“是”),解压缩处理设备可在框1106中解析经压缩权重数据块的帧报头。
图12解说了根据实施例的用于压缩权重数据的方法1200。参照图1-图12,方法1200可在计算设备(例如,图1中的计算设备100)中、硬件中、在处理器中执行的软件中、或软件配置的处理器和专用硬件的组合(例如,图1中的处理器104、存储器106、114、AI处理器124,图2中的处理器202、处理器存储器204、AI处理器206、存储器208)中实现。为了涵盖在各个实施例中实现的替换配置,实现方法1200的硬件在本文中被称为“压缩处理设备”。
在框1202中,压缩处理设备可基于选择性搜索准则,基于权重数据集的权重值中可从权重值移除以进行无损压缩的填充比特模式来标识该权重数据集(例如,图3A和3B中的权重数据集300)中的帧(例如,图3A和3B中的帧302a、302b、302c、302d、302e、304a、304b、304c、304d)。框1202可按与如参照图8所描述的方法800的框804中的操作类似的方式来实现。
在框1204中,压缩处理设备可选择帧组合。框1204可按与如参照图8所描述的方法800的框806中的操作类似的方式来实现。
在框1206中,压缩处理设备可根据每个帧的归一化因子(例如,图6中的归一化因子604)从所选帧组合的帧中的权重值移除填充比特,以生成每个所选帧的帧有效载荷(例如,图4中的帧有效载荷406a、406b、406c,以及图7中的帧有效载荷702a、702b、702c、702d)。归一化因子可各自表示可从每个帧的权重值移除的填充比特数目。框1206可按与如参照图8所描述的方法800的框808、和/或如参照图10所描述的方法1000的框1004和/或可任选框1012中的操作类似的方式来实现。
在框1208中,压缩处理设备可确定帧有效载荷的压缩度量是否超过压缩度量阈值。框1208可按与如参照图8所描述的方法800的判定框812中的操作类似的方式来实现。
在框1210中,压缩处理设备可响应于确定帧有效载荷的压缩度量超过压缩度量阈值而生成具有帧有效载荷的经压缩权重数据块(例如,图4中的经压缩权重数据块400)。框1210可按与如参照图10所描述的方法1000的框1010中的操作类似的方式来实现。
图13解说了根据实施例的用于对权重数据进行解压缩的方法1300。参照图1-图13,方法1300可在计算设备(例如,图1中的计算设备100)中、硬件中、在处理器中执行的软件中、或软件配置的处理器和专用硬件的组合(例如,图1中的处理器104、存储器106、114、AI处理器124,图2中的处理器202、处理器存储器204、AI处理器206、存储器208,图7中的解压缩器710、报头解析器712、块解归一化器714)中实现。为了涵盖在各个实施例中实现的替换配置,实现方法1300的硬件在本文中被称为“解压缩处理设备”。
在框1302中,解压缩处理设备可检索经压缩权重数据块(例如,图4中的经压缩权重数据块400,图7中的经压缩权重数据块700)。经压缩权重数据块可包括与帧有效载荷(例如,图4中的帧有效载荷406a、406b、406c,以及图7中的帧有效载荷702a、702b、702c、702d)相关联的帧报头(例如,图4中的帧报头404a、404b、404c、404d,图6中的帧报头600,以及图7中的帧报头706a、706b、706c、706d、706e)。帧报头可包括归一化因子(例如,图6中的归一化因子604),其表示从权重值移除以生成相关联帧有效载荷的填充比特数目。帧有效载荷包括经压缩权重值。框1302可按与如参照图11所描述的方法1100的框1102中的操作类似的方式来实现。
在框1304中,解压缩处理设备可解析帧报头以获得归一化因子。框1304可按与如参照图11所描述的方法1100的框1106中的操作类似的方式来实现。
在框1306中,解压缩处理设备可根据相关联帧报头的归一化因子将填充比特添加到帧有效载荷的经压缩权重值以生成经解压缩权重值。框1306可按与如参照图11所描述的方法1100的框1110和/或框1120中的操作类似的方式来实现。
根据各个实施例(包括但不限于上文参照图1-图13所描述的各实施例)的权重数据压缩和/或解压缩系统可以在包括移动计算设备的各种各样的计算系统中实现,在图14中解说适于与各个实施例联用的移动计算设备的示例。移动计算设备1400可包括处理器1402,该处理器1402耦合到触摸屏控制器1404和内部存储器1406。处理器1402可以是被指定用于一般或特定处理任务的一个或多个多核集成电路。内部存储器1406可以是易失性或非易失性存储器,并且还可以是安全和/或加密的存储器、或者不安全和/或未加密存储器,或其任何组合。可被利用的存储器类型的示例包括但不限于DDR、LPDDR、GDDR、WIDEIO、RAM、SRAM、DRAM、P-RAM、R-RAM、M-RAM、STT-RAM以及嵌入式DRAM。触摸屏控制器1404和处理器1402还可被耦合到触摸屏面板1412,诸如电阻式传感触摸屏、电容式传感触摸屏、红外传感触摸屏等。附加地,移动计算设备1400的显示器无需具有触摸屏能力。
移动计算设备1400可具有彼此耦合和/或耦合到处理器1402的一个或多个无线电信号收发机1408(例如,Peanut、蓝牙、Zigbee、Wi-Fi、RF无线电)以及天线1410以用于发送和接收通信。收发机1408和天线1410可与以上提及的电路系统一起使用以实现各种无线传输协议栈和接口。移动计算设备1400可包括蜂窝网络无线调制解调器芯片1416,该芯片实现经由蜂窝网络的通信并且耦合到处理器。
移动计算设备1400可包括耦合到处理器1402的外围设备连接接口1418。外围设备连接接口1418可被单独地配置成接纳一种类型的连接,或者可被配置成接纳共用的或专有的各种类型的物理和通信连接,诸如通用串行总线(USB)、火线(FireWire)、雷电(Thunderbolt)或PCIe。外围设备连接接口1418还可耦合到类似地配置的外围设备连接端口(未示出)。
移动计算设备1400还可包括用于提供音频输出的扬声器1414。移动计算设备1400还可包括用于容纳本文所描述的组件中的全部或一些组件的外壳1424,该外壳由塑料、金属或各材料的组合来构造。移动计算设备1400可包括耦合到处理器1402的电源1422,诸如一次性或可再充电电池。可再充电电池还可耦合到外围设备连接端口以从移动计算设备1400外部的源接收充电电流。移动计算设备1400还可包括用于接收用户输入的物理按钮1424。移动计算设备1400还可包括用于开启和关闭移动计算设备1400的电源按钮1426。
根据各个实施例(包括但不限于以上参照图1-图13所描述的各实施例)的权重数据压缩和/或解压缩系统可以被实现在各种各样的计算系统中,包括膝上型计算机1500,其示例在图15中解说。许多膝上型计算机包括触摸板触摸表面1517,其用作计算机的定点设备,并且因此可以接收与在配备有触摸屏显示器并且如上所描述的计算设备上实现的那些手势类似的拖动、滚动和轻击手势。膝上型计算机1500将通常包括耦合到易失性存储器1512和大容量非易失性存储器(诸如闪存的硬盘驱动器1513)的处理器1502。另外,计算机1500可具有用于发送和接收电磁辐射、可连接到无线数据链路的一个或多个天线1508和/或耦合到处理器1502的蜂窝电话收发机1516。计算机1500还可包括耦合到处理器1502的软盘驱动器1514和压缩碟(CD)驱动器1515。在笔记本配置中,计算机外壳包括均耦合到处理器1502的触摸板1517、键盘1518、和显示器1519。计算设备的其他配置可包括如众所周知地耦合到处理器(例如,经由USB输入)的计算机鼠标或轨迹球,这也可结合各个实施例来使用。
根据各个实施例(包括但不限于上文参照图1-图13所描述的各实施例)的权重数据压缩和/或解压缩系统也可以被实现在固定计算系统(诸如各种市售的服务器中的任何一种服务器)中。图16中解说了示例服务器1600。此类服务器1600通常包括耦合到易失性存储器1602和大容量非易失性存储器(诸如磁盘驱动器1604)的一个或多个多核处理器组装件1601。如图16中所解说的,多核处理器组装件1601可通过将它们插入到组装件的机架中而添加到服务器1600。服务器1600还可包括耦合到处理器1601的软盘驱动器、压缩碟(CD)或数字多用碟(DVD)碟驱动器1606。服务器1600还可以包括耦合到多核处理器组装件1601的网络接入端口1603以用于建立与网络1605的网络接口连接,诸如耦合到其他广播系统计算机和服务器的局域网络、因特网、公共交换电话网和/或蜂窝数据网络(例如,CDMA、TDMA、GSM、PCS、3G、4G、LTE、5G或任何其他类型的蜂窝数据网络)。
在以下段落中描述了各实现示例。虽然以下实现示例中的一些是以示例方法的形式来描述的,但是进一步示例实现可以包括:在以下段落中所讨论的由计算设备实现的示例方法,该计算设备包括被配置成执行这些示例方法的操作的压缩处理设备;在以下段落中所讨论的由计算设备实现的示例方法,该计算设备包括被配置成执行这些示例方法的操作的解压缩处理设备;在以下段落中所讨论的由计算设备实现的示例方法,该计算设备包括用于执行这些示例方法的功能的装置;以及在以下段落中所讨论的被实现为存储有处理器可执行指令的非瞬态处理器可读存储介质的示例方法,这些处理器可执行指令被配置成使计算设备的处理器执行这些示例方法的操作。
示例1.一种在计算设备的处理器中执行的方法,包括:接收表示权重值的二进制数的权重数据集;生成第一帧有效载荷,该第一帧有效载荷包括该权重数据集中的第一权重值子集的经压缩第一帧;生成与该第一帧有效载荷相关联的第一帧报头,其中该第一帧报头包括用于该经压缩第一帧的归一化因子指示符;以及生成具有该第一帧有效载荷的经压缩权重数据块。
示例2.如示例1的方法,其中,生成该第一帧有效载荷包括:通过根据该权重数据集中的该第一权重值子集的第一帧的归一化因子从该第一权重值子集中的每个权重值移除填充比特来压缩该第一帧以生成该经压缩第一帧。
示例3.如示例2的方法,进一步包括:从该第一帧的该第一权重值子集中的每个权重值移除偏移值以产生该第一帧的经修改权重值,其中压缩该第一权重值子集的该第一帧包括:根据该第一帧的该归一化因子从该第一帧中的该经修改权重值移除该填充比特以生成该经压缩第一帧。
示例4.如示例3的方法,进一步包括:生成用于该经压缩权重数据块的全局报头,其中该全局报头包括该偏移值,并且其中生成与该第一帧有效载荷相关联的该第一帧报头包括:生成该第一帧报头,其中该第一帧报头包括偏移指示符,该偏移指示符被配置成指示该偏移值是否从该第一帧的该第一权重值子集移除。
示例5.如示例2至4的方法,其中,该填充比特是符号扩展比特。
示例6.如示例1至5中任一者的方法,进一步包括:基于选择性搜索准则,基于权重值中能够从该权重值移除以进行无损压缩的填充比特模式来标识该权重数据集中的该第一权重值子集的第一帧;为该第一帧设置第一归一化因子,该第一归一化因子表示要从该第一权重值子集中的每个权重值移除的填充比特数目;基于选择性搜索准则,基于权重值中能够从该权重值移除以进行无损压缩的填充比特模式来标识该权重数据集中的第二权重值子集的第二帧;确定是否该第二帧的所有比特都是零值;以及响应于确定该第二帧的所有比特都是零值:为该第二帧设置第二归一化因子以表示该第二帧的该第二权重值子集的所有比特;通过根据该第二帧的该第二归一化因子从该第二权重值子集移除所有比特来压缩该第二权重值子集的该第二帧;以及生成不与帧有效载荷相关联的第二帧报头。
示例7.如示例1至6中任一者的方法,进一步包括:基于选择性搜索准则,基于权重值中能够从该权重值移除以进行无损压缩的填充比特模式来标识该权重数据集中的该第一权重值子集的第一帧;标识该第一帧的该第一权重值子集中具有最高数目的有效比特的权重值;以及为该第一帧设置归一化因子,该归一化因子表示要基于该最高数目的有效比特从该第一权重值子集中的每个权重值移除的填充比特数目。
示例8.如示例1至7中任一者的方法,进一步包括:确定该第一帧有效载荷的第一压缩度量是否超过压缩度量阈值,其中生成具有该第一帧有效载荷的该经压缩权重数据块包括:响应于确定该第一帧有效载荷的该第一压缩度量超过该压缩度量阈值而生成具有该第一帧有效载荷的该经压缩权重数据块。
示例9.如示例8的方法,进一步包括:将该压缩度量阈值设置为该第一帧有效载荷的该第一压缩度量;生成第二帧有效载荷,该第二帧有效载荷包括该权重数据集中的第二权重值子集的经压缩第二帧;确定该第二帧有效载荷的第二压缩度量是否超过该压缩度量阈值;响应于确定该第二压缩度量超过该压缩度量阈值而将该压缩度量阈值设置为该第二帧有效载荷的该第二压缩度量;生成第三帧有效载荷,该第三帧有效载荷包括该权重数据集中的第三权重值子集的经压缩第三帧;以及确定该第三帧有效载荷的第三压缩度量是否超过该压缩度量阈值,其中响应于确定该第一帧有效载荷的该第一压缩度量超过该压缩度量阈值而生成具有该第一帧有效载荷的该经压缩权重数据块包括:响应于确定该第三帧有效载荷的该第三压缩度量未超过该压缩度量阈值而生成具有该第二帧有效载荷的该经压缩权重数据块。
示例10.一种在计算设备的处理器中执行的方法,包括:检索经压缩权重数据块,其中该经压缩权重数据块包括与第一帧有效载荷相关联的第一帧报头,其中该第一帧报头包括第一归一化因子指示符,并且其中该第一帧有效载荷包括经压缩权重值;以及生成第一经解压缩帧,该第一经解压缩帧包括该第一帧有效载荷的该经压缩权重值的经解压缩权重值。
示例11.如示例10的方法,其中,该经压缩权重数据块包括具有偏移值的全局报头,并且该第一帧报头包括偏移指示符,该偏移指示符被配置成指示是否要针对从该第一帧有效载荷生成的每个经解压缩权重值包括该偏移值,该方法进一步包括:解析该全局报头以获得该偏移值;解析该第一帧报头以获得该偏移指示符;以及确定该偏移指示符是否被设置在该第一帧报头中,其中生成该第一经解压缩帧包括:响应于确定该偏移指示符被设置在该第一帧报头中而在从与该第一帧报头相关联的该第一帧有效载荷生成的每个经解压缩权重值中包括该偏移值。
示例12.如示例10或11中任一者的方法,其中,该经压缩权重数据块包括不与帧有效载荷相关联的、包含第二归一化因子指示符的第二帧报头,该方法进一步包括:根据该第二帧报头的该第二归一化因子指示符来生成第二经解压缩帧,该第二经解压缩帧包括具有全零值比特的经解压缩权重值。
示例13.如示例10至12中任一者的方法,其中,该经压缩权重数据块包括与第二帧有效载荷相关联的第二帧报头,其中该第二帧报头包括第二归一化因子指示符,并且其中该第二帧有效载荷包括经压缩权重值,该方法进一步包括:通过根据该第二帧报头的该第二归一化因子指示符将填充比特添加到该第二帧有效载荷的该经压缩权重值来生成第二经解压缩帧,该第二经解压缩帧包括该第二帧有效载荷的该经压缩权重值的经解压缩权重值。
示例14.如示例10至13中任一者的方法,其中,生成该第一经解压缩帧包括:根据该第一帧报头的该第一归一化因子指示符将填充比特添加到该第一帧有效载荷的该经压缩权重值以生成经解压缩权重值,并且其中用于该第一帧有效载荷的该经压缩权重值中的第一经压缩权重值的填充比特的值是根据该第一经压缩权重值的最高有效比特来确定的。
示例15.如示例13或14中任一者的方法,其中,该填充比特是符号扩展比特。
示例16.如示例10至15中任一者的方法,其中,该第一帧报头包括帧长度,该帧长度被配置成指示该第一帧有效载荷的该经压缩权重值的数目。
示例17.如示例10至16中任一者的方法,其中,该经压缩权重数据块包括不与帧有效载荷相关联的、包含帧长度的第二帧报头,该帧长度被配置成指示包括该经压缩权重值的数目的第二经解压缩帧,该方法进一步包括:生成具有与该第二帧报头的该帧长度相对应的全零值比特的数个连贯经解压缩权重值。
用于在可编程处理器上执行以执行各个实施例的操作的计算机程序代码或“程序代码”可用高级编程语言(诸如C、C++、C#、Smalltalk、Java、JavaScript、Visual Basic)、结构化查询语言(例如Transact-SQL)、Perl、或以各种其他编程语言来编写。如本申请中所使用的存储在计算机可读存储介质上的程序代码或程序可指其格式能被处理器理解的机器语言码(诸如,对象码)。
前述方法描述和过程流程图仅作为解说性示例而提供,且并非旨在要求或暗示各个实施例的操作必须按所给出的次序来执行。如本领域技术人员将领会的,前述各实施例中的操作次序可按任何次序来执行。诸如“其后”、“然后”、“接着”等的措辞并非旨在限定操作的次序;这些措辞仅是简单地用以指引读者遍历方法的描述。此外,对单数形式的权利要求元素的任何引述(例如使用冠词“一”、“某”或“该”的引述)不应解释为将该元素限定为单数。
结合各个实施例来描述的各种解说性逻辑框、模块、电路、和算法操作可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路和操作在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实现决策不应被解读为致使脱离权利要求的范围。
用于实现结合本文所公开的实施例描述的各种解说性逻辑、逻辑框、模块、以及电路的硬件可用设计成执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如,DSP与微处理器的组合、多个微处理器、与DSP核心协同的一个或多个微处理器、或任何其他此类配置。替换地,一些操作或方法可由专用于给定功能的电路系统来执行。
在一个或多个实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现,则各功能可作为一条或多条指令或代码存储在非瞬态计算机可读介质或非瞬态处理器可读介质上。本文所公开的方法或算法的操作可在处理器可执行软件模块中实施,该处理器可执行软件模块可驻留在非瞬态计算机可读或处理器可读存储介质上。非瞬态计算机可读或处理器可读存储介质可以是能被计算机或处理器访问的任何存储介质。作为示例而非限定,此类非瞬态计算机可读或处理器可读介质可包括RAM、ROM、EEPROM、闪存、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能被用来存储指令或数据结构形式的期望程序代码且能被计算机访问的任何其他介质。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据而碟(disc)用激光以光学方式再现数据。以上介质的组合也被包括在非瞬态计算机可读和处理器可读介质的范围内。附加地,方法或算法的操作可作为一条代码和/或指令或者任何代码和/或指令组合或集合而驻留在可被纳入计算机程序产品中的非瞬态处理器可读介质和/或计算机可读介质上。
提供所公开的实施例的先前描述是为了使本领域任何技术人员皆能制作或使用本权利要求。对这些实施例的各种修改对于本领域技术人员而言将是显而易见的,并且本文所定义的普适原理可被应用于其他实施例和实现而不会脱离各权利要求的范围。由此,本公开并非旨在被限定于本文中所描述的实施例和实现,而是应被授予与所附权利要求以及本文所公开的原理和新颖特征一致的最广义的范围。
Claims (30)
1.一种在计算设备的处理器中执行的方法,包括:
接收表示权重值的二进制数的权重数据集;
生成第一帧有效载荷,所述第一帧有效载荷包括所述权重数据集中的第一权重值子集的经压缩第一帧;
生成与所述第一帧有效载荷相关联的第一帧报头,其中所述第一帧报头包括用于所述经压缩第一帧的归一化因子指示符;以及
生成具有所述第一帧有效载荷的经压缩权重数据块。
2.如权利要求1所述的方法,其中,生成所述第一帧有效载荷包括:通过根据所述权重数据集中的所述第一权重值子集的第一帧的归一化因子从所述第一权重值子集中的每个权重值移除填充比特来压缩所述第一帧以生成所述经压缩第一帧。
3.如权利要求2所述的方法,进一步包括:从所述第一帧的所述第一权重值子集中的每个权重值移除偏移值以产生所述第一帧的经修改权重值,
其中压缩所述第一权重值子集的所述第一帧包括:根据所述第一帧的所述归一化因子从所述第一帧中的所述经修改权重值移除所述填充比特以生成所述经压缩第一帧。
4.如权利要求3所述的方法,进一步包括:生成用于所述经压缩权重数据块的全局报头,其中所述全局报头包括所述偏移值,并且
其中生成与所述第一帧有效载荷相关联的所述第一帧报头包括:生成所述第一帧报头,其中所述第一帧报头包括偏移指示符,所述偏移指示符被配置成指示所述偏移值是否从所述第一帧的所述第一权重值子集移除。
5.如权利要求2所述的方法,其中,所述填充比特是符号扩展比特。
6.如权利要求1所述的方法,进一步包括:
基于选择性搜索准则,基于所述权重值中能够从所述权重值移除以进行无损压缩的填充比特模式来标识所述权重数据集中的所述第一权重值子集的第一帧;
为所述第一帧设置第一归一化因子,所述第一归一化因子表示要从所述第一权重值子集中的每个权重值移除的填充比特数目;
基于选择性搜索准则,基于所述权重值中能够从所述权重值移除以进行无损压缩的填充比特模式来标识所述权重数据集中的第二权重值子集的第二帧;
确定是否所述第二帧的所有比特都是零值;以及
响应于确定所述第二帧的所有比特都是零值:
为所述第二帧设置第二归一化因子,以表示所述第二帧的所述第二权重值子集的所有比特;
通过根据所述第二帧的所述第二归一化因子从所述第二权重值子集移除所有比特来压缩所述第二权重值子集的所述第二帧;以及
生成不与帧有效载荷相关联的第二帧报头。
7.如权利要求1所述的方法,进一步包括:
基于选择性搜索准则,基于所述权重值中能够从所述权重值移除以进行无损压缩的填充比特模式来标识所述权重数据集中的所述第一权重值子集的第一帧;
标识所述第一帧的所述第一权重值子集中具有最高数目的有效比特的权重值;以及
为所述第一帧设置归一化因子,所述归一化因子表示要基于所述最高数目的有效比特从所述第一权重值子集中的每个权重值移除的填充比特数目。
8.如权利要求1所述的方法,进一步包括:确定所述第一帧有效载荷的第一压缩度量是否超过压缩度量阈值,其中生成具有所述第一帧有效载荷的所述经压缩权重数据块包括:响应于确定所述第一帧有效载荷的所述第一压缩度量超过所述压缩度量阈值而生成具有所述第一帧有效载荷的所述经压缩权重数据块。
9.如权利要求8所述的方法,进一步包括:
将所述压缩度量阈值设置为所述第一帧有效载荷的所述第一压缩度量;
生成第二帧有效载荷,所述第二帧有效载荷包括所述权重数据集中的第二权重值子集的经压缩第二帧;
确定所述第二帧有效载荷的第二压缩度量是否超过所述压缩度量阈值;
响应于确定所述第二压缩度量超过所述压缩度量阈值而将所述压缩度量阈值设置为所述第二帧有效载荷的所述第二压缩度量;
生成第三帧有效载荷,所述第三帧有效载荷包括所述权重数据集中的第三权重值子集的经压缩第三帧;以及
确定所述第三帧有效载荷的第三压缩度量是否超过所述压缩度量阈值,
其中响应于确定所述第一帧有效载荷的所述第一压缩度量超过所述压缩度量阈值而生成具有所述第一帧有效载荷的所述经压缩权重数据块包括:响应于确定所述第三帧有效载荷的所述第三压缩度量未超过所述压缩度量阈值而生成具有所述第二帧有效载荷的所述经压缩权重数据块。
10.一种计算设备,包括:
压缩处理设备,所述压缩处理设备被配置成执行包括以下的操作:
接收表示权重值的二进制数的权重数据集;
生成第一帧有效载荷,所述第一帧有效载荷包括所述权重数据集中的第一权重值子集的经压缩第一帧;
生成与所述第一帧有效载荷相关联的第一帧报头,其中所述第一帧报头包括用于所述经压缩第一帧的归一化因子指示符;以及
生成具有所述第一帧有效载荷的经压缩权重数据块。
11.如权利要求10所述的计算设备,其中,所述压缩处理设备被进一步配置成使得生成所述第一帧有效载荷包括:通过根据所述权重数据集中的所述第一权重值子集的第一帧的归一化因子从所述第一权重值子集中的每个权重值移除填充比特来压缩所述第一帧以生成所述经压缩第一帧。
12.如权利要求11所述的计算设备,其中,所述压缩处理设备被配置成执行进一步包括以下的操作:从所述第一帧的所述第一权重值子集中的每个权重值移除偏移值以产生所述第一帧的经修改权重值,
其中所述压缩处理设备被配置成执行操作以使得压缩所述第一权重值子集的所述第一帧包括:根据所述第一帧的所述归一化因子从所述第一帧中的所述经修改权重值移除所述填充比特以生成所述经压缩第一帧。
13.如权利要求12所述的计算设备,其中,所述压缩处理设备被配置成执行进一步包括以下的操作:生成用于所述经压缩权重数据块的全局报头,其中所述全局报头包括所述偏移值,并且
其中所述压缩处理设备被配置成执行操作以使得生成与所述第一帧有效载荷相关联的所述第一帧报头包括:生成所述第一帧报头,其中所述第一帧报头包括偏移指示符,所述偏移指示符被配置成指示所述偏移值是否从所述第一帧的所述第一权重值子集移除。
14.如权利要求11所述的计算设备,其中,所述压缩处理设备被配置成执行操作以使得所述填充比特是符号扩展比特。
15.如权利要求10所述的计算设备,其中,所述压缩处理设备被配置成执行进一步包括以下的操作:
基于选择性搜索准则,基于所述权重值中能够从所述权重值移除以进行无损压缩的填充比特模式来标识所述权重数据集中的所述第一权重值子集的第一帧;
为所述第一帧设置第一归一化因子,所述第一归一化因子表示要从所述第一权重值子集中的每个权重值移除的填充比特数目;
基于选择性搜索准则,基于所述权重值中能够从所述权重值移除以进行无损压缩的填充比特模式来标识所述权重数据集中的第二权重值子集的第二帧;
确定是否所述第二帧的所有比特都是零值;以及
响应于确定所述第二帧的所有比特都是零值:
为所述第二帧设置第二归一化因子以表示所述第二帧的所述第二权重值子集的所有比特;
通过根据所述第二帧的所述第二归一化因子从所述第二权重值子集移除所有比特来压缩所述第二权重值子集的所述第二帧;以及
生成不与帧有效载荷相关联的第二帧报头。
16.如权利要求10所述的计算设备,其中,所述压缩处理设备被配置成执行进一步包括以下的操作:
基于选择性搜索准则,基于所述权重值中能够从所述权重值移除以进行无损压缩的填充比特模式来标识所述权重数据集中的所述第一权重值子集的第一帧;
标识所述第一帧的所述第一权重值子集中具有最高数目的有效比特的权重值;以及
为所述第一帧设置归一化因子,所述归一化因子表示要基于所述最高数目的有效比特从所述第一权重值子集中的每个权重值移除的填充比特数目。
17.如权利要求10所述的计算设备,其中,所述压缩处理设备被配置成执行进一步包括以下的操作:确定所述第一帧有效载荷的第一压缩度量是否超过压缩度量阈值,其中所述压缩处理设备被配置成执行操作以使得生成具有所述第一帧有效载荷的所述经压缩权重数据块包括:响应于确定所述第一帧有效载荷的所述第一压缩度量超过所述压缩度量阈值而生成具有所述第一帧有效载荷的所述经压缩权重数据块。
18.如权利要求17所述的计算设备,其中,所述压缩处理设备被配置成执行进一步包括以下的操作:
将所述压缩度量阈值设置为所述第一帧有效载荷的所述第一压缩度量;
生成第二帧有效载荷,所述第二帧有效载荷包括所述权重数据集中的第二权重值子集的经压缩第二帧;
确定所述第二帧有效载荷的第二压缩度量是否超过所述压缩度量阈值;
响应于确定所述第二压缩度量超过所述压缩度量阈值而将所述压缩度量阈值设置为所述第二帧有效载荷的所述第二压缩度量;
生成第三帧有效载荷,所述第三帧有效载荷包括所述权重数据集中的第三权重值子集的经压缩第三帧;以及
确定所述第三帧有效载荷的第三压缩度量是否超过所述压缩度量阈值,
其中所述压缩处理设备被配置成执行操作以使得响应于确定所述第一帧有效载荷的所述第一压缩度量超过所述压缩度量阈值而生成具有所述第一帧有效载荷的所述经压缩权重数据块包括:响应于确定所述第三帧有效载荷的所述第三压缩度量未超过所述压缩度量阈值而生成具有所述第二帧有效载荷的所述经压缩权重数据块。
19.一种在计算设备的处理器中执行的方法,包括:
检索经压缩权重数据块,其中所述经压缩权重数据块包括与第一帧有效载荷相关联的第一帧报头,其中所述第一帧报头包括第一归一化因子指示符,并且其中所述第一帧有效载荷包括经压缩权重值;以及
生成第一经解压缩帧,所述第一经解压缩帧包括所述第一帧有效载荷的所述经压缩权重值的经解压缩权重值。
20.如权利要求19所述的方法,其中:
所述经压缩权重数据块包括具有偏移值的全局报头,并且
所述第一帧报头包括偏移指示符,所述偏移指示符被配置成指示是否要针对从所述第一帧有效载荷生成的每个经解压缩权重值包括所述偏移值,
所述方法进一步包括:
解析所述全局报头以获得所述偏移值;
解析所述第一帧报头以获得所述偏移指示符;以及
确定所述偏移指示符是否被设置在所述第一帧报头中,
其中生成所述第一经解压缩帧包括:响应于确定所述偏移指示符被设置在所述第一帧报头中而在从与所述第一帧报头相关联的所述第一帧有效载荷生成的每个经解压缩权重值中包括所述偏移值。
21.如权利要求19所述的方法,其中,所述经压缩权重数据块包括不与帧有效载荷相关联的、包含第二归一化因子指示符的第二帧报头,所述方法进一步包括:
根据所述第二帧报头的所述第二归一化因子指示符来生成第二经解压缩帧,所述第二经解压缩帧包括具有全零值比特的经解压缩权重值。
22.如权利要求19所述的方法,其中,所述经压缩权重数据块包括与第二帧有效载荷相关联的第二帧报头,其中所述第二帧报头包括第二归一化因子指示符,并且其中所述第二帧有效载荷包括经压缩权重值,所述方法进一步包括:通过根据所述第二帧报头的所述第二归一化因子指示符将填充比特添加到所述第二帧有效载荷的所述经压缩权重值来生成第二经解压缩帧,所述第二经解压缩帧包括所述第二帧有效载荷的所述经压缩权重值的经解压缩权重值。
23.如权利要求19所述的方法,其中,生成所述第一经解压缩帧包括:根据所述第一帧报头的所述第一归一化因子指示符将填充比特添加到所述第一帧有效载荷的所述经压缩权重值以生成经解压缩权重值,其中用于所述第一帧有效载荷的所述经压缩权重值中的第一经压缩权重值的填充比特的值是根据所述第一经压缩权重值的最高有效比特来确定的。
24.如权利要求23所述的方法,其中,所述填充比特是符号扩展比特。
25.如权利要求19所述的方法,其中,所述第一帧报头包括帧长度,所述帧长度被配置成指示所述第一帧有效载荷的所述经压缩权重值的数目。
26.如权利要求19所述的方法,其中,所述经压缩权重数据块包括不与帧有效载荷相关联的、包含帧长度的第二帧报头,所述帧长度被配置成指示所述经压缩权重值的数目,
所述方法进一步包括:生成第二经解压缩帧,所述第二经解压缩帧包括具有与所述第二帧报头的所述帧长度相对应的全零值比特的数个连贯经解压缩权重值。
27.一种计算设备,包括:
解压缩处理设备,所述解压缩处理设备被配置成执行包括以下的操作:
检索经压缩权重数据块,其中所述经压缩权重数据块包括与第一帧有效载荷相关联的第一帧报头,其中所述第一帧报头包括第一归一化因子指示符,并且其中所述第一帧有效载荷包括经压缩权重值;以及
生成第一经解压缩帧,所述第一经解压缩帧包括所述第一帧有效载荷的所述经压缩权重值的经解压缩权重值。
28.如权利要求27所述的计算设备,其中:
所述经压缩权重数据块包括具有偏移值的全局报头;
所述第一帧报头包括偏移指示符,所述偏移指示符被配置成指示是否要针对从所述第一帧有效载荷生成的每个经解压缩权重值包括所述偏移值;并且
所述解压缩处理设备被配置成执行进一步包括以下的操作:
解析所述全局报头以获得所述偏移值;
解析所述第一帧报头以获得所述偏移指示符;以及
确定所述偏移指示符是否被设置在所述第一帧报头中,
其中所述解压缩处理设备被配置成执行操作以使得生成所述第一经解压缩帧包括:响应于确定所述偏移指示符被设置在所述第一帧报头中而在从与所述第一帧报头相关联的所述第一帧有效载荷生成的每个经解压缩权重值中包括所述偏移值。
29.如权利要求27所述的计算设备,其中,所述经压缩权重数据块包括不与帧有效载荷相关联的、包含第二归一化因子指示符的第二帧报头,并且其中所述解压缩处理设备被配置成执行进一步包括以下的操作:根据所述第二帧报头的所述第二归一化因子指示符来生成第二经解压缩帧,所述第二经解压缩帧包括具有全零值比特的经解压缩权重值。
30.如权利要求27所述的计算设备,其中,所述解压缩处理设备被配置成执行操作以使得生成所述第一经解压缩帧包括:根据所述第一帧报头的所述第一归一化因子指示符将填充比特添加到所述第一帧有效载荷的所述经压缩权重值以生成经解压缩权重值,其中所述填充比特是符号扩展比特。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/220,620 US11757469B2 (en) | 2021-04-01 | 2021-04-01 | Compression technique for deep neural network weights |
US17/220,620 | 2021-04-01 | ||
PCT/US2022/022497 WO2022212467A1 (en) | 2021-04-01 | 2022-03-30 | Compression technique for deep neural network weights |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117099109A true CN117099109A (zh) | 2023-11-21 |
Family
ID=81308565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280024671.4A Pending CN117099109A (zh) | 2021-04-01 | 2022-03-30 | 用于深度神经网络权重的压缩技术 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11757469B2 (zh) |
EP (1) | EP4315175A1 (zh) |
JP (1) | JP2024514448A (zh) |
KR (1) | KR20230162778A (zh) |
CN (1) | CN117099109A (zh) |
BR (1) | BR112023019150A2 (zh) |
WO (1) | WO2022212467A1 (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101498063B1 (ko) * | 2008-03-04 | 2015-03-03 | 엘지전자 주식회사 | 디지털 방송 시스템 및 데이터 처리 방법 |
US8489961B2 (en) * | 2009-10-19 | 2013-07-16 | Lg Electronics Inc. | Transmitting system and method of processing digital broadcast signal in transmitting system, receiving system and method of receiving digital broadcast signal in receiving system |
WO2012003602A1 (zh) * | 2010-07-09 | 2012-01-12 | 西安交通大学 | 一种电子喉语音重建方法及其系统 |
WO2019216514A1 (en) | 2018-05-09 | 2019-11-14 | Samsung Electronics Co., Ltd. | Electronic apparatus for compression and decompression of data and compression method thereof |
US11625245B2 (en) * | 2018-09-28 | 2023-04-11 | Intel Corporation | Compute-in-memory systems and methods |
CN111178490B (zh) * | 2019-12-31 | 2021-08-24 | 北京百度网讯科技有限公司 | 数据输出方法、获取方法、装置和电子设备 |
US11925128B2 (en) * | 2020-08-26 | 2024-03-05 | Robert Bosch Gmbh | Differential ionic electronic transistors |
US20220114454A1 (en) * | 2020-10-08 | 2022-04-14 | Samsung Electronics Co., Ltd. | Electronic apparatus for decompressing a compressed artificial intelligence model and control method therefor |
-
2021
- 2021-04-01 US US17/220,620 patent/US11757469B2/en active Active
-
2022
- 2022-03-30 BR BR112023019150A patent/BR112023019150A2/pt unknown
- 2022-03-30 CN CN202280024671.4A patent/CN117099109A/zh active Pending
- 2022-03-30 JP JP2023558595A patent/JP2024514448A/ja active Pending
- 2022-03-30 KR KR1020237030725A patent/KR20230162778A/ko unknown
- 2022-03-30 WO PCT/US2022/022497 patent/WO2022212467A1/en active Application Filing
- 2022-03-30 EP EP22716792.1A patent/EP4315175A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11757469B2 (en) | 2023-09-12 |
BR112023019150A2 (pt) | 2023-10-17 |
US20220321143A1 (en) | 2022-10-06 |
WO2022212467A1 (en) | 2022-10-06 |
KR20230162778A (ko) | 2023-11-28 |
JP2024514448A (ja) | 2024-04-02 |
EP4315175A1 (en) | 2024-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108427538B (zh) | 全闪存阵列的存储数据压缩方法、装置、及可读存储介质 | |
KR101505263B1 (ko) | 데이터 중복 제거 방법 및 장치 | |
US11405052B2 (en) | Compression of high dynamic ratio fields for machine learning | |
US10044370B1 (en) | Lossless binary compression in a memory constrained environment | |
CN107077423B (zh) | 用于请求分页的高效解压缩局部性系统 | |
CN106687937B (zh) | 用于压缩算法的高速缓冲存储体扩展 | |
EP3420458B1 (en) | Managing memory fragmentation in hardware-assisted data compression | |
CN111491169B (zh) | 一种数字图像压缩方法、装置、设备、介质 | |
TWI634421B (zh) | 用以存取資料之電子裝置及其資料存取方法 | |
KR20150035876A (ko) | 데이터 중복 제거 방법 및 장치 | |
US9727309B2 (en) | Computer-readable recording medium, encoding apparatus, and encoding method | |
US10103747B1 (en) | Lossless binary compression in a memory constrained environment | |
US9600420B2 (en) | Reducing decompression time without impacting compression ratio | |
US10380240B2 (en) | Apparatus and method for data compression extension | |
CN117099109A (zh) | 用于深度神经网络权重的压缩技术 | |
KR20120062500A (ko) | 압축 데이터를 판별하는 방법 및 장치 그리고 그것을 포함한 데이터 저장 장치 | |
CN111723922A (zh) | 神经网络加速装置及其控制方法 | |
CN108234552B (zh) | 一种数据存储方法及装置 | |
US20200242467A1 (en) | Calculation method and calculation device for sparse neural network, electronic device, computer readable storage medium, and computer program product | |
CN115765754A (zh) | 一种数据编码方法及一种编码数据比较方法 | |
CN113625953B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
TW201805937A (zh) | 資料儲存裝置、記憶體控制器及其資料管理方法 | |
CN112988685A (zh) | 数据压缩和解压缩方法及其装置 | |
CN113064922A (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 |