深度学习处理中乘法和累加运算的非对称量化制造技术

技术编号:21851641 阅读:51 留言:0更新日期:2019-08-14 00:35
对神经网络中非对称量化数据执行乘法和累加(MAC)运算的装置。所述装置包括MAC硬件单元,用于对第一数据序列以及第二数据序列执行所述MAC运算来生成非对称MAC输出。所述第一数据序列以及第二数据序列两者是非对称量化的。所述装置进一步包括累加器硬件单元来与所述MAC运算同时累加所述第一数据序列来生成累加输出。所述装置进一步包括乘法和加法硬件单元来将所述累加输出与第二偏移相乘来生成乘积输出,以及将所述乘积输出、所述非对称MAC输出以及在运行前计算的预先计算值相加来生成最终输出。所述第二偏移指示所述第二数据序列相对于0的不对称量。

Asymmetric Quantization of Multiplication and Accumulation in Deep Learning Processing

【技术实现步骤摘要】
深度学习处理中乘法和累加运算的非对称量化
本专利技术的实施例涉及神经网络计算(neuralnetworkcomputing),更具体地,涉及执行乘法和累加运算的硬件电路。
技术介绍
由于其在计算机视觉(computervision)、语言识别(speechrecognition)、自然语言处理(naturallanguageprocessing)、生物信息学(bioinformatics)等领域的优越性能,深度学习(deeplearning)已经获得了广泛认可。深度学习是使用包括多个隐藏层的人工神经网络(artificialneuralnetwork)的机器学习的分支。由神经网络执行的一个核心计算是卷积(convolution),其由一系列的乘法和累加(multiply-and-accumulate,MAC)运算组成。神经网络不仅是计算密集而且存储器访问量大。对于特征提取,可以在一组输入通道(例如,红、绿以及蓝)将输入图像与一组滤波器卷积,接着进行非线性计算(nonlinearcomputation)、下采样计算(down-samplingcomputation)以及类分数计算(classscorescomputation)。这些计算通常引发对处理器外部系统存储器的大量数据访问。一些传统的系统减少了用于表示数据值的位的数目以便以精确性为代价节省存储器频宽。为了在节省存储器频宽的同时提高精确度,一些其他的传统系统使用非对称量化用于减少大小的数据值,因为非对称的数据表示相比于对称数据表示,相同数目的位提供更高的精确度。这些非对称量化值在它们用于MAC运算的输入之前,被转换成对称量化的数据值。这样的转换可以显著地增加系统开销。因此,需要改进神经网络计算。
技术实现思路
本专利技术提供了一种对神经网络中非对称量化数据执行乘法和累加运算的装置和方法。在一个实施例中,提供了一种对神经网络中非对称量化数据执行乘法和累加(MAC)运算的装置。所述装置包括MAC硬件单元来对第一数据序列以及第二数据序列执行所述MAC运算来生成非对称MAC输出。所述第一数据序列以及所述第二数据序列两者是非对称量化的。所述装置进一步包括累加器硬件单元来在所述乘法和累加硬件单元执行所述MAC运算的同时,累加所述第一数据序列来生成累加输出。所述装置进一步包括乘法和加法(multiply-and-add,MAD)硬件单元来将所述累加输出与第二偏移相乘来生成乘积输出,以及将所述乘积输出、所述非对称MAC输出以及在运行前计算的预先计算值相加来生成最终输出。所述第二偏移指示所述第二数据序列相对于0的不对称量。在另一个实施例中,提供了一种对神经网络中非对称量化数据执行MAC运算的方法。所述方法包括:对第一数据序列以及第二数据序列执行MAC运算来生成非对称MAC输出,其中所述第一数据序列以及所述第二数据序列两者是非对称量化的;在所述MAC运算的同时,累加所述第一数据序列来生成累加输出;将所述累加输出与第二偏移相乘来生成乘积输出,其中所述第二偏移指示所述第二数据序列相对于0的不对称量;以及将所述乘积输出、所述非对称MAC输出以及在运行前计算的预先计算值相加来生成最终输出。本专利技术之一实施例通过在MAC运算的基础上增加额外的累加运算,其在每一数据周期与MAC运算一起进行,当完成MAC运算与累加运算,基于两者的输出结果生成最终输出。所提出之装置与方法在处理非对称量化数据的同时又不会增加性能与存储器频宽的开销。实施例的优点将在下面的描述中详细解释。附图说明本专利技术以示例而非限制的方式示出,在附图的图式中,相同的附图标记表示类似的元件。需要注意的是,本专利技术中对“一个”实施例的不同引用不一定指相同的实施例,这种引用意味着至少一个。此外,当结合实施例描述特定特征、结构或特性时,认为无论是否明确描述,结合其他实施例实现这种特征、结构或特性都在本领域技术人员的知识范围内。图1示出了根据一个实施例的神经网络计算的系统。图2示出了卷积运算的示例。图3示出了根据第一实施例的MAC电路。图4示出了根据第二实施例的MAC电路。图5示出了根据第三实施例的MAC电路。图6示出了根据一个实施例的用于对非对称量化数据执行MAC运算的方法的流程图。具体实施方式在后续描述中,给出了许多具体细节。然而,应该理解,可以在没有这些具体细节的情况下来实施本专利技术的实施例。在其他示例中,没有具体示出公知的电路、结构以及技术以避免混淆对这些描述的理解。然而,本领域技术人员将认识到,可以没有这些具体细节来实施本专利技术。本领域技术人员根据所包括的描述,将能够实施适当的功能而不需要过度实验。本专利技术的实施例提供了用于对非对称量化数据执行精确且有效的乘法和累加(MAC)运算的系统、装置以及方法。MAC运算可以由神经网络处理器执行,神经网络处理器也被称为深度学习加速器(deeplearningaccelerator,DAL)或加速器。卷积是神经网络计算中的一个核心计算,其由对输入激活(inputactivation)以及滤波器权重(filterweight)的一系列MAC运算组成。为了减少数据大小以及在主存储器与加速器之间传输数据所需要的频宽,可以量化输入激活以及滤波器权重的每一值来减少用于表示该值的位的数目。例如,一个32位浮点数(floatingpointnumber)可以由一个8位整数来表示,以致数据大小以及存储器频宽减少到原始值的25%。在一些传统的系统中,量化可以关于0对称,例如,每个值由-127与127之间的整数表示。然而,将要由神经网络处理的输入激活的范围通常相对于0不对称(即,这一范围的最小值以及最大值相对于0不对称)。同样,滤波器权重的范围通常也相对于0不对称。因此,经受MAC运算的数据可以是非对称量化数据。通常,当数值由相同数目的位表示时,非对称量化值相比于对称量化值具有更小的量化误差。这是因为非对称量化使实际值范围能够使用所有位。例如,可能需要(n+1)个位来表示对称量化值,以致其可以具有与由n个位表示的非对称量化值的相同的精度。神经网络处理由一系列层(layer)组成。在每一层,由加速器中的神经网络引擎(也称为“引擎”)将输入特征图处理成输出特征图。每个输入特征图以及输出特征图都是一个多维阵列,也称为张量(tensor)。例如,每个输入特征图以及输出特征图可以具有三个维度,包括宽度、高度以及深度。出于解释的目的,在后续描述中,假定宽度、高度以及深度维度分别在X、Y以及Z维度上对齐。图1示出了根据一个实施例的神经网络计算的系统100。系统100包括一个或多个处理器130(例如,中心处理器单元(CPU)、图像处理单元(GPU)、数字信号处理器(DSP)、媒体处理器或其他通用和/或专用处理电路)。处理器130耦合到协同处理器(co-processor)或处理单元,也称为加速器110,其执行对非对称量化数据的神经网络运算,包括但不限于MAC运算。加速器110还耦合到加速器110外部的系统存储器140。系统存储器140可以包括一个或多个动态随机存取存储器(DRAM)装置或其他易失性或非易失性存储装置。加速器110包括一个或多个引擎(例如,引擎111-114)。引擎111-114中的每一个包括用于执行数学计算的硬本文档来自技高网
...

