卷积运算芯片和通信设备制造技术

技术编号:15639232 阅读:53 留言:0更新日期:2017-06-15 22:14
本申请提供了一种卷积运算芯片和通信设备,该卷积运算芯片包括:M×N乘法累加器阵列,包括第一乘法累加器窗口,该第一乘法累加窗口的处理单元PE

【技术实现步骤摘要】
卷积运算芯片和通信设备
本申请涉及人工智能领域,更具体地,涉及一种卷积运算芯片和通信设备。
技术介绍
深度神经网络(DeepNeuralNetworks,简称“DNN”)技术已经成为人工智能领域的代表性算法,基于深度神经网络技术的字符识别、图像分类或语音识别等关键技术,已经广泛应用于搜索引擎和智能手机等产品中。其中,当前最为有效,且应用最为广泛的神经网络算法是卷积神经网络(ConvolutionalNeuralNetwork,简称“CNN”)算法,简称“卷积运算”。在现有技术中,CNN算法的核心计算单元是乘加运算,乘法累加器(MultiplicationAccumulator,简称“MAC”)阵列常用于矩阵乘法运算,而卷积运算可以转换为矩阵乘法运算,因此业界广泛采用MAC阵列为计算核心的专用加速硬件,例如,现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、专用集成电路(ApplicationSpecificIntegratedCircuits,ASIC)等,以加速卷积运算的运算速度。在现有技术的方案中,一方面,当MAC阵列中存在多个卷积窗口同时进行卷积运算时,这些卷积窗口分布在MAC阵列中的不同位置,使得MAC阵列不是所有处理单元均会利用到。并且,当MAC阵列的尺寸和多个卷积窗口的尺寸不适配时,MAC阵列的利用率会非常低。另一方面,所谓的卷积运算可以转换成矩阵乘法运算,实际上是将有大量交叠的卷积运算平铺成两个大矩阵,该两个大矩阵之间进行乘法运算。由于两个矩阵中存在大量重复数据,而这些数据都需要从随机存取存储器(RandomAccessMemory,简称“RAM”)中,通过MAC阵列外部的数据通道,被输入到MAC阵列进行计算。因此存在大量重复数据被从RAM输入到MAC阵列,这样会增加RAM的访问次数。
技术实现思路
本申请提供了一种卷积运算芯片和通信设备,能够在提高阵列资源利用率的同时降低RAM访问次数,减小RAM访问压力。第一方面,提供了一种卷积运算芯片,包括数据缓存模块、M×N乘法累加器阵列和输出控制模块,其中,所述数据缓存模块用于向所述M×N乘法累加器阵列中的第一乘法累加窗口传输用于卷积运算的多个卷积数据和多个卷积参数,其中,所述多个卷积参数由所述数据缓存模块根据第一卷积参数矩阵确定,所述多个卷积数据由所述数据缓存模块根据第一卷积数据矩阵确定,所述第一卷积参数矩阵为A行B列,所述第一卷积数据矩阵为D行E列,所述第一乘法累加窗口为A行C列,A为大于或等于2的整数,B和C均为大于或等于1的整数,D为大于或等于A的正整数,E为大于或等于max(B,C)的整数,M为大于或等于A的正整数,N为大于或等于C的正整数;所述第一乘法累加窗口包括A×C个处理单元,第i行第j列的处理单元标记为PEi,j,i按照从小到大的顺序每次取一个整数,依次从1取值到A,对应于i的每一取值,j按照从小到大的顺序每次取一个整数,依次从1取值到C;所述第一乘法累加窗口的处理单元PEX,Y用于将PEX,Y的卷积数据和PEX,Y的卷积参数进行乘法运算,当C大于或等于2时,所述处理单元PEX,Y还用于将所述PEX,Y的卷积参数传输至PEX,Y+1,将所述PEX,Y的卷积数据传输至PEX-1,Y+1,分别作为所述PEX,Y+1和所述PEX-1,Y+1进行乘法运算的乘数,其中,X为大于或等于2且小于或等于A的整数,Y为大于或等于1且小于或等于C-1的整数,所述PEX,Y的卷积数据为所述数据缓存模块传输的所述多个卷积数据中的一个卷积数据,所述PEX,Y的卷积参数为所述数据缓存模块传输的所述多个卷积参数中的一个卷积参数;所述第一乘法累加窗口用于将PEi,J进行乘法运算得到的乘积进行加法运算以获得卷积结果,其中,J为大于或等于1且小于或等于C的整数;所述输出控制模块用于输出所述卷积结果。第一方面的卷积运算芯片通过对任意一个处理单元增加一条数据传输通道,使得相邻处理单元之间能够直接传输卷积数据和卷积参数,同时,这些数据在传输过程中都处于第一乘法累加窗口中,不再经过RAM,可以减少RAM的访问次数,降低功耗。在第一方面的一种可能的实现方式中,所述卷积运算芯片还包括:阵列控制模块,用于从所述M×N乘法累加器阵列中确定用于卷积运算的所述第一乘法累加窗口,其中,根据所述第一卷积参数矩阵的行数确定所述第一乘法累加窗口的行数,根据所述第一卷积参数矩阵的行数和所述第一卷积数据矩阵的行数确定所述第一乘法累加窗口的列数。在一种具体的实现方式中,所述阵列控制模块具体根据如下公式确定所述第一乘法累加窗口的列数:C=D-A+1。在本可能的实现方式中,根据卷积参数矩阵和卷积数据矩阵的尺寸灵活的确定乘法累加窗口的尺寸,可以尽可能地提高MAC阵列的利用率以及卷积运算的效率。在第一方面的一种可能的实现方式中,所述第一乘法累加窗口具体用于:第t时钟周期,第1列处理单元PEi,1将PEi,1的卷积数据和PEi,1的卷积参数进行乘法运算获得乘积其中,所述PEi,1的卷积数据和所述PEi,1的卷积参数由所述数据缓存模块传输至所述PEi,1而获得;将PEx,1的卷积参数传输至PEx,2,将PEx,1的卷积数据传输至PEx-1,2,分别作为所述PEx,2和所述PEx-1,2在第t+1时钟周期进行乘法运算的乘数,x按照从小到大的顺序每次取一个整数,依次从2取值到A;在t分别取[nB+1,nB+B]区间内每一整数的情况下,将对应于t所有取值的所有所述乘积利用如下公式进行加法运算获得卷积结果S1:其中,n为大于或等于0并且小于或等于(E-B)的整数。在第一方面的一种可能的实现方式中,当C大于或等于2时,所述第一乘法累加窗口具体还用于:第T时钟周期,第J’列处理单元PEi,J’将PEi,J’的卷积数据和PEi,J’的卷积参数进行乘法运算获得乘积其中,J’为大于或等于2且小于或等于C的整数,所述PEi,J’的卷积参数由PEi,J’-1的卷积数据传输至所述PEi,J’而获得,PEh,J’的卷积数据由PEh+1,J’-1的卷积数据传输至所述PEh,J’而获得,PEA,J’的卷积参数和PEA,J’的卷积数据由所述数据缓存模块传输至所述PEA,J’而获得,h按照从小到大的顺序每次取一个整数,依次从1取值到A-1;在T分别取[nB+J’,nB+J’+B-1]区间内每一整数的情况下,将对应于T所有取值的所有所述乘积通过如下公式进行加法运算获得卷积结果SJ’:其中,n为大于或等于0并且小于或等于(E-B)的整数。在第一方面的一种可能的实现方式中,所述D×E卷积数据矩阵包括D*E个卷积数据ap,q,p按照从小到大的顺序每次取一个整数,依次从1取值到D,对应于p的每一取值,q按照从小到大的顺序每次取一个整数,依次从1取值到E,所述A×B卷积参数矩阵包括A*B个卷积参数bp’,q’,p’按照从小到大的顺序每次取一个整数,依次从1取值到A,对应于p’的每一取值,q’按照从小到大的顺序每次取一个整数,依次从1取值到B,所述数据缓存模块包括:缓存器,用于缓存所述D*E个卷积数据和所述A*B个卷积参数;计数器,用于在第nB+P时钟周期,确定所述PEi,1的卷积数据为ai,n+P,所述PE本文档来自技高网
...
卷积运算芯片和通信设备

