【技术实现步骤摘要】
卷积运算方法以及装置
[0001]本申请涉及深度学习领域,尤其涉及卷积运算领域。
技术介绍
[0002]卷积加速装置是用于加速卷积计算的硬件。卷积加速装置通常从外部存储器获取数据,虽然外部存储器容量大,但是访问速度慢,因此,为了降低对外部存储器的带宽需求,在卷积加速装置内部设置了访问速度快且容量较小的内部本地缓存器(GLB,Global local buffer),GLB可以被同在卷积加速装置中的运算器直接访问。
[0003]然而,在对大尺寸的图像数据进行卷积运算时,由于卷积加速装置中的GLB容量有限,需要对大尺寸的图像数据进行拆分,形成数据块输入至GLB中,由GLB将数据块发送至运算器进行卷积运算。然而,现有的拆分方式将大尺寸的图像数据按照固定大小进行拆分,外部存储器和GLB之间的带宽跟不上计算速度,导致卷积加速装置的平均利用率不足,运算时间较长。
技术实现思路
[0004]本申请实施例提供一种卷积运算方法以及装置,以解决相关技术存在的问题,技术方案如下:
[0005]第一方面,本申请实施例提供了一种卷积运算方法,应用于卷积加速装置,卷积加速装置包括内部本地缓存器和运算器,包括:
[0006]配置拆分参数,拆分参数是根据内部本地缓存器能够存储的数据块和运算器能够运算的数据块得到的;
[0007]将拆分参数、卷积运算的参数以及卷积加速装置的参数输入至代价函数中,在符合约束条件的情况下,得到拆分参数的最优值;
[0008]采用拆分参数的最优值,将用于输入卷积加速装 ...
【技术保护点】
【技术特征摘要】
1.一种卷积运算方法,应用于卷积加速装置,所述卷积加速装置包括内部本地缓存器和运算器,其特征在于,包括:配置拆分参数,所述拆分参数是根据所述内部本地缓存器能够存储的数据块和所述运算器能够运算的数据块得到的;将所述拆分参数、卷积运算的参数以及所述卷积加速装置的参数输入至代价函数中,在符合约束条件的情况下,得到所述拆分参数的最优值;采用所述拆分参数的最优值,将用于输入所述卷积加速装置的输入图像数据和权重数据拆分成多个输入数据块和多个权重数据块;控制所述多个输入数据块和所述多个权重数据块输入至所述内部本地存储器中,以使所述运算器从所述内部本地存储器中获取卷积运算所需的输入数据块和权重数据块,并对其进行卷积运算,得到多个输出数据块。2.根据权利要求1所述的方法,其特征在于,所述内部本地缓存器能够同时存储一个所述输入数据块、一个所述权重数据块以及一个所述输出数据块。3.根据权利要求1所述的方法,其特征在于,还包括:获取所述卷积运算的参数,所述卷积运算的参数包括:卷积核的高度R和卷积核的宽度S;所述输入图像数据的批数N、所述输入图像数据的通道数C、所述输入图像数据的宽度W、所述输入图像数据的高度H;输出图像数据的通道数M、所述输出图像数据的宽度F、所述输出图像数据的高度E,所述输出图像数据包括所述输出数据块;获取所述卷积加速装置的参数,所述卷积加速装置的参数包括:所述内部本地缓存器的存储空间Q、所述运算模块中运算单元阵列的高度Jh和宽度Jw、所述运算单元中寄存器的个数RF。4.根据权利要求3所述的方法,其特征在于,所述配置拆分参数,包括:配置所述内部本地缓存器存储所需的输入数据块的批数n、输入数据块的通道数d、输入数据块的高度h、输出数据块的通道数m、输出数据块的高度e,其中,所述输入数据块的批数n小于或等于所述输入图像数据的批数N;配置所述运算器中每个运算模块计算所需的输入数据块的通道数r和输出数据块的通道数t。5.根据权利要求4所述的方法,其特征在于,所述将所述拆分参数、卷积运算的参数以及所述卷积加速装置的参数输入至代价函数中,在符合约束条件的情况下,得到所述拆分参数的最优值,包括:根据所述拆分参数、所述卷积运算的参数以及所述卷积加速装置的参数,计算所述输入图像数据的值、所述权重数据的值以及所述运算器的平均利用率;根据所述卷积加速装置的参数和所述拆分参数确定约束条件;所述输入图像数据的值与所述权重数据的值之和,与所述运算器的平均利用率的比值输入至所述代价函数中,在符合所述约束条件的情况下,得到所述拆分参数的最优值。6.根据权利要求5所述的方法,其特征在于,所述根据所述拆分参数、所述卷积运算的参数以及所述卷积加速装置的参数,计算所述输入图像数据的值,包括:计算所述输入数据块的通道数d、所述输入数据块的高度h以及所述输入图像数据的宽度W的乘积,得到一个所述输入数据块从外部存储器加载到所述内部本地缓存器的数据量
dhW;计算所述输入图像数据的通道数的拆分次数C/d、所述输出图像数据的高度的拆分次数E/e、以及所述输出图像数据的通道数的拆分次数M/m的乘积,得到所述外部存储器至所述内部本地缓存器的数据传输次数a=(CEM)/(dem);计算所述传输次数a与dhW的乘积,得到所述输入图像数据的值adhW。7.根据权利要求6所述的方法,其特征在于,所述根据所述拆分参数、所述卷积运算的参数以及所述卷积加速装置的参数,计算所述权重数据的值,包括:所述卷积核的高度R、所述卷积核的宽度S、所述运算模块计算所需的输入数据块的通道数r、以及所述输出数据块的通道数t的乘积,得到所述权重数据块的值RSrt;计算所述内部本地缓存器存储所需的输入数据块的通道数d与所述运算模块计算所需的输入数据块的通道数r的比值d/r,即所述内部本地缓存器存储所需的输入数据块的通道数供所述运算模块运算的次数q;计算所述内部本地缓存器存储所需的输出数据块的通道数m与所述运算模块计算所需的输出数据块的通道数t的比值m/t,即所述内部本地缓存器存储所需的输入数据块的通道数供所述运算模块运算的次数q
’
;计算比值m/t=q
′
和比值d/r=q的乘积,得到所述内部本地缓存器的输出数据需要所述运算模块的运算次数b=(md)/(tr);计算所述传输次数a、所述运算次数b以及所述权重数据块的值RSrt的乘积,得到所述权重数据的值abRSrt。8.根据权利要求7所述的方法,其特征在于,根据所述拆分参数、所述卷积运算的参数以及所述卷积加速装置的参数,计算所述运算器的平均利用率,包括:根据所述运算模块阵列的高度Jh和宽度Jw、所述卷积核的高度R、所述运算模块计算所需的输入数据块的通道数r、输出数据块的通道数t,计算所述运算器的平均利用率(Rrt)/(100JwJh)。9.根据权利要求8所述的方法,其特征在于,所述根据所述卷积加速装置的参数和所述拆分参数确定所述约束条件,包括:所述输入数据块的值ndhW、所述权重数据块的值RSrt以及所述输出数据块的值nmeF之和,小于或等于所述内部本地缓存器的存储空间Q,得到第一约束条件,即ndhW+RSrt+nmeF≤Q;所述运算模块计算所需的输出数据块的通道数t小于或等于所述运算单元阵列的宽度Jw,所述运算模块计算所需的输入数据块的通道数r与所述卷积核的高度R的乘积小于或等于所述运算单元阵列的高度Jh,得到第二约束条件,即t≤Jw,r*R≤Jh;所述卷积核的宽度S小于或等于所述运算模块中寄存器的个数RF,得到第三约束条件,即S≤RF;所述内部本地缓存器存储所需的输入数据块的通道数d小于或等于所述输入图像数据的通道数C,得到第四约束条件,即d≤C;所述运算模块计算所需的输出数据块的通道数t小于或等于所述内部本地缓存器存储所需的输出数据块的通道数m,得到第五约束条件,即t≤m。10.根据权利要求9所述的方法,其特征在于,所述输入图像数据的值与所述权重数据
的值之和,与所述运算器的平均利用率的比值输入至所述代价函数中,在符合所述约束条件的情况下,得到所述拆分参数的最优值,包括:所述输入图像数据的值与所述权重数据的值之和,与所述运算器的平均利用率的比值输入至所述代价函数中,得到cost=(adhW+abRSrt)(100JwJh)/Rrt;在同时满足所述第一约束条件至所述第五约束条件的情况下,得到所述拆分参数的最优值。11.根据权利要求10所述的方法,其特征在于,所述控制所述多个输入数据块和所述多个权重数据块依次输入至所述内部本地存储器中,以使所述运算器从所述内部本地存储器中获取卷积运算所需的输入数据块和权重数据块,并对其进行卷积运算,得到多个输出数据块,包括:控制所述内部本地缓存器发送一个所述输入数据块和mq个所述权重数据块至所述运算器,以使所述运算器根据一个所述输入数据块和mq个所述权重数据块生成一个中间数据块;循环执行c/d次所述控制所述内部本地缓存器发送一个所述输入数据块和mq个所述权重数据块至所述运算器的步骤,以使所述运算器对c/d个中间数据块求和,得到一个所述输出数据块;循环执行EM/em次前述得到一个所述输出数据块的步骤,得到EM/em个所述输出数据块。12.根据权利要求11所述的方法,其特征在于,所述运算器根据一个所述输入数据块和mq个所述权重数据块生成一个中间数据块,包括:每个所述运算单元执行步骤:根据RrW个所述输入数据块和一个所述权重数据块,得到tF个所述中间数据块,RrW小于1,tF小于1;e行个所述运算单元执行上述步骤,得到一个所述中间数据块。13.一种卷积运算装置,其特征在于,包括:拆分参数配置模块,用于配置拆分参数,所述拆分参数是根据所述内部本地缓存器能够存储的数据块和所述运算器能够运算的数据块得到的;拆分参数最...
【专利技术属性】
技术研发人员:郭晖,张楠赓,
申请(专利权)人:嘉楠明芯北京科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。