压缩操作数的方法、解压缩压缩数据序列的方法及系统技术方案

技术编号:39257503 阅读:12 留言:0更新日期:2023-10-30 12:09
本发明专利技术实施例提供压缩操作数的方法、解压缩压缩数据序列的方法及系统。本发明专利技术提供的一种压缩用于神经网络计算的操作数的方法,包括:接收多个操作数,其中每个操作数具有包括符号位、指数和分数的浮点表示;将该多个操作数重新排序为由符号位构成的第一序列、由指数构成的第二序列和由分数构成的第三序列;和压缩该第一序列、该第二序列和该第三序列以至少去除重复的指数,从而无损地生成压缩后的数据序列。实施本发明专利技术实施例可无损地生成压缩后的数据序列以及可无损地恢复多个操作数。数据序列以及可无损地恢复多个操作数。数据序列以及可无损地恢复多个操作数。

【技术实现步骤摘要】
压缩操作数的方法、解压缩压缩数据序列的方法及系统


[0001]本专利技术的实施例涉及神经网络处理,更具体地,涉及压缩操作数的方法、解压缩压缩数据序列的方法及系统。

技术介绍

[0002]深度神经网络是具有输入层(input layer)、输出层(output layer)以及位于输入层和输出层之间的一个或多个隐藏层(hidden layer)的神经网络。每一层对一个或多个张量(tensor)执行操作。张量是一个数学对象(mathematical object),其可以是零维的(又名定标器(scaler))、一维的(又名向量(vector))、二维的(又名矩阵(matrix))或多维的。一些层将权重应用于张量,例如在卷积操作中。通常,由一个神经网络层产生的张量存储在存储器中,并由下一层从存储器中获取以作为输入。存储和获取张量以及存储和获取任何适用的权重都可能使用存储器总在线的大量数据带宽。
[0003]神经网络计算需要密集的计算和带宽需求。现代计算器通常在数值计算(numerical computation)中使用具有大位宽(bit width)(例如,16位或32位)的浮点数来实现高精度。然而,高精度是以高功耗和高存储器带宽为代价的。在保持神经网络计算可接受的精度的同时平衡低功耗和低存储器带宽需求是一项挑战。
[0004]例如,带宽测量和乘加(Multiply

And

Add,MAC)操作的计算量在过去十年中以快速的速度稳步增长。神经网络应用的类型已经从图像分类、对象检测、图像分割、深度/姿势和运动估计,发展为图像质量增强,如超分辨率。最新的神经网络应用可能需要多达10万亿次MAC运算和每秒1千兆位(gigabit)的带宽。

技术实现思路

