CN109740740A - 卷积计算的定点加速方法及装置 - Google Patents

卷积计算的定点加速方法及装置 Download PDF

Info

Publication number
CN109740740A
CN109740740A CN201910005954.4A CN201910005954A CN109740740A CN 109740740 A CN109740740 A CN 109740740A CN 201910005954 A CN201910005954 A CN 201910005954A CN 109740740 A CN109740740 A CN 109740740A
Authority
CN
China
Prior art keywords
matrix
convolutional calculation
fixed point
conversion
input data
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
Application number
CN201910005954.4A
Other languages
English (en)
Inventor
陈志杰
戴宏凯
龚秋棠
傅松林
张伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Meitu Technology Co Ltd
Original Assignee
Xiamen Meitu Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiamen Meitu Technology Co Ltd filed Critical Xiamen Meitu Technology Co Ltd
Priority to CN201910005954.4A priority Critical patent/CN109740740A/zh
Publication of CN109740740A publication Critical patent/CN109740740A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明提供一种卷积计算的定点加速方法及装置,涉及卷积计算技术领域。该卷积计算的定点加速方法,包括:对预设卷积算法中的浮点矩阵进行第一转换操作,得到转换后的定点矩阵;将预设卷积算法中的浮点矩阵替换为定点矩阵,得到替换后的卷积算法;根据替换后的卷积算法、以及输入数据进行卷积计算,获取卷积计算结果;对卷积计算结果进行第二转换操作,获取输入数据的卷积计算结果。本申请实施例中,通过将预设卷积算法中的浮点矩阵替换为定点矩阵得到替换后的卷积算法,由于不再包括浮点矩阵,可以直接应用于定点计算,减少了卷积过程中的乘法运算,可以有效减少定点卷积算法中数据量的访问和计算量,可以提升卷积计算的性能。

Description