【技术保护点】
一种卷积运算芯片,其特征在于,包括数据缓存模块、M×N乘法累加器阵列和输出控制模块,其中,所述数据缓存模块用于向所述M×N乘法累加器阵列中的第一乘法累加窗口传输用于卷积运算的多个卷积数据和多个卷积参数,其中,所述多个卷积参数由所述数据缓存模块根据第一卷积参数矩阵确定,所述多个卷积数据由所述数据缓存模块根据第一卷积数据矩阵确定,所述第一卷积参数矩阵为A行B列,所述第一卷积数据矩阵为D行E列,所述第一乘法累加窗口为A行C列,A为大于或等于2的整数,B和C均为大于或等于1的整数,D为大于或等于A的正整数,E为大于或等于max(B,C)的整数,M为大于或等于A的正整数,N为大于或等于C的正整数;所述第一乘法累加窗口包括A×C个处理单元,第i行第j列的处理单元标记为PE

【技术特征摘要】
1.一种卷积运算芯片,其特征在于,包括数据缓存模块、M×N乘法累加器阵列和输出控制模块,其中,所述数据缓存模块用于向所述M×N乘法累加器阵列中的第一乘法累加窗口传输用于卷积运算的多个卷积数据和多个卷积参数,其中,所述多个卷积参数由所述数据缓存模块根据第一卷积参数矩阵确定,所述多个卷积数据由所述数据缓存模块根据第一卷积数据矩阵确定,所述第一卷积参数矩阵为A行B列,所述第一卷积数据矩阵为D行E列,所述第一乘法累加窗口为A行C列,A为大于或等于2的整数,B和C均为大于或等于1的整数,D为大于或等于A的正整数,E为大于或等于max(B,C)的整数,M为大于或等于A的正整数,N为大于或等于C的正整数;所述第一乘法累加窗口包括A×C个处理单元,第i行第j列的处理单元标记为PEi,j,i按照从小到大的顺序每次取一个整数,依次从1取值到A,对应于i的每一取值,j按照从小到大的顺序每次取一个整数,依次从1取值到C;所述第一乘法累加窗口的处理单元PEX,Y用于将PEX,Y的卷积数据和PEX,Y的卷积参数进行乘法运算,当C大于或等于2时,所述处理单元PEX,Y还用于将所述PEX,Y的卷积参数传输至PEX,Y+1,将所述PEX,Y的卷积数据传输至PEX-1,Y+1,分别作为所述PEX,Y+1和所述PEX-1,Y+1进行乘法运算的乘数,其中,X为大于或等于2且小于或等于A的整数,Y为大于或等于1且小于或等于C-1的整数,所述PEX,Y的卷积数据为所述数据缓存模块传输的所述多个卷积数据中的一个卷积数据,所述PEX,Y的卷积参数为所述数据缓存模块传输的所述多个卷积参数中的一个卷积参数;所述第一乘法累加窗口用于将PEi,J进行乘法运算得到的乘积进行加法运算以获得卷积结果,其中,J为大于或等于1且小于或等于C的整数;所述输出控制模块用于输出所述卷积结果。2.根据权利要求1所述的卷积运算芯片,其特征在于,所述卷积运算芯片还包括:阵列控制模块,用于从所述M×N乘法累加器阵列中确定用于卷积运算的所述第一乘法累加窗口,其中,根据所述第一卷积参数矩阵的行数确定所述第一乘法累加窗口的行数,根据所述第一卷积参数矩阵的行数和所述第一卷积数据矩阵的行数确定所述第一乘法累加窗口的列数。3.根据权利要求2所述的卷积运算芯片,其特征在于,所述阵列控制模块具体根据如下公式确定所述第一乘法累加窗口的列数:C=D-A+1。4.根据权利要求1至3中任一项所述的卷积运算芯片,其特征在于,所述第一乘法累加窗口具体用于:第t时钟周期,第1列处理单元PEi,1将PEi,1的卷积数据和PEi,1的卷积参数进行乘法运算获得乘积其中,所述PEi,1的卷积数据和所述PEi,1的卷积参数由所述数据缓存模块传输至所述PEi,1而获得;将PEx,1的卷积参数传输至PEx,2,将PEx,1的卷积数据传输至PEx-1,2,分别作为所述PEx,2和所述PEx-1,2在第t+1时钟周期进行乘法运算的乘数,x按照从小到大的顺序每次取一个整数,依次从2取值到A;在t分别取[nB+1,nB+B]区间内每一整数的情况下,将对应于t所有取值的所有所述乘积利用如下公式进行加法运算获得卷积结果S1:其中,n为大于或等于0并且小于或等于(E-B)的整数。5.根据权利要求3或4所述的卷积运算芯片,其特征在于,当C大于或等于2时,所述第一乘法累加窗口具体还用于:第T时钟周期,第J’列处理单元PEi,J’将PEi,J’的卷积数据和PEi,J’的卷积参数进行乘法运算获得乘积其中,J’为大于或等于2且小于或等于C的整数,所述PEi,J’的卷积参数由PEi,J’-1的卷积数据传输至所述PEi,J’而获得,PEh,J’的卷积数据由PEh+1,J’-1的卷积数据传输至所述PEh,J’而获得,PEA,J’的卷积参数和PEA,J’的卷积数据由所述数据缓存模块传输至所述PEA,J’而获得,h按照从小到大的顺序每次取一个整数,依次从1取值到A-1;在T分别取[nB+J’,nB+J’+B-1]区间内每一整数的情况下,将对应于T所有取值的所有所述乘积通过如下公式进行加法运算获得卷积结果SJ’:

【专利技术属性】
技术研发人员:徐斌袁宏辉何雷骏
申请(专利权)人:华为机器有限公司
类型:发明
国别省市:广东,44

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

1