[0005]本专利技术实施例提供压缩操作数的方法、解压缩压缩数据序列的方法及系统。
[0006]本专利技术提供的一种压缩用于神经网络计算的操作数的方法,包括:接收多个操作数,其中每个操作数具有包括符号位、指数和分数的浮点表示;将该多个操作数重新排序为由符号位构成的第一序列、由指数构成的第二序列和由分数构成的第三序列;和压缩该第一序列、该第二序列和该第三序列以至少去除重复的指数,从而无损地生成压缩后的数据序列。
[0007]本专利技术提供的一种解压缩压缩数据序列的方法,包括:将压缩后的数据序列解压缩为N个符号位构成的第一序列、N个指数构成的第二序列和N个分数构成的第三序列,其中N为正整数,其中该压缩后的数据序列表示N个操作数且不包含重复的指数;将该N个符号位构成的该第一序列、该N个指数构成的第二序列和该N个分数构成的第三序列重新排序为表示该N个操作数的N个浮点数构成的恢复后的序列;和将该N个浮点数构成的恢复后的序列发送到加速器以进行神经网络计算。
[0008]本专利技术提供的一种操作数处理系统,包括:加速器电路;和耦合到该加速器电路的压缩器电路,该压缩器电路用于:接收多个操作数,其中每个操作数具有包括符号位、指数
和分数的浮点表示;将该多个操作数重新排序为由符号位构成的第一序列、由指数构成的第二序列和由分数构成的第三序列;和压缩该第一序列、该第二序列和该第三序列以至少去除重复的指数,从而无损地生成压缩后的数据序列。在可选的实施例中,该压缩器电路还用于:解压缩该压缩后的数据序列,以浮点格式无损地恢复该多个操作数。
[0009]如上所述,本专利技术实施例在压缩操作数时至少去除重复的指数,由于去除的是重复的内容从而无损地生成压缩后的数据序列,而在解压缩数据序列时执行与压缩相反的步骤,从而可无损地恢复多个操作数。
附图说明
[0010]图1是示出根据一个实施例的用于执行神经网络操作的系统100的框图。
[0011]图2A和图2B示出了根据两个替代的实施例的加速器150和存储器120之间的交互。
[0012]图3是说明根据一个实施例的由压缩器执行的转换操作的图。
[0013]图4是图示根据一个实施例的CNN操作中的资料移动(movement)的图。
[0014]图5是图示根据一个实施例的压缩浮点数的方法500的流程图。
[0015]图6是图示根据一个实施例的将资料解压缩成浮点数的方法600的流程图。
具体实施方式
[0016]在说明书及权利要求书当中使用了某些词汇来指称特定的组件。本领域技术人员应可理解,硬件制造商可能会用不同的名词来称呼同一个组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。在通篇说明书及权利要求当中所提及的“包含”及“包括”为一开放式的用语,故应解释成“包含但不限定于”。“大体上”是指在可接受的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性连接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表该第一装置可直接电性连接于该第二装置,或通过其它装置或连接手段间接地电性连接至该第二装置。以下所述为实施本专利技术的较佳方式,目的在于说明本专利技术的精神而非用以限定本专利技术的保护范围,本专利技术的保护范围当视权利要求书所界定者为准。
[0017]接下面的描述为本专利技术预期的最优实施例。这些描述用于阐述本专利技术的大致原则而不应用于限制本专利技术。本专利技术的保护范围应在参考本专利技术的权利要求书的基础上进行认定。
[0018]本专利技术的实施例提供了一种用于压缩用于神经网络计算的浮点数(floating

point number)的机制。该压缩利用神经网络操作的浮点操作数(floating

point operand)(或简称为操作数)中的冗余来减少存储器带宽。例如,神经网络层的输入激活(例如,输入特征图)的多个值可以分布在可以由一个或一些指数(exponent)表示的相对较小的数值范围内。压缩以一种高效且适应性强的方式去除了表示相同指数的冗余位(redundant bits),从而可以在神经网络计算的推理阶段(inference phase)动态执行压缩和相应的解压缩,而无需使神经网络模型重新被训练。
[0019]在一个实施例中,将压缩和相应的解压缩应用于卷积神经网络(Convolutional Neural Network,CNN)的操作数(也即,浮点操作数)。通常在卷积神经网络中,可将一个张
量切割为多批次的操作数组,每个操作数组中可包括N个操作数(其中,N为非零整数),例如当N为4时,该4个操作数可为后续图3中所示的A0、A1、A2及A3。操作数可以包括输入(也称为输入激活)、输出(也称为输出激活)以及一个或多个CNN层的权重。以CNN神经网络的输入为例,每一层的一次输入可为一个张量,由此,每个操作数可包括一次CNN输入的一个分段。本专利技术实施例所述的压缩方法通过对多批次的操作数组分别执行压缩来完成对一次输入的压缩。同理,一个或复数个权重或一次CNN输出也可为一个张量,而本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种压缩用于神经网络计算的操作数的方法,其特征在于,包括:接收多个操作数,其中每个操作数具有包括符号位、指数和分数的浮点表示;将该多个操作数重新排序为由符号位构成的第一序列、由指数构成的第二序列和由分数构成的第三序列;和压缩该第一序列、该第二序列和该第三序列以至少去除重复的指数,从而无损地生成压缩后的数据序列。2.如权利要求1所述的压缩用于神经网络计算的操作数的方法,其特征在于,共享相同指数的多个符号位、多个指数和多个分数被分别重新排序到该第一序列、该第二序列和该第三序列中的每一个中的相邻空间位置。3.如权利要求1所述的压缩用于神经网络计算的操作数的方法,其特征在于,还包括:在多批次的N个操作数中执行该重新排序和该压缩,N是一个非负整数。4.如权利要求1所述的压缩用于神经网络计算的操作数的方法,其特征在于,在压缩该第一序列、该第二序列和该第三序列时,还去除重复的符号位。5.如权利要求1所述的压缩用于神经网络计算的操作数的方法,其特征在于,还包括:生成指示在该重新排序和该压缩中使用的参数的元数据。6.如权利要求1所述的压缩用于神经网络计算的操作数的方法,其特征在于,该多个操作数包括卷积神经网络的层的多个权重。7.如权利要求1所述的压缩用于神经网络计算的操作数的方法,其特征在于,该多个操作数包括来自执行卷积神经网络的一层的加速器的激活输出。8.如权利要求7所述的压缩用于神经网络计算的操作数的方法,其特征在于,还包括:将该压缩后的数据序列存储在存储器中;和获取该压缩后的数据序列以进行解压缩,以供该加速器执行该卷积神经网络的一后续层。9.如权利要求1所述的压缩用于神经网络计算的操作数的方法,其特征在于,适用于任何位宽的指数。10.一种解压缩压缩数据序列的方法,其特征在于,包括:将压缩后的数据序列解压缩为N个符号位构成的第一序列、N个指数构成的第二序列和N个分数构成的第三序列,其中N为正整数,其中该压缩后的数据序列表示N个操作数且不包含重复的指数;将该N个符号位构成的该第一序列、该N个指数构成的第二序列和该N个分数构成的第三序列重新排序为表示该N个操作数的N个浮点数构成的恢复后的...

【专利技术属性】
技术研发人员:郭玹凯李怀霆曾守曜陈柏谕
申请(专利权)人:联发科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1