【技术保护点】
1.一种用于对神经网络中非对称量化数据执行乘法和累加运算的装置,其特征在于,包括:乘法和累加硬件单元,用于对第一数据序列以及第二数据序列执行所述乘法和累加运算来生成非对称乘法和累加输出,其中所述第一数据序列与所述第二数据序列两者是非对称量化的;累加器硬件单元,用于在所述乘法和累加硬件单元执行所述乘法和累加运算的同时,累加所述第一数据序列来生成累加输出;以及乘法与加法硬件单元,用于将所述累加输出与第二偏移相乘来生成乘积输出,其中所述第二偏移指示所述第二数据序列相对于0的不对称量,以及将所述乘积输出、所述非对称乘法和累加输出以及在运行前计算的预先计算值相加来生成最终输出。

【技术特征摘要】
2018.02.05 US 62/626,191;2019.01.17 US 16/250,8741.一种用于对神经网络中非对称量化数据执行乘法和累加运算的装置,其特征在于,包括:乘法和累加硬件单元,用于对第一数据序列以及第二数据序列执行所述乘法和累加运算来生成非对称乘法和累加输出,其中所述第一数据序列与所述第二数据序列两者是非对称量化的;累加器硬件单元,用于在所述乘法和累加硬件单元执行所述乘法和累加运算的同时,累加所述第一数据序列来生成累加输出;以及乘法与加法硬件单元,用于将所述累加输出与第二偏移相乘来生成乘积输出,其中所述第二偏移指示所述第二数据序列相对于0的不对称量,以及将所述乘积输出、所述非对称乘法和累加输出以及在运行前计算的预先计算值相加来生成最终输出。2.如权利要求1所述的用于对神经网络中非对称量化数据执行乘法和累加运算的装置,其特征在于,从第一偏移、所述第二偏移以及所述第二数据序列的累加中计算所述预先计算值,以及其中所述第一偏移指示包括所述第一数据序列的输入特征图相对于0的不对称量。3.如权利要求1所述的用于对神经网络中非对称量化数据执行乘法和累加运算的装置,其特征在于,所述预先计算值进一步包括偏置值,所述偏置值对于由所述神经网络使用的不同滤波器具有不同值或对于由所述神经网络使用的所有滤波器具有相同值。4.如权利要求1所述的用于在神经网络中对非对称量化数据执行乘法和累加运算的装置,其特征在于,所述第一数据序列是输入特征图的输入激活以及所述第二数据序列是由所述神经网络使用的一个或多个滤波器的权重。5.如权利要求4所述的用于对神经网络中非对称量化数据执行乘法和累加运算的装置,其特征在于,所述第二偏移指示由所述神经网络使用的一个或多个滤波器的权重相对于0的所述不对称量。6.如权利要求1所述的用于对神经网络中非对称量化数据执行乘法和累加运算的装置,其特征在于,所述乘法和累加硬件单元包括乘法和累加硬件元件来对输入特征图的输入激活以及滤波器的多个权重执行所述乘法和累加运算从而生成所述非对称乘法和累加输出,以及其中所述累加器硬件单元包括累加器,来在所述乘法和累加硬件单元执行所述乘法和累加运算的同时,累加所述输入激活从而生成所述累加输出。7.如权利要求1所述的用于对神经网络中非对称量化数据执行乘法和累加运算的装置,其特征在于,所述乘法和累加硬件单元包括多个乘法和累加硬件元件来对输入特征图的多个输入激活以及滤波器多个权重执行所述乘法和累加运算,以及其中所述累加器硬件单元包括多个累加器,来在所述乘法和累加硬件单元执行所述乘法和累加运算的同时,累加每一个所述输入激活。8.如权利要求7所述的用于对神经网络中非对称量化数据执行乘法和累加运算的装置,其特征在于,所述乘法和累加硬件单元包括P个乘法和累加硬件元件来并行执行所述乘法和累加运算,以及所述累加器硬件单元包括与所述乘法和累加运算同时操作的P个累加器,其中P是大于1的整数。9.如权利要求7所述的用于对神经网络中非对称量化数据执行乘法和累加运算的装置,其特征在于,所述乘法和累加硬件单元包括(P×K)个乘法和累加硬件元件来并行执行所述乘法和累加运算,以及所述累加器硬件单元包括与所述乘法和累加运算同时操作的P个累加器,以及其中P是大于1的整数,K是具有所述滤波器权重的滤波器的数量。10.如权利要求1所述的用于对神经网络中非对称量化数据执行乘法和累加运算的装置,其特征在于,所述乘法与加法硬件单元包括多个乘法与加法硬件元件来并行操作,其中所述乘法与加法硬件元件的数量取决于所述乘法和累加运算的吞吐量需求。11.如权利要求1所述的用于对神经网络中非对...

【专利技术属性】
技术研发人员:林建宏丛培贵陈启明郑孟璿洪圣哲
申请(专利权)人:联发科技股份有限公司
类型:发明
国别省市:中国台湾,71

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

1