CN107516131A - 卷积计算的加速方法和装置、电子设备和存储介质 - Google Patents
卷积计算的加速方法和装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN107516131A CN107516131A CN201710538332.9A CN201710538332A CN107516131A CN 107516131 A CN107516131 A CN 107516131A CN 201710538332 A CN201710538332 A CN 201710538332A CN 107516131 A CN107516131 A CN 107516131A
- Authority
- CN
- China
- Prior art keywords
- format character
- matrix
- character matrix
- plane
- characteristic
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Pure & Applied Mathematics (AREA)
- Biophysics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Complex Calculations (AREA)
Abstract
本发明实施例公开了一种卷积计算的加速方法和装置、电子设备和存储介质,其中,方法包括:将输入卷积层的特征平面进行格式整理得到第一格式特征矩阵,所述第一格式特征矩阵按照预设的格式进行排布,每个所述特征平面对应一个所述第一格式特征矩阵;对所述输入卷积层的特征平面进行计算得到第二格式特征矩阵;将所述第一格式特征矩阵与所述第二格式特征矩阵执行乘累加,得到第三格式特征矩阵;对所述第三格式特征矩阵中的数据做累加,得到卷积层的输出特征平面。本实施例通过格式转换极大的缩减了卷积层需要执行的乘加操作次数,由于乘加操作次数减少,实现了卷积层卷积算法的加速。
Description
技术领域
本发明涉及图像处理技术,尤其是一种卷积计算的加速方法和装置、电子设备和计算机存储介质。
背景技术
卷积神经网络现在已经得到了广泛的应用,卷积神经网络中的卷积层计算量很大,如何快速的完成卷积已经成为一个重要的问题。卷积层的输入是N个 feature map,输出是M个feature map,其计算公式如公式(1)所示:
公式(1)中的of(i)表示第i个输出feature map,而if(j)表示第j个输出featuremap, k(i,j)表示一个卷积系数窗口。Ifj是一个二维数据,维度是IH*IW,K(i,j)是一个二维的数组,维度是KH*KW,ofi是一个二维数组,维度是OH*OW。Partilal_of(i,j)表示一个二维数组,是Ifj和K(i,j)做卷积的结果。
具体计算公式如公式(2)所示:
Partilal_of(i,j)(ox,oy)表示的是Partilal_of(i,j)中的第(ox,oy)个数据,ox/oy是输出 feature map中的坐标。卷积窗口的大小是KH/KW,kx/ky是卷积窗口中的坐标。在卷积神经网络中,KH=KW=3的情况很多,这种算法通常被称为3x3卷积算法。
发明内容
本发明实施例所要解决的一个技术问题是:提供一种对卷积神经网络中卷积算法进行加速的卷积计算的加速技术。
本发明实施例提供的一种卷积计算的加速方法,包括:
将输入卷积层的特征平面进行格式整理得到第一格式特征矩阵,所述第一格式特征矩阵按照预设的格式进行排布,每个所述特征平面对应一个所述第一格式特征矩阵;
对所述输入卷积层的特征平面进行计算得到第二格式特征矩阵;
将所述第一格式特征矩阵与所述第二格式特征矩阵执行乘累加,得到第三格式特征矩阵;
对所述第三格式特征矩阵中的数据做累加,得到卷积层的输出特征平面。
基于上述方法的另一实施例中,所述将输入卷积层的特征平面进行格式整理得到第一格式特征矩阵,包括:
基于输入卷积层的特征平面获得对应所述特征平面的平面特征矩阵;
按照预设的方格在所述平面特征矩阵中顺序移动,依次获取每个预设的方格中的特征矩阵,将得到的所有特征矩阵连接得到第一格式特征矩阵。
基于上述方法的另一实施例中,所述对第三格式特征矩阵中的数据做累加,得到卷积层的输出特征平面,包括:
将得到的第三格式特征矩阵中的数据根据预设方式进行累加,得到累加特征矩阵,累加次数加一,判断累加次数是否大于或等于预设的累加次数;
当累加次数大于或等于预设的累加次数,得到卷积层的输出特征平面;
当累加次数小于预设的累加次数,将累加特征矩阵作为输入卷积层的特征平面,重复执行从特征平面到第三格式特征矩阵的累加过程。
基于上述方法的另一实施例中,所述将得到的第三格式特征矩阵中的数据根据预设方式进行累加,包括:
将得到的第三格式特征矩阵与一个预设的常数矩阵及所述预设的常数矩阵的转置做矩阵乘法,得到格式变化后的累加特征矩阵。
基于上述方法的另一实施例中,所述第一格式特征矩阵与所述第二格式特征矩阵的行数和列数相同。
基于上述方法的另一实施例中,将所述第一格式特征矩阵与所述第二格式特征矩阵执行乘累加,包括:
将所述第一格式特征阵列与所述第二格式阵列做点乘,将点乘获得的阵列与上一次执行乘累加获得的第三格式特征阵列相加,得到对应本次乘累加的第三格式阵列。
基于上述方法的另一实施例中,对所述输入卷积层的特征平面进行计算得到第二格式特征矩阵,包括:
基于输入卷积层的特征平面获得对应所述特征平面的平面特征矩阵;
将所述平面特征矩阵与一个预设的常数矩阵及所述预设的常数矩阵的转置做矩阵乘法,通过矩阵乘法得到第二格式特征矩阵。
根据本发明实施例的另一个方面,提供的一种卷积计算的加速装置,包括:
数据交换单元,用于将输入卷积层的特征平面进行格式整理得到第一格式特征矩阵,所述第一格式特征矩阵按照预设的格式进行排布,每个所述特征平面对应一个所述第一格式特征矩阵;
广播引擎单元,用于对所述输入卷积层的特征平面进行计算得到第二格式特征矩阵;
乘累加单元,用于将所述第一格式特征矩阵与所述第二格式特征矩阵执行乘累加,得到第三格式特征矩阵;
求和单元,用于对所述第三格式特征矩阵中的数据做累加,得到卷积层的输出特征平面。
根据本发明实施例的另一个方面,提供的一种电子设备,设置有如上所述的卷积计算的加速装置。
根据本发明实施例的另一个方面,提供的一种电子设备,包括:存储器,用于存储可执行指令;
以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成如上所述卷积计算的加速方法的操作。
根据本发明实施例的另一个方面,提供的一种计算机存储介质,用于存储计算机可读取的指令,所述指令被执行时执行如上所述卷积计算的加速方法的操作。
基于本发明上述实施例提供的一种卷积计算的加速方法和装置、电子设备和计算机存储介质,将输入卷积层的特征平面进行格式整理得到第一格式特征矩阵,进行格式整理是为了后续与其他特征矩阵进行计算;对输入卷积层的特征平面进行计算得到第二格式特征矩阵,将第一格式特征矩阵与第二格式特征矩阵执行乘累加,得到第三格式特征矩阵,通过乘累加就获得了输出特征平面的部分数据;对第三格式特征矩阵中的数据做累加,得到卷积层的输出特征平面,通过对乘累加得到的部分数据进行累加就得到了卷积层的完整输出特征平面;本实施例通过格式转换极大的缩减了卷积层需要执行的乘加操作次数,由于乘加操作次数减少,实现了卷积层卷积算法的加速。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1为现有卷积层对输入特征平面处理并输出的示意图。
图2为卷积层将输入特征平面切成4个tile之后的计算示意图。
图3为本发明卷积计算的加速方法一个实施例的流程图。
图4为本发明卷积计算的加速方法另一个实施例的流程图。
图5为本发明卷积计算的加速方法又一个实施例的流程图。
图6为本发明卷积计算的加速方法一个具体示例的格式整理示意图。
图7为本发明卷积计算的加速装置一个实施例的结构示意图。
图8为本发明卷积计算的加速装置另一个实施例的结构示意图。
图9为本发明卷积计算的加速装置又一个实施例的结构示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
在卷积神经网络中的卷积层中常用3x3卷积算法。对于卷积计算的加速,目前比较流行的算法是winograd算法。该算法针对公式(2)进行优化,将Partilal_of(i,j)划分成若干个2x2的tile方格,每个tile方格的计算需要用到Ifj中的一个4x4的窗口。图1为现有卷积层对输入特征平面处理并输出的示意图。对于卷积层中的特征平面,原始计算方式如图1所示。图2为卷积层将输入特征平面切成4个tile 之后的计算示意图。如图2所示,其中每个tile的计算方式如公式(3)所示:
t_Partial_of(i,j)=AT*[[G*K(i,j)*GT]X[BT*(t_ifj)*B]]*A
*表示标准的矩阵乘法,X表示两个矩阵间按元素做点乘,AT表示A的转置
公式(3)中的*表示矩阵乘法,X表示两个矩阵间按元素做点乘,这里对于矩阵乘法和点乘的表示方法适用于本发明全部内容,A是一个预先设置好的常数矩阵,AT表示A的转置,其中:t_Partial_of(i,j)是Partilal_of(i,j)中的一个2x2的tile,而 t_ifj是Ifj中与之对应的4x4tile。B是一个预先设置好的常数矩阵,而BT表示B矩阵的转置,G也是预先设置好的一个常数矩阵。
公式(3)中之计算了Partilal_of(i,j)中的一个tile,结合公式(1),计算of(i)的一个tile t_ofi的公式如公式(4)所示,其中t_ofj是一个输出feature map中的一个子窗口,大小是2x2。
在实际的神经网络部署过程中,可以在初始化阶段将上面等式(3)中的 [G*K(i,j)*GT]计算出来并进行存储,其中,G是等式(3)中的常数矩阵,GT是G的转置,K(I,j)链接第i个输入feature map和第j个输出feature map之间的kernel;以后每次运行时不用再计算,而[BT*(t_ifj)*B]则只需要计算一次,其中:B是等式(3) 中的结果,BT是B的转置,t_ifj是一个输出feature map中的一个子窗口,大小是4x4;计算的结果在计算所有的t_ofi(i=0….M-1)时都能使用。所以,在利用(4)计算卷积层时,唯一需要大量进行的运算就是两个矩阵之间按元素的点乘。其中,t_Rj是计算过程中得到的一个4x4的二维数组。
按照公式(1)和公式(2)的方式计算窗口为3x3的卷积层,计算一个卷积层的乘加操作次数是M*OH*OW*N*3*3。
而按照公式(3)和公式(4)的方式计算窗口为3x3的卷积层,每一个OH*OW的output feature map可以划分为(OH+1)/2*(OW+1)/2个tile,
所以共计需要的乘加操作次数是M*(OH+1)/2*(OW+1)/2*N*16= M*(OH+1)*(OW+1)*N*4,对比M*OH*OW*N*3*3和M*(OH+1)*(OW+1)*N*4 可以发现,采用winograd算法对卷积层加速后,卷积算法的复杂度降低了一半左右(OH/OW较大的情况)。
图3为本发明卷积计算的加速方法一个实施例的流程图。如图3所示,该实施例方法包括:
步骤301,将输入卷积层的feature map特征平面进行格式整理得到第一格式特征矩阵。
其中,第一格式特征矩阵按照预设的格式进行排布,每个feature map特征平面对应一个第一格式特征矩阵;可以同时处理一个或多个输入卷积层的特征平面,多数情况下是多个输入的特征平面,处理多个特征平面时,分别将每个特征平面转换为一个第一格式特征矩阵,每个第一格式特征矩阵的格式相同。
步骤303,对输入卷积层的feature map特征平面进行计算得到第二格式特征矩阵。
对于输入到卷积层的多个特征平面,分别进行计算,得到对应第一格式特征矩阵个数的第二格式特征矩阵,其中,第二格式特征矩阵的格式与第一格式特征矩阵的格式相同,其格式设置是为了实现后续将第一格式矩阵与第二格式矩阵进行点乘,由点乘是对两个矩阵中相同位置的数据进行相乘,因此,需要进行点乘的两个矩阵格式相同。上述步骤301和步骤303并不存在先后顺序,可以先执行步骤301,也可以先执行步骤303。
步骤304,将第一格式特征矩阵与第二格式特征矩阵执行乘累加,得到第三格式特征矩阵。
将第一格式特征矩阵与第二格式特征矩阵执行乘累加,实现的是对应公式(4) 中t_R的获取,该步骤中所指第三格式特征矩阵即对应t_R。
步骤305,对第三格式特征矩阵中的数据做累加,得到卷积层的输出特征平面。
通过以上步骤304中获取的对应公式(4)中的t_R,进行累加,获得对应公式(4)中的t_ofi,此时得到的t_ofi即为卷积层的输出特征平面。步骤304和步骤305可以同时进行,当步骤305基于上一个t_R计算t_ofi时,步骤304同时在计算下一个t_R。
基于本发明上述实施例提供的一种卷积计算的加速方法,将输入卷积层的特征平面进行格式整理得到第一格式特征矩阵,进行格式整理是为了后续与其他特征矩阵进行计算;对输入卷积层的特征平面进行计算得到第二格式特征矩阵,将第一格式特征矩阵与第二格式特征矩阵执行乘累加,得到第三格式特征矩阵,通过乘累加就获得了输出特征平面的部分数据;对第三格式特征矩阵中的数据做累加,得到卷积层的输出特征平面,通过对乘累加得到的部分数据进行累加就得到了卷积层的完整输出特征平面;本实施例通过格式转换极大的缩减了卷积层需要执行的乘加操作次数,由于乘加操作次数减少,实现了卷积层卷积算法的加速。
图4为本发明卷积计算的加速方法另一个实施例的流程图。如图4所示,该实施例方法包括:
步骤401,基于输入卷积层的feature map特征平面获得对应feature map特征平面的平面特征矩阵。
将获得的平面特征矩阵进行保存,在后续操作过程中,只需调取该平面特征矩阵即可。
步骤402,按照预设的方格在平面特征矩阵中顺序移动,依次获取每个预设的方格中的特征矩阵,将得到的所有特征矩阵连接得到第一格式特征矩阵。
通过预设的方格将现有格式下的平面特征矩阵转换成所需格式的第一格式特征矩阵。
步骤403,对对应feature map特征平面的平面特征矩阵进行计算得到第二格式特征矩阵。
其中,第二格式特征矩阵的格式与第一格式特征矩阵的格式相同,其格式设置是为了实现后续将第一格式矩阵与第二格式矩阵进行点乘,由点乘是对两个矩阵中相同位置的数据进行相乘,因此,需要进行点乘的两个矩阵格式相同。以上基于平面特征矩阵获得第一特征矩阵和第二特征矩阵可以同时进行,也可以先后进行,先获得第一特征矩阵或先获得第二特征矩阵都可以,对本实施例后续操作没有影响。
步骤304,将第一格式特征矩阵与第二格式特征矩阵执行乘累加,得到第三格式特征矩阵。
将第一格式特征矩阵与第二格式特征矩阵执行乘累加,实现的是对应公式(4) 中t_R的获取,该步骤中所指第三格式特征矩阵即对应t_R。
步骤305,对第三格式特征矩阵中的数据做累加,得到卷积层的输出特征平面。
本实施例首先基于输入卷积层的特征平面获得平面特征矩阵,保存该平面特征矩阵以备后续操作,以该平面特征矩阵为基础,分别获得格式相同的第一格式特征矩阵和第二格式特征矩阵,由于第一格式特征矩阵和第二格式特征矩阵的格式相同,因此,对第一格式特征矩阵和第二格式特征矩阵执行乘累加的过程中,需要执行的乘加操作次数大大降低,相对现有技术和winograd算法都极大的减少了乘加操作次数,进而实现了对卷积计算的加速。
图5为本发明卷积计算的加速方法又一个实施例的流程图。如图5所示,该实施例方法包括:
步骤301,将输入卷积层的feature map特征平面进行格式整理得到第一格式特征矩阵。
其中,第一格式特征矩阵按照预设的格式进行排布,每个特征平面对应一个第一格式特征矩阵;可以同时处理一个或多个输入卷积层的特征平面,多数情况下是多个输入的特征平面,处理多个特征平面时,分别将每个特征平面转换为一个第一格式特征矩阵,每个第一格式特征矩阵的格式相同。
步骤303,对输入卷积层的feature map特征平面进行计算得到第二格式特征矩阵。
对于输入到卷积层的多个特征平面,分别进行计算,得到对应第一格式特征矩阵个数的第二格式特征矩阵,其中,第二格式特征矩阵的格式与第一格式特征矩阵的格式相同,其格式设置是为了实现后续将第一格式矩阵与第二格式矩阵进行点乘,由点乘是对两个矩阵中相同位置的数据进行相乘,因此,需要进行点乘的两个矩阵格式相同。上述步骤301和步骤303并不存在先后顺序,可以先执行步骤301,也可以先执行步骤303。
步骤304,将第一格式特征矩阵与第二格式特征矩阵执行乘累加,得到第三格式特征矩阵。
步骤505,将得到的第三格式特征矩阵中的数据根据预设方式进行累加,得到累加特征矩阵,累加次数加一。
步骤506,判断累加次数是否大于或等于预设的累加次数;如果是,得到卷积层的输出特征平面;否则,将累加特征矩阵作为输入卷积层的特征平面,执行步骤301。
本实施例是针对输入卷积层的特征平面为多个时,此时设定预设的累加次数为特征平面的个数,每执行一次累加,就是对一个特征平面进行卷积处理,每次累加完成,判断是否已经完成对所有特征平面的处理,如果完成,将输出完整的输出特征平面。
在本发明卷积计算的加速方法上述实施例的一个具体示例中,操作505具体可以包括:
将得到的第三格式特征矩阵与一个预设的常数矩阵及预设的常数矩阵的转置做矩阵乘法,得到格式变化后的累加特征矩阵。
本实施例提供的过程可对应公式(4)对应的t_ofi=AT*(t_Ri)*A,其中第三格式特征矩阵对应t_Ri,其中A为一个预设的常数矩阵,而AT是A的转置,此时得到的累加特征矩阵t_ofi就是对应一个输入特征平面的一个输出特征平面。
在本发明卷积计算的加速方法的还一个实施例中,操作304具体包括:
将第一格式特征阵列与第二格式阵列做点乘,将点乘获得的阵列与上一次执行乘累加获得的第三格式特征阵列相加,得到对应本次乘累加的第三格式阵列。
其中,第一格式特征矩阵与第二格式特征矩阵的行数和列数相同。
本实施例中,由于需要对第一格式特征阵列与第二格式阵列做点乘,因此,第一格式特征矩阵与第二格式特征矩阵的行数和列数必须相同,所以需要采用格式变换和矩阵计算,这些操作都是为第一格式特征阵列与第二格式阵列做点乘提供服务,而两个矩阵做点乘大大缩减了计算量,使计算速度大幅提升。而其中所指的累加,在首次进行累加时,由于没有上一次执行乘累加的阵列,因此,第一次乘累加中加零,代表首次乘累加没有累加对象,第二次乘累加时,累加的是上一次第一格式特征阵列与第二格式阵列执行点乘得到的阵列。
在本发明卷积计算的加速方法的再一个实施例中,操作303具体包括:
基于输入卷积层的feature map特征平面获得对应特征平面的平面特征矩阵;
将平面特征矩阵与一个预设的常数矩阵及预设的常数矩阵的转置做矩阵乘法,通过矩阵乘法得到第二格式特征矩阵。
本实施例可以看做是在步骤301之前,先执行步骤303,此时,需要先对输入的特征平面获取平面特征矩阵,基于平面特征矩阵获得第二格式特征矩阵的过程对应公式(4)中的BT*(t_ifj)*B,其中平面特征矩阵对应该式中的t_ifj,而第二格式特征矩阵对应BT*(t_ifj)*B,其中B为预设的常数矩阵,BT为预设的常数矩阵的转置。
本发明卷积计算的加速方法,在具体实施过程中,可以包括如下的内容:
1)整理输入feature map特征平面:
原始的feature map特征平面中的神经元是按照先行后列的方式存储的,而公式(3)中神经元要组织成4x4tile方格参与计算。每个输出tile的大小是2x2,而每个输入tile的大小是4x4,所以要把输入feature map按照整理4x4tile的方式进行排布。
每个神经元的位宽是32比特,所以local mem中的每个字可以存放2个水平方向上相邻的输入tile。举例说明:图6为本发明卷积计算的加速方法一个具体示例的格式整理示意图。假设输入feature map为的大小6x6,那么输出feature map 的大小为4x4,可以划分成2x2个tile,每个tile都是一个矩形框,输出feature map 中的tile的大小是2x2,对应的输入feature map中的tile是4x4。如图6所示,上面的6x6方格表示输入feature map,6x6的输入feature map可以划分成4个4x4 的tile,tile0的左上角为(0,0),右下角是(3,3),tile1的左上角是(0,2),右下角是 (3,5),tile2的左上角(2,0),右下角是(5,3),tile 3的左上角是(2,2),右下角是(5,5) (以上的坐标中第一个分量表示行坐标,第二个分量表示列坐标)。下面的部分每一行表示local mem中的一个word,每个word可以存放32个数据,所以可以存储两个4x4的输入tile,第一行存储的是tile0和tile1,第二行存储的是tile2和tile3。
每个输入feature map存储在一块local mem局部存储单元中,每块local mem 局部存储单元中都在进行着相同的整理工作,整理所需要的控制信号是从BDC 广播引擎单元中广播出来的,在整理完成后,所有的输入feature map都被整理好了。
2)利用MAC_array乘累加单元计算公式(4)中的t_R:
在t_if整理出来之后,BDC广播引擎单元会将它读取出来,BDC广播引擎单元中由相关的并行计算逻辑计算出BT*t_if*B,然后将BT*t_if*B广播到所有的MAC array乘累加单元中,第i个MAC array乘累加单元计算第i个t_R。
系数tile[G*K(i,j)*GT]已经预先通过软件算好并存储在local mem局部存储单元中,此时只需要从local mem中读出来,在MAC array乘累加单元中与广播来的[BT*t_if*B]做点乘并累加到乘累加器上。每个t_R是4x4的tile,每个 MAC_array有32个乘累加器,所以可以同时计算两个t_R。
3)利用Adder tree求和单元计算(4)中的t_of:
在完成t_R的计算之后,现在需要要计算t_of,计算公式如公式(5)所示:
可以看出每个t_of中的四个神经元都是由t_R中的数据累加而得到,所以可以使用adder tree进行累加,累加的结果再写回到local mem中。由于2)中计算出了两个t_R,所以本步骤中需要计算两个t_of,共计8个输出神经元。
注意3)和2)这两个步骤可以并行完成。当MAC Array乘累加单元正在计算后面的两个t_of所对应的t_R时,Adder tree求和单元正在计算前面的两个t_of。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图7为本发明卷积计算的加速装置一个实施例的结构示意图。该实施例的装置可用于实现本发明上述各方法实施例。如图7所示,该实施例的装置包括:
数据交换单元72,用于将输入卷积层的feature map特征平面进行格式整理得到第一格式特征矩阵。
其中,第一格式特征矩阵按照预设的格式进行排布,每个特征平面对应一个所述第一格式特征矩阵;可以同时处理一个或多个输入卷积层的特征平面,多数情况下是多个输入的特征平面,处理多个特征平面时,分别将每个特征平面转换为一个第一格式特征矩阵,每个第一格式特征矩阵的格式相同。
广播引擎单元73,用于对输入卷积层的feature map特征平面进行计算得到第二格式特征矩阵。
对于输入到卷积层的多个特征平面,分别进行计算,得到对应第一格式特征矩阵个数的第二格式特征矩阵,其中,第二格式特征矩阵的格式与第一格式特征矩阵的格式相同,其格式设置是为了实现后续将第一格式矩阵与第二格式矩阵进行点乘,由点乘是对两个矩阵中相同位置的数据进行相乘,因此,需要进行点乘的两个矩阵格式相同。
乘累加单元74,用于将第一格式特征矩阵与第二格式特征矩阵执行乘累加,得到第三格式特征矩阵。
将第一格式特征矩阵与第二格式特征矩阵执行乘累加,实现的是对应公式(4) 中t_R的获取,该步骤中所指第三格式特征矩阵即对应t_R。
求和单元75,用于对第三格式特征矩阵中的数据做累加,得到卷积层的输出特征平面。
基于本发明上述实施例提供的一种卷积计算的加速装置,将输入卷积层的特征平面进行格式整理得到第一格式特征矩阵,进行格式整理是为了后续与其他特征矩阵进行计算;对输入卷积层的特征平面进行计算得到第二格式特征矩阵,将第一格式特征矩阵与第二格式特征矩阵执行乘累加,得到第三格式特征矩阵,通过乘累加就获得了输出特征平面的部分数据;对第三格式特征矩阵中的数据做累加,得到卷积层的输出特征平面,通过对乘累加得到的部分数据进行累加就得到了卷积层的完整输出特征平面;本实施例通过格式转换极大的缩减了卷积层需要执行的乘加操作次数,由于乘加操作次数减少,实现了卷积层卷积算法的加速。
图8为本发明卷积计算的加速装置另一个实施例的结构示意图。如图8所示,该实施例装置包括:
局部存储单元81,用于基于输入卷积层的特征平面获得对应特征平面的平面特征矩阵。
将获得的平面特征矩阵进行保存,在后续操作过程中,只需调取该平面特征矩阵即可。
数据交换单元72,具体用于按照预设的方格在平面特征矩阵中顺序移动,依次获取每个预设的方格中的特征矩阵,将得到的所有特征矩阵连接得到第一格式特征矩阵。
广播引擎单元73,用于对输入卷积层的特征平面进行计算得到第二格式特征矩阵。
对于输入到卷积层的多个特征平面,分别进行计算,得到对应第一格式特征矩阵个数的第二格式特征矩阵,其中,第二格式特征矩阵的格式与第一格式特征矩阵的格式相同,其格式设置是为了实现后续将第一格式矩阵与第二格式矩阵进行点乘,由点乘是对两个矩阵中相同位置的数据进行相乘,因此,需要进行点乘的两个矩阵格式相同。
乘累加单元74,用于将第一格式特征矩阵与第二格式特征矩阵执行乘累加,得到第三格式特征矩阵。
将第一格式特征矩阵与第二格式特征矩阵执行乘累加,实现的是对应公式(4) 中t_R的获取,该步骤中所指第三格式特征矩阵即对应t_R。
求和单元75,用于对第三格式特征矩阵中的数据做累加,得到卷积层的输出特征平面。
本实施例首先基于输入卷积层的特征平面获得平面特征矩阵,保存该平面特征矩阵以备后续操作,以该平面特征矩阵为基础,分别获得格式相同的第一格式特征矩阵和第二格式特征矩阵,由于第一格式特征矩阵和第二格式特征矩阵的格式相同,因此,对第一格式特征矩阵和第二格式特征矩阵执行乘累加的过程中,需要执行的乘加操作次数大大降低,相对现有技术和winograd算法都极大的减少了乘加操作次数,进而实现了对卷积计算的加速。
图9为本发明卷积计算的加速装置又一个实施例的结构示意图。如图9所示,该实施例装置在上述实施例的基础上,求和单元75,包括:
累加模块751,用于将得到的第三格式特征矩阵中的数据根据预设方式进行累加,得到累加特征矩阵,累加次数加一。
次数判断模块752,用于判断累加次数是否大于或等于预设的累加次数;当累加次数大于或等于预设的累加次数,得到卷积层的输出特征平面;当累加次数小于预设的累加次数,将累加特征矩阵作为输入卷积层的特征平面,输入到局部存储单元71进行存储,重复执行从特征平面到第三格式特征矩阵的累加过程。
本实施例是针对输入卷积层的特征平面为多个时,此时设定预设的累加次数为特征平面的个数,每执行一次累加,就是对一个特征平面进行卷积处理,每次累加完成,判断是否已经完成对所有特征平面的处理,如果完成,将输出完整的输出特征平面。
在本发明卷积计算的加速装置上述实施例的一个具体示例中,累加模块,具体用于将得到的第三格式特征矩阵与一个预设的常数矩阵及预设的常数矩阵的转置做矩阵乘法,得到格式变化后的累加特征矩阵。
在本发明卷积计算的加速装置的还一个实施例中,乘累加单元74,具体用于将第一格式特征阵列与第二格式阵列做点乘,将点乘获得的阵列与上一次执行乘累加获得的第三格式特征阵列相加,得到对应本次乘累加的第三格式阵列。
其中,第一格式特征矩阵与第二格式特征矩阵的行数和列数相同。
本实施例中,由于需要对第一格式特征阵列与第二格式阵列做点乘,因此,第一格式特征矩阵与第二格式特征矩阵的行数和列数必须相同,所以需要采用格式变换和矩阵计算,这些操作都是为第一格式特征阵列与第二格式阵列做点乘提供服务,而两个矩阵做点乘大大缩减了计算量,使计算速度大幅提升。而其中所指的累加,在首次进行累加时,由于没有上一次执行乘累加的阵列,因此,第一次乘累加中加零,代表首次乘累加没有累加对象,第二次乘累加时,累加的是上一次第一格式特征阵列与第二格式阵列执行点乘得到的阵列。
在本发明卷积计算的加速装置的再一个实施例中,广播引擎单元73,具体用于将局部存储单元获得的平面特征矩阵与一个预设的常数矩阵及预设的常数矩阵的转置做矩阵乘法,通过矩阵乘法得到第二格式特征矩阵。
本实施例需要先对输入的特征平面获取平面特征矩阵,基于平面特征矩阵获得第二格式特征矩阵的过程对应公式(4)中的BT*(t_ifj)*B,其中平面特征矩阵对应该式中的t_ifj,而第二格式特征矩阵对应BT*(t_ifj)*B,其中B为预设的常数矩阵,BT为预设的常数矩阵的转置。
本发明卷积计算的加速装置,在具体实施过程中,各个单元实现的功能如下:
1、BDC广播引擎单元:BDC负责从各个local mem中读取被整理好的4x4tile t_if,tile是一个4x4的二维数组,按照公式(3)基于t_if得到BT*t_if*B,并且将 BT*t_if*B广播到各个Mac array乘累加单元中。
2、Local mem局部存储单元:本装置中有32块local mem,local mem的数量设置是有限制的,Local mem局部存储单元太多芯片面积就会太大,通过对主流算法的分析,选择32块local mem是效果较好面积又不太大的优选方案。每一个 local mem都是片上存储器,输入的feature map特征平面和输出feature map特征平面卷积系数都存放在local mem中。Local mem中的每个字的位宽都是1024比特,设置为1024比特位宽的原因在于:位宽太小并行度不够,太大则芯片物理实现困难,所以选择1024比特比较合适。
每个输入/输出feature map都存放在一块local mem中,输入feature map按照正常的先行后列的方式存放,但是这样是不能直接用于公式(3)的计算的,需要先将输入feature map整理成按tile存放的格式,而整理的工作则由x-bar完成。
3、x-bar数据交换单元:x-bar采用一个32输入32输出的交换器,由于local mem的带宽是1024比特,每个数据占用了32个比特,所以一共有32个输入,因此每个输入/输出的位宽都是32比特,每个输出的控制信号的位宽是6比特所以控制信号的位宽是192比特:具体控制方式如下:
输入是32个32比特的数据,和32个6比特的控制信号,输出是32个32比特的数据
4、MAC Array乘累加单元:MAC采用乘累加器,是对数据交换器和中央广播引擎提供的数据执行乘法,每执行一次乘法之后,要将本次乘法的结果与前面乘法的结果进行累加,执行一个乘累加操作,S=A*B+S,MAC Array包括了 32个乘累加器,其数量与数据交换器保持一直,可以同时进行32个乘累加操作。
5、Adder tree求和单元:Adder tree采用一个并行加法树,每个并行加法树可以完成32个数的带控制的求和操作,对32个乘累加器提供的数据分别进行求和操作。
Ctrl[i]可以是0,1,-1 公式(6)
公式(6)中adder_tree_in[i]表示加法树的第[i]个输入ctrl[i])是控制信号,1表示adder_tree_in[i]直接参与累加,-1表示adder_tree_in[i]符号位取反后参与累加,0表示adder_tree_in[i]不参与累加。
根据本发明实施例的另一个方面,提供的一种电子设备,设置有上述任意一项实施例的卷积计算的加速装置。
根据本发明实施例的另一个方面,提供的一种电子设备,包括:存储器,用于存储可执行指令;
以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成上述任意一项实施例的卷积计算的加速方法的操作。
根据本发明实施例的另一个方面,提供的一种计算机存储介质,用于存储计算机可读取的指令,其所述指令被执行时执行上述任意一项实施例的卷积计算的加速方法的操作。
1、一种卷积计算的加速方法,包括:
将输入卷积层的特征平面进行格式整理得到第一格式特征矩阵,所述第一格式特征矩阵按照预设的格式进行排布,每个所述特征平面对应一个所述第一格式特征矩阵;
对所述输入卷积层的特征平面进行计算得到第二格式特征矩阵;
将所述第一格式特征矩阵与所述第二格式特征矩阵执行乘累加,得到第三格式特征矩阵;
对所述第三格式特征矩阵中的数据做累加,得到卷积层的输出特征平面。
2、根据1所述的方法,所述将输入卷积层的特征平面进行格式整理得到第一格式特征矩阵,包括:
基于输入卷积层的特征平面获得对应所述特征平面的平面特征矩阵;
按照预设的方格在所述平面特征矩阵中顺序移动,依次获取每个预设的方格中的特征矩阵,将得到的所有特征矩阵连接得到第一格式特征矩阵。
3、根据1-2任一所述的方法,所述对第三格式特征矩阵中的数据做累加,得到卷积层的输出特征平面,包括:
将得到的第三格式特征矩阵中的数据根据预设方式进行累加,得到累加特征矩阵,累加次数加一,判断累加次数是否大于或等于预设的累加次数;
当累加次数大于或等于预设的累加次数,得到卷积层的输出特征平面;
当累加次数小于预设的累加次数,将累加特征矩阵作为输入卷积层的特征平面,重复执行从特征平面到第三格式特征矩阵的累加过程。
4、根据3所述的方法,所述将得到的第三格式特征矩阵中的数据根据预设方式进行累加,包括:
将得到的第三格式特征矩阵与一个预设的常数矩阵及所述预设的常数矩阵的转置做矩阵乘法,得到格式变化后的累加特征矩阵。
5、根据1-4任一所述的方法,所述第一格式特征矩阵与所述第二格式特征矩阵的行数和列数相同。
6、根据5所述的方法,将所述第一格式特征矩阵与所述第二格式特征矩阵执行乘累加,包括:
将所述第一格式特征阵列与所述第二格式阵列做点乘,将点乘获得的阵列与上一次执行乘累加获得的第三格式特征阵列相加,得到对应本次乘累加的第三格式阵列。
7、根据1-6任一所述的方法,对所述输入卷积层的特征平面进行计算得到第二格式特征矩阵,包括:
基于输入卷积层的特征平面获得对应所述特征平面的平面特征矩阵;
将所述平面特征矩阵与一个预设的常数矩阵及所述预设的常数矩阵的转置做矩阵乘法,通过矩阵乘法得到第二格式特征矩阵。
8、一种卷积计算的加速装置,包括:
数据交换单元,用于将输入卷积层的特征平面进行格式整理得到第一格式特征矩阵,所述第一格式特征矩阵按照预设的格式进行排布,每个所述特征平面对应一个所述第一格式特征矩阵;
广播引擎单元,用于对所述输入卷积层的特征平面进行计算得到第二格式特征矩阵;
乘累加单元,用于将所述第一格式特征矩阵与所述第二格式特征矩阵执行乘累加,得到第三格式特征矩阵;
求和单元,用于对所述第三格式特征矩阵中的数据做累加,得到卷积层的输出特征平面。
9、根据8所述的装置,还包括:
局部存储单元,用于基于输入卷积层的特征平面获得对应所述特征平面的平面特征矩阵;
所述数据交换单元,具体用于按照预设的方格在所述平面特征矩阵中顺序移动,依次获取每个预设的方格中的特征矩阵,将得到的所有特征矩阵连接得到第一格式特征矩阵。
10、根据8-9任一所述的装置,所述求和单元,包括:
累加模块,用于将得到的第三格式特征矩阵中的数据根据预设方式进行累加,得到累加特征矩阵,累加次数加一;
次数判断模块,用于判断累加次数是否大于或等于预设的累加次数;当累加次数大于或等于预设的累加次数,得到卷积层的输出特征平面;当累加次数小于预设的累加次数,将累加特征矩阵作为输入卷积层的特征平面,重复执行从特征平面到第三格式特征矩阵的累加过程。
11、根据10所述的装置,所述累加模块,具体用于将得到的第三格式特征矩阵与一个预设的常数矩阵及所述预设的常数矩阵的转置做矩阵乘法,得到格式变化后的累加特征矩阵。
12、根据8-11任一所述的装置,所述第一格式特征矩阵与所述第二格式特征矩阵的行数和列数相同。
13、根据12所述的装置,所述乘累加单元,具体用于将所述第一格式特征阵列与所述第二格式阵列做点乘,将点乘获得的阵列与上一次执行乘累加获得的第三格式特征阵列相加,得到对应本次乘累加的第三格式阵列。
14、根据9-13任一所述的装置,所述广播引擎单元,具体用于将所述局部存储单元获得的平面特征矩阵与一个预设的常数矩阵及所述预设的常数矩阵的转置做矩阵乘法,通过矩阵乘法得到第二格式特征矩阵。
15、一种电子设备,设置有如8至14任一所述的卷积计算的加速装置。
16、一种电子设备,包括:存储器,用于存储可执行指令;
以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成1至7 任一所述卷积计算的加速方法的操作。
17、一种计算机存储介质,用于存储计算机可读取的指令,所述指令被执行时执行1至7任一所述卷积计算的加速方法的操作。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本发明的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (10)
1.一种卷积计算的加速方法,其特征在于,包括:
将输入卷积层的特征平面进行格式整理得到第一格式特征矩阵,所述第一格式特征矩阵按照预设的格式进行排布,每个所述特征平面对应一个所述第一格式特征矩阵;
对所述输入卷积层的特征平面进行计算得到第二格式特征矩阵;
将所述第一格式特征矩阵与所述第二格式特征矩阵执行乘累加,得到第三格式特征矩阵;
对所述第三格式特征矩阵中的数据做累加,得到卷积层的输出特征平面。
2.根据权利要求1所述的方法,其特征在于,所述将输入卷积层的特征平面进行格式整理得到第一格式特征矩阵,包括:
基于输入卷积层的特征平面获得对应所述特征平面的平面特征矩阵;
按照预设的方格在所述平面特征矩阵中顺序移动,依次获取每个预设的方格中的特征矩阵,将得到的所有特征矩阵连接得到第一格式特征矩阵。
3.根据权利要求1-2任一所述的方法,其特征在于,所述对第三格式特征矩阵中的数据做累加,得到卷积层的输出特征平面,包括:
将得到的第三格式特征矩阵中的数据根据预设方式进行累加,得到累加特征矩阵,累加次数加一,判断累加次数是否大于或等于预设的累加次数;
当累加次数大于或等于预设的累加次数,得到卷积层的输出特征平面;
当累加次数小于预设的累加次数,将累加特征矩阵作为输入卷积层的特征平面,重复执行从特征平面到第三格式特征矩阵的累加过程。
4.根据权利要求3所述的方法,其特征在于,所述将得到的第三格式特征矩阵中的数据根据预设方式进行累加,包括:
将得到的第三格式特征矩阵与一个预设的常数矩阵及所述预设的常数矩阵的转置做矩阵乘法,得到格式变化后的累加特征矩阵。
5.一种卷积计算的加速装置,其特征在于,包括:
数据交换单元,用于将输入卷积层的特征平面进行格式整理得到第一格式特征矩阵,所述第一格式特征矩阵按照预设的格式进行排布,每个所述特征平面对应一个所述第一格式特征矩阵;
广播引擎单元,用于对所述输入卷积层的特征平面进行计算得到第二格式特征矩阵;
乘累加单元,用于将所述第一格式特征矩阵与所述第二格式特征矩阵执行乘累加,得到第三格式特征矩阵;
求和单元,用于对所述第三格式特征矩阵中的数据做累加,得到卷积层的输出特征平面。
6.根据权利要求5所述的装置,其特征在于,还包括:
局部存储单元,用于基于输入卷积层的特征平面获得对应所述特征平面的平面特征矩阵;
所述数据交换单元,具体用于按照预设的方格在所述平面特征矩阵中顺序移动,依次获取每个预设的方格中的特征矩阵,将得到的所有特征矩阵连接得到第一格式特征矩阵。
7.根据权利要求5-6任一所述的装置,其特征在于,所述求和单元,包括:
累加模块,用于将得到的第三格式特征矩阵中的数据根据预设方式进行累加,得到累加特征矩阵,累加次数加一;
次数判断模块,用于判断累加次数是否大于或等于预设的累加次数;当累加次数大于或等于预设的累加次数,得到卷积层的输出特征平面;当累加次数小于预设的累加次数,将累加特征矩阵作为输入卷积层的特征平面,重复执行从特征平面到第三格式特征矩阵的累加过程。
8.一种电子设备,其特征在于,设置有如权利要求5至7任一所述的卷积计算的加速装置。
9.一种电子设备,其特征在于,包括:存储器,用于存储可执行指令;
以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成权利要求1至4任一所述卷积计算的加速方法的操作。
10.一种计算机存储介质,用于存储计算机可读取的指令,其特征在于,所述指令被执行时执行权利要求1至4任一所述卷积计算的加速方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710538332.9A CN107516131A (zh) | 2017-07-04 | 2017-07-04 | 卷积计算的加速方法和装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710538332.9A CN107516131A (zh) | 2017-07-04 | 2017-07-04 | 卷积计算的加速方法和装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107516131A true CN107516131A (zh) | 2017-12-26 |
Family
ID=60722188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710538332.9A Pending CN107516131A (zh) | 2017-07-04 | 2017-07-04 | 卷积计算的加速方法和装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107516131A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109359730A (zh) * | 2018-09-26 | 2019-02-19 | 中国科学院计算技术研究所 | 面向固定输出范式Winograd卷积的神经网络处理器 |
CN110163333A (zh) * | 2018-01-10 | 2019-08-23 | 成都信息工程大学 | 卷积神经网络的并行优化方法 |
WO2019204067A1 (en) * | 2018-04-21 | 2019-10-24 | Microsoft Technology Licensing, Llc | Neural network processor based on application specific synthesis specialization parameters |
CN113419702A (zh) * | 2021-06-21 | 2021-09-21 | 安谋科技(中国)有限公司 | 一种数据累加方法、处理器、电子设备及可读介质 |
CN114217686A (zh) * | 2021-04-26 | 2022-03-22 | 无锡江南计算技术研究所 | 一种稠密卷积运算核心的低功耗方法 |
-
2017
- 2017-07-04 CN CN201710538332.9A patent/CN107516131A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110163333A (zh) * | 2018-01-10 | 2019-08-23 | 成都信息工程大学 | 卷积神经网络的并行优化方法 |
WO2019204067A1 (en) * | 2018-04-21 | 2019-10-24 | Microsoft Technology Licensing, Llc | Neural network processor based on application specific synthesis specialization parameters |
US11556762B2 (en) | 2018-04-21 | 2023-01-17 | Microsoft Technology Licensing, Llc | Neural network processor based on application specific synthesis specialization parameters |
CN109359730A (zh) * | 2018-09-26 | 2019-02-19 | 中国科学院计算技术研究所 | 面向固定输出范式Winograd卷积的神经网络处理器 |
CN114217686A (zh) * | 2021-04-26 | 2022-03-22 | 无锡江南计算技术研究所 | 一种稠密卷积运算核心的低功耗方法 |
CN113419702A (zh) * | 2021-06-21 | 2021-09-21 | 安谋科技(中国)有限公司 | 一种数据累加方法、处理器、电子设备及可读介质 |
CN113419702B (zh) * | 2021-06-21 | 2022-11-22 | 安谋科技(中国)有限公司 | 一种数据累加方法、处理器、电子设备及可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107516131A (zh) | 卷积计算的加速方法和装置、电子设备和存储介质 | |
US20230325348A1 (en) | Performing concurrent operations in a processing element | |
EP3539059B1 (en) | Performing kernel striding in hardware | |
EP3407266B1 (en) | Artificial neural network calculating device and method for sparse connection | |
CN110263925B (zh) | 一种基于fpga的卷积神经网络前向预测的硬件加速实现装置 | |
CN106203617B (zh) | 一种基于卷积神经网络的加速处理单元及阵列结构 | |
CN104915322B (zh) | 一种卷积神经网络硬件加速方法 | |
JP7007488B2 (ja) | ハードウェアベースのプーリングのシステムおよび方法 | |
CN109844738A (zh) | 运算处理电路和识别系统 | |
CN110073359A (zh) | 用于卷积神经网络的有效数据布局 | |
CN110245752A (zh) | 一种全连接运算方法及装置 | |
CN109086076A (zh) | 神经网络处理装置及其执行向量点积指令的方法 | |
CN107886167A (zh) | 神经网络运算装置及方法 | |
CN107423816A (zh) | 一种多计算精度神经网络处理方法和系统 | |
CN107797962A (zh) | 基于神经网络的计算阵列 | |
CN108960418A (zh) | 神经网络处理装置及其执行矩阵向量乘指令的方法 | |
TW202123093A (zh) | 實行卷積運算的系統及方法 | |
CN110147252A (zh) | 一种卷积神经网络的并行计算方法及装置 | |
CN110163350A (zh) | 一种计算装置及方法 | |
CN115222946A (zh) | 一种单阶段实例图像分割方法、装置以及计算机设备 | |
JP2024028901A (ja) | ハードウェアにおけるスパース行列乗算 | |
CN115017773A (zh) | 一种三维网格模型的降维方法、电子设备和介质 | |
CN107957977A (zh) | 一种计算方法及相关产品 | |
CN112966729B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN115485656A (zh) | 用于卷积运算的存储器内处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190422 Address after: 100192 2nd Floor, Building 25, No. 1 Hospital, Baosheng South Road, Haidian District, Beijing Applicant after: BEIJING BITMAIN TECHNOLOGY CO., LTD. Address before: 100029 Beijing Haidian District Austria north industrial base project 6 Building 2 level. Applicant before: Feng Feng Technology (Beijing) Co., Ltd. |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20171226 |