卷积计算的定点加速方法及装置
技术领域
本发明涉及卷积计算技术领域,特别涉及一种卷积计算的定点加速方法及装置。
背景技术
卷积神经网络(Convolutional Neural Networks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络,在机器视觉、自然语言处理、语音识别、AI技术的应用等环境中具有非常广泛和深入的应用。
卷积神经网络里面含有大量的卷积计算,卷积计算对于CPU(Central ProcessingUnit,CPU)来说是一个耗时的过程,整个过程中包含数据的访存和计算的过程,特别是为了得到比较好的精度,都是使用浮点数据进行计算。
但使用浮点数据进行计算时,CPU的计算量和数据访问量比较大,CPU进行卷积计算的性能难以保证。
发明内容
本发明的目的在于,针对上述现有技术中的不足,提供一种卷积计算的定点加速方法及装置,能够应用于定点计算,可以减少数据量的访问和计算量。
为实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种卷积计算的定点加速方法,包括:对预设卷积算法中的浮点矩阵进行第一转换操作,得到转换后的定点矩阵;将预设卷积算法中的浮点矩阵替换为定点矩阵,得到替换后的卷积算法;根据替换后的卷积算法、以及输入数据进行卷积计算,获取卷积计算结果;对卷积计算结果进行第二转换操作,获取输入数据的卷积计算结果。
可选地,第一转换操作为左移操作,第二转换操作为右移操作。
可选地,根据替换后的卷积算法、以及输入数据进行卷积计算,获取卷积计算结果,包括:使用定点矩阵对替换后的卷积算法中的卷积核的转换,得到转换后的第一矩阵;对输入数据进行转换,得到转换后的第二矩阵;将第一矩阵与所述第二矩阵进行点乘运算,得到第三矩阵;对第三矩阵进行转换,得到卷积计算结果。
可选地,使用定点矩阵对替换后的卷积算法中的卷积核的转换,得到转换后的第一矩阵,包括:采用定点矩阵、定点矩阵的转置矩阵,对卷积核进行矩阵乘法运算,获取转换后的第一矩阵。
可选地,对输入数据进行转换,得到转换后的第二矩阵,包括:采用输入数据的转换矩阵、以及输入数据的转换矩阵的转置矩阵,对输入数据进行转换计算,得到转换后的第二矩阵。
第二方面,本发明实施例提供了一种卷积计算的定点加速装置,包括:转换模块、替换模块、计算模块以及获取模块;
转换模块,用于对预设卷积算法中的浮点矩阵进行第一转换操作,得到转换后的定点矩阵;替换模块,用于将预设卷积算法中的浮点矩阵替换为定点矩阵,得到替换后的卷积算法;计算模块,用于根据替换后的卷积算法、以及输入数据进行卷积计算,获取卷积计算结果;获取模块,用于对卷积计算结果进行第二转换操作,获取输入数据的卷积计算结果。
可选地,第一转换操作为左移操作,第二转换操作为右移操作。
可选地,计算模块包括:第一计算单元、第二计算单元、第三计算单元及结果计算单元;
第一计算单元,用于使用定点矩阵对替换后的卷积算法中的卷积核的转换,得到转换后的第一矩阵;第二计算单元,用于对输入数据进行转换,得到转换后的第二矩阵;第三计算单元,用于将第一矩阵与第二矩阵进行点乘运算,得到第三矩阵;结果计算单元,用于对第三矩阵进行转换,得到卷积计算结果。
可选地,第一计算单元,具体用于采用定点矩阵、定点矩阵的转置矩阵,对卷积核进行矩阵乘法运算,获取转换后的第一矩阵。
可选地,第二计算单元,具体用于采用输入数据的转换矩阵、以及输入数据的转换矩阵的转置矩阵,对输入数据进行转换计算,得到转换后的第二矩阵。
本发明的有益效果是:
本发明实施例提供的卷积计算的定点加速方法及装置中,通过将预设卷积算法中的浮点矩阵替换为定点矩阵得到替换后的卷积算法,采用该替换后的卷积算法进行定点计算,由于不再包括浮点矩阵,可以直接应用于定点计算,减少了卷积过程中的乘法运算,可以有效减少定点卷积算法中数据量的访问和计算量,可以提升卷积计算的性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种卷积计算的定点加速方法流程示意图;
图2为本发明实施例提供的另一种卷积计算的定点加速方法流程示意图;
图3为本发明实施例提供的又一种卷积计算的定点加速方法流程示意图;
图4为本发明实施例提供的另一种卷积计算的定点加速方法流程示意图;
图5为本发明实施例提供的另一种卷积计算的定点加速方法流程示意图;
图6为本发明实施例提供的一种卷积计算的定点加速装置结构意图;
图7为本发明实施例提供的另一种卷积计算的定点加速装置结构意图;
图8为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
图1为本发明实施例提供的一种卷积计算的定点加速方法流程示意图。该方法的执行主体可以是运行卷积计算的定点加速方法的终端、服务器等设备,本申请在此不作限制。该卷积计算的定点加速方法,如图1所示,包括:
S101、对预设卷积算法中的浮点矩阵进行第一转换操作,得到转换后的定点矩阵。
其中,预设卷积算法指的是卷积算法中包括浮点矩阵的卷积算法,比如winograd算法,winograd算法中包括浮点矩阵,则对winograd算法中的浮点矩阵进行第一转换操作,使得winograd算法中的浮点矩阵转换为定点矩阵,之后采用定点矩阵进行计算。本申请中,以winograd算法为例进行说明,但并仅限于此,在预设卷积算法中包括浮点矩阵时,均可采用该方法,比如,该方法可以应用到卷积神经网络的计算,本申请并不对此进行限制。
第一转换操作指的是可以将浮点矩阵转换为定点矩阵的操作,该第一转换操作可以是矩阵的左移操作或其他操作等,本申请并不对此进行限定。
S102、将预设卷积算法中的浮点矩阵替换为定点矩阵,得到替换后的卷积算法。
在将预设算法中的浮点矩阵替换为定点矩阵后,得到替换后的卷积算法,替换后的卷积算法不再包括浮点矩阵,可以用于定点运算,进而可以减少对于定点的预设卷积算法中数据的访问量和计算量。
S103、根据替换后的卷积算法、以及输入数据进行卷积计算,获取卷积计算结果。
在得到替换后的卷积算法后,将基于该替换后的卷积算法对需要进行卷积的输入数据进行计算,得到采用定点矩阵进行计算的卷积计算结果,该计算过程中减少了卷积过程中的乘法运算,进而可以减少数据量的访问以及计算量。
S104、对卷积计算结果进行第二转换操作,获取输入数据的卷积计算结果。
在S101步骤中,由于是将预设算法中的浮点矩阵转换为定点矩阵得到替换后的卷积算法。采用该替换后的卷积算法对输入数据进行卷积计算得到卷积计算结果时,还应对该卷积计算结果进行第二转换操作,使得获取到的输入数据的卷积计算结果是基于预设卷积算法中得到的卷积计算结果。
其中,第二转换操作指的是可以将定点矩阵转换为浮点矩阵的操作,该第二转换操作可以是矩阵的右移操作或其他操作等,本申请并不对此进行限定。但第二转换操作应与第一转换操作相对应,此处的相对应包括:移位方向、距离等的相对应。比如:第一转换操作为左移一位时,第二转换操作对应的应为右移一位。
综上所述,本申请所提供的卷积计算的定点加速方法,通过将预设卷积算法中的浮点矩阵替换为定点矩阵得到替换后的卷积算法,采用该替换后的卷积算法对输入数据进行卷积计算时,由于不再包括浮点矩阵,可以直接应用于定点计算,减少了卷积过程中的乘法运算,可以有效减少定点卷积算法中数据量的访问和计算量,可以提升卷积计算的性能。
可选地,第一转换操作为左移操作,第二转换操作为右移操作。
第一转换操作与第二转换操作可以为互逆操作,比如第一转换操作可以为左移操作,第二转换操作可为右移操作。第一转换操作为左移操作时,可以将预设卷积算法中的浮点矩阵转换为定点矩阵。第二转换操作为右移操作时,可以将采用替换后的卷积算法计算的卷积结果进行右操作,得到预设卷积算法中实际的卷积计算结果。
其中,右移操作的右移距离应与左移操作的左移距离相对应,比如,将预设卷积算法中的浮点矩阵左移一位时,也就是乘以2;对应的,也应将替换后的卷积算法计算的卷积结果右移一位,也就是除以2;同样地,将预设卷积算法中的浮点矩阵左移二位时,也就是乘以4;对应的,也应将替换后的卷积算法计算的卷积结果右移二位,也就是除以4,本申请在此不再赘述。
当然,本申请并不限定浮点矩阵的左移操作的移动距离,根据实际的浮点矩阵的值,可进行相应的转换,但右移操作的右移距离应与左移操作的左移距离相对应。
本申请中以winograd算法为例进行说明。winograd算法的计算公式为Y=AT*[(G*g*GT)×(B*d*BT)]*A,其中,公式中各参数的含义如下:*表示标准的矩阵乘法,×表示两个矩阵间按元素作点乘,g表示卷积核,d表示输入数据,G表示卷积核的转换矩阵,GT表示G的转置矩阵。B表示输入数据的转换矩阵,BT表示B的转置矩阵。A表示输出转换的矩阵,AT表示A的转置矩阵。其中矩阵A、矩阵B和矩阵G是预先设置的一个常数矩阵,具体地,矩阵A、矩阵B和矩阵G的值如下所示,其中,卷积核g的转换矩阵G,也就是winograd算法中的浮点矩阵。
根据上述winograd算法的计算公式,将winograd算法应用于定点矩阵的计算时,获取其中的浮点矩阵G,对浮点矩阵G进行左移操作,其中,由于浮点矩阵G中的浮点数只包括1/2和-1/2,因此,将该浮点矩阵G左移一位,也就对该浮点矩阵G乘以2,即可将该浮点矩阵G转换为定点矩阵G1,即得到转换后的定点矩阵
根据转换后的定点矩阵G1,将转换后的定点矩阵G1带入winograd算法的计算公式Y=AT*[(G*g*GT)×(B*d*BT)]*A中,并用转换后的定点矩阵G1替换winograd算法的计算公式中的浮点矩阵,即可得到替换后的卷积算法的计算公式为Y1=AT*[(G1*g*G1 T)×(B*d*BT)]*A,下文将对替换后的卷积算法的计算过程进行说明,其中,对于定点矩阵的计算,本申请采用的卷积核为8比特(bit),输入的特征图像(feature map)也是8bit的情况,并针对的卷积是3x3大小、步进为1x1的卷积计算,采用F(2x2,3x3)的计算方式来加速,其中2x2表示一次计算得到的输出大小,3x3表示卷积核的大小。
其中,由于卷积计算结果Y1是基于转换后的定点矩阵G1计算得到的,因此,在得到该卷积计算结果Y1之后,还应对该卷积计算结果Y1进行第二移位操作。第二移位操作的距离依据第一移位操作而定,由于上述浮点矩阵G是通过左移一位得到的定点矩阵G1,因此,第二移位操作对应的应该是右移一位。即将卷积计算结果Y1右移一位即可得到输入数据的卷积计算结果。
图2为本发明实施例提供的另一种卷积计算的定点加速方法流程示意图。可选地,如图2所示,根据替换后的卷积算法、以及输入数据进行卷积计算,获取卷积计算结果,包括:
S201、使用定点矩阵对替换后的卷积算法中的卷积核的转换,得到转换后的第一矩阵。
对于预设算法卷积算法中卷积核的转换,在得到转换后的定点矩阵后,将使用该定点矩阵对替换后的卷积算法中的卷积核进行卷积计算,从而得到该卷积核转换后的第一矩阵。
基于上述winograd算法中卷积核的转换公式,使用定点矩阵G1对替换后的卷积算法中的卷积核g的转换,得到转换后的第一矩阵D,其中,第一矩阵D=G1*g*G1 T,此处以卷积核g的大小为3x3;G1的值可参考上文所述,本申请在此不再赘述;G1 T的值则可根据计算G1得到;得到的第一矩阵D是一个4x4大小的矩阵,其中,
S202、对输入数据进行转换,得到转换后的第二矩阵。
对于预设算法卷积算法中输入数据的转换,则采用该输入数据相应的转换矩阵进行转换,从而得到转换后的第二矩阵。
基于上述winograd算法中,对输入数据d的进行转换,得到转换后的第二矩阵E,其中,第二矩阵E=B*d*BT,B的值可参考上文所述,本申请在此不再赘述。BT的值则可根据计算B得到;此处,以输入数据d是一个4x4大小的矩阵为例进行说明,得到的第二矩阵E是一个4x4大小的矩阵,其中,
其中,输入数据的转换矩阵B以及其的转置矩阵BT,由于其中参数值只有1、-1和0,使得第二矩阵的计算过程中只包括矩阵的加法和减法,可以减少计算过程中的计算量。
此外,由上述第二矩阵的计算公式可知,该转换过程中只需要进行加法、减法以及移位操作,因此可以大大减少卷积计算的复杂度,提升定点卷积的计算性能。
S203、将第一矩阵与第二矩阵进行点乘运算,得到第三矩阵。
依据上述S201、S202步骤在分别得到第一矩阵和第二矩阵之后,将第一矩阵和第二矩阵进行点乘运算,计算得到的结果矩阵为第三矩阵。
其中,以上述得到的第一矩阵D、第二矩阵E为例进行说明,通过第一矩阵D与第二矩阵E进行点乘运算,即可得到第三矩阵F,第三矩阵F的计算公式为F=D×E。其中,第一矩阵D是一个4x4大小的矩阵,D11表示第一矩阵D中第1行第1列的值;D12表示第一矩阵D中第1行第2列的值,第一矩阵D中的其他值则类推,本申请在此不再赘述。第二矩阵为E也是一个4x4大小的矩阵,E11表示第二矩阵E中第1行第1列的值,E12表示第二矩阵E中第1行第2列的值,第二矩阵E中的其他值则类推,本申请在此不再赘述。则第三矩阵的具体计算过程如下所示。
其中,得到的第三矩阵F是一个4x4大小的矩阵,F11表示第三矩阵F中第1行第1列的值,F12表示第三矩阵F中第1行第2列的值,第三矩阵F中的其他值则类推,本申请在此不再赘述。
进而依据上述步骤,可以求得出第三矩阵。
S204、对第三矩阵进行转换,得到卷积计算结果。
对于得到的第三矩阵,对第三矩阵进行转换,将得到第三矩阵的卷积计算结果,也就是预设卷积算法的卷积计算结果。
此处,以得到的第三矩阵F为例进行说明,第三矩阵F是一个4x4大小的矩阵,其中,对第三矩阵F的转换采用转换矩阵A进行转换,即可得到卷积计算结果Y1=AT*F*A,具体的计算过程如下所示。
其中,得到的卷积计算结果矩阵Y是一个2x2大小的矩阵,Y11表示卷积计算结果矩阵Y1中的第1行第1列的值,Y12表示卷积计算结果矩阵Y1中的第1行第2列的值,卷积计算结果矩阵Y1中的其他值则类推,本申请在此不再赘述。进而依据上述步骤,可以求得出卷积计算结果矩阵。
此外,由上述卷积计算结果矩阵Y1的计算过程可知,该转换过程中只需要进行加法、减法以及移位操作,因此可以大大减少卷积计算的复杂度,提升定点卷积的计算性能。
综上所述,在S201步骤中得到转换后的第一矩阵过程中,该转换过程中只需要进行加法、减法以及移位操作;在S202步骤中得到第二矩阵的过程、以及在S204步骤中得到卷积计算结果的过程中,这两个转换过程中只需要进行加法、减法操作。因此,在本申请提供的卷积计算的定点加速方法中,减少了卷积过程中的乘法运算,可以大大减少卷积计算的复杂度,进而提升卷积计算的性能。
图3为本发明实施例提供的又一种卷积计算的定点加速方法流程示意图。可选地,如图3所示,使用定点矩阵对替换后的卷积算法中的卷积核的转换,得到转换后的第一矩阵,包括:
S301、采用定点矩阵、定点矩阵的转置矩阵,对卷积核进行矩阵乘法运算,获取转换后的第一矩阵。
对于在使用定点矩阵对替换后的卷积算法中的卷积核的转换时,采用定点矩阵求得定点矩阵的转换矩阵,进而根据定点矩阵、定点矩阵的转换矩阵,对需要进行卷积计算的卷积核进行矩阵乘法运算,获取转换后的第一矩阵。
比如:在得到定点矩阵G1后,使用定点矩阵G1对替换后的卷积算法中的卷积核g的转换,得到转换后的第一矩阵D=G1*g*G1 T,具体计算过程如下,此处以卷积核g的大小为3x3进行说明,其中,g11表示卷积核矩阵中第一行第一列的值,g12表示卷积核矩阵中第一行第二列的值,卷积核g中的其他值则类推,本申请在此不再赘述。
其中,得到的第一矩阵D是一个4x4大小的矩阵,D11表示第一矩阵第1行第1列的值;D12表示第一矩阵第1行第2列的值,第一矩阵D中的其他值则类推,本申请在此不再赘述。进而依据上述步骤,可以求得出第一矩阵。
图4为本发明实施例提供的另一种卷积计算的定点加速方法流程示意图。可选地,如图4所示,可选地,对输入数据进行转换,得到转换后的第二矩阵,包括:
S401、采用输入数据转换矩阵、以及输入数据转换矩阵的转置矩阵,对输入数据进行转换计算,得到转换后的第二矩阵。
对于输入数据的处理,将根据输入数据的转换矩阵对输入数据进行转换,得到转换后的第二矩阵。
比如:对于winograd算法中,输入数据d是一个4x4大小的矩阵时,此时对输入数据进行转换,得到转换后的第二矩阵E=B*d*BT,具体计算过程如下:
其中,得到的第二矩阵E是一个4x4大小的矩阵,E11表示第二矩阵第1行第1列的值;E12表示第二矩阵第1行第2列的值,第二矩阵E中的其他值则类推,本申请在此不再赘述。进而依据上述步骤,可以求得出第二矩阵。
同时,由上述第二矩阵E的计算过程可知,该转换过程中也只需要进行加法、减法以及移位操作,因此可以大大减少卷积计算的复杂度,提升定点卷积的计算性能。
图5为本发明实施例提供的另一种卷积计算的定点加速方法流程示意图。可选地,如图5所示,该卷积计算的定点加速方法包括:
S501、对预设卷积算法中的浮点矩阵进行第一转换操作,得到转换后的定点矩阵。
S502、将预设卷积算法中的浮点矩阵替换为定点矩阵,得到替换后的卷积算法。
S503、采用定点矩阵、定点矩阵的转置矩阵,对卷积核进行矩阵乘法运算,获取转换后的第一矩阵。
S504、采用输入数据转换矩阵、以及输入数据转换矩阵的转置矩阵,对输入数据进行转换计算,得到转换后的第二矩阵。
S505、将第一矩阵与第二矩阵进行点乘运算,得到第三矩阵。
S506、对第三矩阵进行转换,得到卷积计算结果。
S507、对卷积计算结果进行第二转换操作,获取输入数据的卷积计算结果。
对于本应用实例中所描述的该卷积计算的定点加速方法所能具备的有益效果,与本申请在前述方法实施例中所述相同之处,本申请在此不再赘述。
图6为本发明实施例提供的一种卷积计算的定点加速装置结构意图。可选地,如图6所示,该卷积计算的定点加速装置,包括:转换模块610、替换模块620、计算模块630以及获取模块640。
转换模块610,用于对预设卷积算法中的浮点矩阵进行第一转换操作,得到转换后的定点矩阵。
替换模块620,用于将预设卷积算法中的浮点矩阵替换为定点矩阵,得到替换后的卷积算法。
计算模块630,用于根据替换后的卷积算法、以及输入数据进行卷积计算,获取卷积计算结果。
获取模块640,用于对卷积计算结果进行第二转换操作,获取输入数据的卷积计算结果。
可选地,第一转换操作为左移操作,第二转换操作为右移操作。
图7为本发明实施例提供的另一种卷积计算的定点加速装置结构意图。可选地,如图7所示,计算模块630包括:第一计算单元631、第二计算单元632、第三计算单元633及结果计算单元634。
第一计算单元631,用于使用定点矩阵对替换后的卷积算法中的卷积核的转换,得到转换后的第一矩阵。
第二计算单元632,用于对输入数据进行转换,得到转换后的第二矩阵。
第三计算单元633,用于将第一矩阵与第二矩阵进行点乘运算,得到第三矩阵。
结果计算单元634,用于对第三矩阵进行转换,得到卷积计算结果。
可选地,第一计算单元631,具体用于采用定点矩阵、定点矩阵的转置矩阵,对卷积核进行矩阵乘法运算,获取转换后的第一矩阵。
可选地,第二计算单元632,具体用于采用输入数据的转换矩阵、以及输入数据的转换矩阵的转置矩阵,对输入数据进行转换计算,得到转换后的第二矩阵。
需要说明的是,本实施例提供卷积计算的定点加速装置装置,其基本原理及产生的技术效果与前述对应的方法实施例相同,为简要描述,本实施例中未提及部分,可参考方法实施例中的相应内容,本申请在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图8为本发明实施例提供的一种电子设备的结构示意图。可选地,如图8所示,该电子设备,包括:处理器710、存储器720和总线730,存储器720存储有处理器710可执行的机器可读指令,当电子设备运行时,处理器710与存储器720之间通过总线730通信,处理器710执行机器可读指令,可以实现上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本发明还提供一计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器读取并运行时,可以实现上述方法实施例。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种卷积计算的定点加速方法,其特征在于,包括:
对预设卷积算法中的浮点矩阵进行第一转换操作,得到转换后的定点矩阵;
将所述预设卷积算法中的浮点矩阵替换为所述定点矩阵,得到替换后的卷积算法;
根据替换后的卷积算法、以及输入数据进行卷积计算,获取卷积计算结果;
对所述卷积计算结果进行第二转换操作,获取所述输入数据的卷积计算结果。
2.根据权利要求1所述方法,其特征在于,所述第一转换操作为左移操作,所述第二转换操作为右移操作。
3.根据权利要求1所述方法,其特征在于,所述根据替换后的卷积算法、以及输入数据进行卷积计算,获取卷积计算结果,包括:
使用所述定点矩阵对所述替换后的卷积算法中的卷积核的转换,得到转换后的第一矩阵;
对输入数据进行转换,得到转换后的第二矩阵;
将所述第一矩阵与所述第二矩阵进行点乘运算,得到第三矩阵;
对所述第三矩阵进行转换,得到所述卷积计算结果。
4.根据权利要求3所述方法,其特征在于,所述使用所述定点矩阵对所述替换后的卷积算法中的卷积核的转换,得到转换后的第一矩阵,包括:
采用所述定点矩阵、所述定点矩阵的转置矩阵,对所述卷积核进行矩阵乘法运算,获取转换后的第一矩阵。
5.根据权利要求3所述方法,其特征在于,所述对输入数据进行转换,得到转换后的第二矩阵,包括:
采用输入数据的转换矩阵、以及所述输入数据的转换矩阵的转置矩阵,对所述输入数据进行转换计算,得到转换后的第二矩阵。
6.一种卷积计算的定点加速装置,其特征在于,包括:转换模块、替换模块、计算模块以及获取模块;
所述转换模块,用于对预设卷积算法中的浮点矩阵进行第一转换操作,得到转换后的定点矩阵;
所述替换模块,用于将所述预设卷积算法中的浮点矩阵替换为所述定点矩阵,得到替换后的卷积算法;
所述计算模块,用于根据替换后的卷积算法、以及输入数据进行卷积计算,获取卷积计算结果;
所述获取模块,用于对所述卷积计算结果进行第二转换操作,获取所述输入数据的卷积计算结果。
7.根据权利要求6所述装置,其特征在于,所述第一转换操作为左移操作,所述第二转换操作为右移操作。
8.根据权利要求6所述装置,其特征在于,所述计算模块包括:第一计算单元、第二计算单元、第三计算单元及结果计算单元;
所述第一计算单元,用于使用所述定点矩阵对所述替换后的卷积算法中的卷积核的转换,得到转换后的第一矩阵;
所述第二计算单元,用于对输入数据进行转换,得到转换后的第二矩阵;
所述第三计算单元,用于将所述第一矩阵与所述第二矩阵进行点乘运算,得到第三矩阵;
所述结果计算单元,用于对所述第三矩阵进行转换,得到所述卷积计算结果。
9.根据权利要求8所述装置,其特征在于,所述第一计算单元,具体用于采用所述定点矩阵、所述定点矩阵的转置矩阵,对所述卷积核进行矩阵乘法运算,获取转换后的第一矩阵。
10.根据权利要求8所述装置,其特征在于,所述第二计算单元,具体用于采用输入数据的转换矩阵、以及所述输入数据的转换矩阵的转置矩阵,对所述输入数据进行转换计算,得到转换后的第二矩阵。
CN201910005954.4A 2019-01-03 2019-01-03 卷积计算的定点加速方法及装置 Pending CN109740740A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910005954.4A CN109740740A (zh) 2019-01-03 2019-01-03 卷积计算的定点加速方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910005954.4A CN109740740A (zh) 2019-01-03 2019-01-03 卷积计算的定点加速方法及装置

Publications (1)

Publication Number Publication Date
CN109740740A true CN109740740A (zh) 2019-05-10

Family

ID=66363247

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910005954.4A Pending CN109740740A (zh) 2019-01-03 2019-01-03 卷积计算的定点加速方法及装置

Country Status (1)

Country Link
CN (1) CN109740740A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111240746A (zh) * 2020-01-12 2020-06-05 苏州浪潮智能科技有限公司 一种浮点数据反量化及量化的方法和设备
WO2021073638A1 (zh) * 2019-10-18 2021-04-22 华为技术有限公司 运行神经网络模型的方法、装置和计算机设备
CN113780523A (zh) * 2021-08-27 2021-12-10 深圳云天励飞技术股份有限公司 图像处理方法、装置、终端设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107909583A (zh) * 2017-11-08 2018-04-13 维沃移动通信有限公司 一种图像处理方法、装置及终端
CN108765247A (zh) * 2018-05-15 2018-11-06 腾讯科技(深圳)有限公司 图像处理方法、装置、存储介质及设备
US20180336462A1 (en) * 2017-05-16 2018-11-22 Samsung Electronics Co., Ltd. Optimized neural network input stride method and apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180336462A1 (en) * 2017-05-16 2018-11-22 Samsung Electronics Co., Ltd. Optimized neural network input stride method and apparatus
CN107909583A (zh) * 2017-11-08 2018-04-13 维沃移动通信有限公司 一种图像处理方法、装置及终端
CN108765247A (zh) * 2018-05-15 2018-11-06 腾讯科技(深圳)有限公司 图像处理方法、装置、存储介质及设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LIQIANG LU ET.AL: "Evaluating Fast Algorithms for Convolutional Neural Networks on FPGAs", 《2017 IEEE 25TH ANNUAL INTERNATIONAL SYMPOSIUM ON FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES》 *
王海蓉: "异构网络视频转码系统设计与核心开发", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021073638A1 (zh) * 2019-10-18 2021-04-22 华为技术有限公司 运行神经网络模型的方法、装置和计算机设备
CN111240746A (zh) * 2020-01-12 2020-06-05 苏州浪潮智能科技有限公司 一种浮点数据反量化及量化的方法和设备
CN111240746B (zh) * 2020-01-12 2023-01-10 苏州浪潮智能科技有限公司 一种浮点数据反量化及量化的方法和设备
CN113780523A (zh) * 2021-08-27 2021-12-10 深圳云天励飞技术股份有限公司 图像处理方法、装置、终端设备及存储介质
CN113780523B (zh) * 2021-08-27 2024-03-29 深圳云天励飞技术股份有限公司 图像处理方法、装置、终端设备及存储介质

Similar Documents

Publication Publication Date Title
CN109165732B (zh) 神经网络处理装置及其执行向量乘加指令的方法
EP3373210B1 (en) Transposing neural network matrices in hardware
CN109063825B (zh) 卷积神经网络加速装置
EP3298545B1 (en) Vector computation unit in a neural network processor
Vun et al. A new RNS based DA approach for inner product computation
Kwak et al. Linear algebra
CN109740740A (zh) 卷积计算的定点加速方法及装置
US11042360B1 (en) Multiplier circuitry for multiplying operands of multiple data types
CN109767000A (zh) 基于Winograd算法的神经网络卷积方法及装置
Wang et al. Efficient convolution architectures for convolutional neural network
CN107656899A (zh) 一种基于fpga的模板卷积实现方法和系统
CN107423816A (zh) 一种多计算精度神经网络处理方法和系统
CN108897716B (zh) 通过存储器读写操作来缩减计算量的数据处理装置及方法
US20230068450A1 (en) Method and apparatus for processing sparse data
US20180005113A1 (en) Information processing apparatus, non-transitory computer-readable storage medium, and learning-network learning value computing method
CN114138231B (zh) 执行矩阵乘法运算的方法、电路及soc
CN115186802A (zh) 基于卷积神经网络的块稀疏方法、装置及处理单元
CN115238863A (zh) 一种卷积神经网络卷积层的硬件加速方法、系统及应用
CN112836806B (zh) 一种数据格式调整方法、装置、计算机设备和存储介质
CN109102069A (zh) 一种基于查找表的快速图像卷积运算实现方法
CN109902821B (zh) 一种数据处理方法、装置及相关组件
Adamski et al. Design of digital systems and devices
US9825614B2 (en) Elimination method for common sub-expression
CN104020449B (zh) 一种合成孔径雷达干涉相位图滤波方法和设备
Huynh Evaluation of artificial neural network architectures for pattern recognition on fpga

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190510

RJ01 Rejection of invention patent application after publication