卷积运算方法、装置、矩阵展开装置和图形处理器制造方法及图纸

技术编号:34901158 阅读:17 留言:0更新日期:2022-09-10 14:06
本申请涉及一种卷积运算方法、装置、矩阵展开装置和图形处理器。所述方法包括:针对原始特征图中的任一子特征图,从预设的内存布局中加载用于构成所述任一子特征图的至少一个目标特征瓦片;所述内存布局为将至少一个特征瓦片按照预设的数据排列方式写入至内存得到的;所述至少一个特征瓦片为对所述原始特征图进行瓦片化得到的;按照卷积层的卷积参数,对所述至少一个目标特征瓦片所组成的特征图进行展开,得到目标展开矩阵;将所述目标展开矩阵与所述卷积核对应的展开矩阵进行矩阵乘运算,获得所述原始特征图的卷积运算结果。采用本方法能够提高卷积运算效率。本方法能够提高卷积运算效率。本方法能够提高卷积运算效率。

【技术实现步骤摘要】
卷积运算方法、装置、矩阵展开装置和图形处理器


[0001]本申请涉及通用计算
,特别是涉及一种卷积运算方法、装置、矩阵展开装置、图形处理器、存储介质和计算机程序产品。

技术介绍

[0002]卷积运算是卷积神经网络CNN中的一个重要环节,卷积神经网络CNN的训练和推理时间往往是受卷积运算速度的影响。
[0003]传统技术中的卷积神经网络CNN往往是将卷积核Filter内部的元素与输入Feature Map中对应元素相乘累加,得到输出Feature Map中的一个元素,然后根据步长移到下一步,重复上述操作,直到得到输出Feature Map的全部元素,卷积运算效率低下。
[0004]因此,传统技术中存在卷积运算效率降低的问题。

技术实现思路

[0005]基于此,有必要针对上述技术问题,提供一种能够提高卷积运算效率的卷积运算方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
[0006]第一方面,本申请提供了一种卷积运算方法,所述方法包括:
[0007]针对原始特征图中的任一子特征图,从预设的内存布局中加载用于构成所述任一子特征图的至少一个目标特征瓦片;所述内存布局为将至少一个特征瓦片按照预设的数据排列方式写入至内存得到的;所述至少一个特征瓦片为对所述原始特征图进行瓦片化得到的;
[0008]按照卷积层的卷积参数,对所述至少一个目标特征瓦片所组成的特征图进行展开,得到目标展开矩阵;
[0009]将所述目标展开矩阵与所述卷积核对应的展开矩阵进行矩阵乘运算,获得所述原始特征图的卷积运算结果。
[0010]在其中一个实施例中,在所述读取用于进行卷积运算的原始特征图的步骤之后,所述方法还包括:
[0011]对所述原始特征图进行瓦片化,得到所述至少一个特征瓦片;
[0012]按照所述数据排列方式,将各所述特征瓦片按序写入至所述内存,获得所述内存布局;其中,所述数据排列方式至少包括批处理维度、通道维度和所述特征瓦片在所述原始特征图中的位置维度。
[0013]在其中一个实施例中,所述按照所述数据排列方式,将各所述特征瓦片按序写入至所述内存,获得所述内存布局,包括:
[0014]将在所述原始特征图中处于相同目标位置的至少一个特征瓦片,沿着与所述通道维度对应的方向依次写入至所述内存,得到与所述目标位置对应的特征瓦片区块。
[0015]在其中一个实施例中,所述对所述原始特征图进行瓦片化,得到所述至少一个特征瓦片,包括:
[0016]获取对所述原始特征图进行瓦片化所采用的瓦片样板;
[0017]确定所述瓦片样板在至少一个方向上的大小;
[0018]对所述原始特征图进行矩阵补零,以使补零后的特征图在所述方向上的大小与所述瓦片样板在所述方向上的大小之间满足倍数关系;
[0019]按照所述瓦片样板,对所述补零后的特征图进行瓦片化,得到所述至少一个特征瓦片。
[0020]在其中一个实施例中,每个所述特征瓦片在所述内存布局中具有对应的瓦片索引坐标,所述针对所述原始特征图中的任一子特征图,从预设的内存布局中加载用于构成所述任一子特征图的至少一个目标特征瓦片,包括:
[0021]获取所述任一子特征图对应的展开矩阵位置坐标;所述展开矩阵位置坐标用于表征所述目标展开矩阵在所述原始特征图对应的展开矩阵中的位置信息;
[0022]将所述展开矩阵位置坐标映射为目标瓦片索引坐标;所述目标瓦片索引坐标为构成所述任一子特征图的至少一个目标特征瓦片在所述内存布局中对应的瓦片索引坐标;
[0023]在所述内存布局中加载与所述目标瓦片索引坐标对应的特征瓦片,获得所述目标特征瓦片。
[0024]在其中一个实施例中,所述按照卷积层的卷积参数,对所述至少一个目标特征瓦片所组成的特征图进行展开,得到目标展开矩阵,包括:
[0025]按照卷积层的卷积参数,对所述至少一个目标特征瓦片所组成的特征图进行展开,得到展开后的矩阵;
[0026]对所述展开后的矩阵进行转置操作,得到所述目标展开矩阵。
[0027]在其中一个实施例中,在所述按照卷积层的卷积参数,对所述至少一个目标特征瓦片所组成的特征图进行展开,得到目标展开矩阵的步骤之前,所述方法还包括:
[0028]获取当前卷积运算所属的卷积层;
[0029]对所述卷积层的卷积模式进行解析,确定所述卷积层的卷积参数。
[0030]第二方面,本申请还提供了一种卷积运算装置,所述装置包括:
[0031]读取模块,用于读取用于进行卷积运算的原始特征图;
[0032]加载模块,用于针对原始特征图中的任一子特征图,从预设的内存布局中加载用于构成所述任一子特征图的至少一个目标特征瓦片;所述内存布局为将至少一个特征瓦片按照预设的内存布局方式写入至内存得到的;所述至少一个特征瓦片为对所述原始特征图进行瓦片化得到的;所述内存布局方式至少包括批处理维度、通道维度和所述特征瓦片在所述原始特征图中的位置维度;
[0033]展开模块,用于按照卷积层的卷积参数,对所述至少一个目标特征瓦片所组成的特征图进行展开,得到目标展开矩阵;
[0034]运算模块,用于将所述目标展开矩阵与所述卷积核对应的展开矩阵进行矩阵乘运算,获得针对所述原始特征图的卷积运算结果。
[0035]第三方面,本申请还提供了一种矩阵展开装置,包括:瓦片收集模块、模式解析模块、矩阵处理模块和矩阵缓存模块,其中:
[0036]所述瓦片收集模块,被配置为执行从纹理单元中获取用于构成原始特征图中的任一子特征图的至少一个目标特征瓦片;所述目标特征瓦片为所述纹理单元从预设的内存布
局中加载得到的;
[0037]所述模式解析模块,被配置为执行获取卷积层的卷积参数;
[0038]所述矩阵处理模块,被配置为执行按照所述卷积参数,对所述至少一个目标特征瓦片所组成的特征图进行展开处理,得到目标展开矩阵;
[0039]所述矩阵缓存模块,还被配置为执行缓存所述目标展开矩阵,以供执行单元基于所述目标展开矩阵生成所述原始特征图的卷积运算结果。
[0040]在其中一个实施例中,所述矩阵处理模块包括矩阵展开子模块和矩阵转置子模块,其中:
[0041]所述矩阵展开子模块,被配置为执行按照所述卷积参数,对所述至少一个目标特征瓦片所组成的特征图进行展开,得到展开后的矩阵;
[0042]所述矩阵转置子模块,被配置为执行对所述展开后的矩阵进行转置操作,得到所述目标展开矩阵。
[0043]在其中一个实施例中,所述卷积参数包括卷积步长和卷积核尺寸,所述矩阵展开子模块,具体被配置为执行根据所述卷积步长和所述卷积核尺寸,将所述至少一个目标特征瓦片所组成的特征图按原图的位置依次转化成至少一个行向量,并将所述至少一个行向量拼接成特征图矩阵,获得所述展开后的矩阵。
[0044]在其中一个实施例中,所述模式解析模块,具体被配置为执行获取当前卷本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种卷积运算方法,其特征在于,所述方法包括:针对原始特征图中的任一子特征图,从预设的内存布局中加载用于构成所述任一子特征图的至少一个目标特征瓦片;所述内存布局为将至少一个特征瓦片按照预设的数据排列方式写入至内存得到的;所述至少一个特征瓦片为对所述原始特征图进行瓦片化得到的;按照卷积层的卷积参数,对所述至少一个目标特征瓦片所组成的特征图进行展开,得到目标展开矩阵;将所述目标展开矩阵与所述卷积核对应的展开矩阵进行矩阵乘运算,获得所述原始特征图的卷积运算结果。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:对所述原始特征图进行瓦片化,得到所述至少一个特征瓦片;按照所述数据排列方式,将各所述特征瓦片按序写入至所述内存,获得所述内存布局;其中,所述数据排列方式的排列维度至少包括批处理维度、通道维度和所述特征瓦片在所述原始特征图中的位置维度。3.根据权利要求2所述的方法,其特征在于,所述按照所述数据排列方式,将各所述特征瓦片按序写入至所述内存,获得所述内存布局,包括:将在所述原始特征图中处于相同目标位置的至少一个特征瓦片,沿着与所述通道维度对应的方向依次写入至所述内存,得到与所述目标位置对应的特征瓦片区块。4.根据权利要求2所述的方法,其特征在于,所述对所述原始特征图进行瓦片化,得到所述至少一个特征瓦片,包括:获取对所述原始特征图进行瓦片化所采用的瓦片样板;确定所述瓦片样板在至少一个方向上的大小;对所述原始特征图进行矩阵补零,以使补零后的特征图在所述方向上的大小与所述瓦片样板在所述方向上的大小之间满足倍数关系;按照所述瓦片样板,对所述补零后的特征图进行瓦片化,得到所述至少一个特征瓦片。5.根据权利要求1所述的方法,其特征在于,每个所述特征瓦片在所述内存布局中具有对应的瓦片索引坐标,所述针对所述原始特征图中的任一子特征图,从预设的内存布局中加载用于构成所述任一子特征图的至少一个目标特征瓦片,包括:获取所述任一子特征图对应的展开矩阵位置坐标;所述展开矩阵位置坐标用于表征所述目标展开矩阵在所述原始特征图对应的展开矩阵中的位置信息;将所述展开矩阵位置坐标映射为目标瓦片索引坐标;所述目标瓦片索引坐标为构成所述任一子特征图的至少一个目标特征瓦片在所述内存布局中对应的瓦片索引坐标;在所述内存布局中加载与所述目标瓦片索引坐标对应的特征瓦片,获得所述目标特征瓦片。6.根据权利要求1所述的方法,其特征在于,所述按照卷积层的卷积参数,对所述至少一个目标特征瓦片所组成的特征图进行展开,得到目标展开矩阵,包括:按照卷积层的卷积参数,对所述至少一个目标特征瓦片所组成的特征图进行展开,得到展开后的矩阵;对所述展开后的矩阵进行转置操作,得到所述目标展开矩阵。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取当前卷积运算所属的卷积层;对所述卷积层的卷积模式进行解析,确定所述卷积层的卷积参数。8.一种卷积运算装置,其特征在于,所述装置包括:读取模块,用于读取用于进行卷积运算的原始特征图;加载模块,用于针对原始特征图中的任一子特征图,从预设的内存布局中加载用于构成所述任一子特征图的至少一个目标特征瓦片;所述内存布局为将至少一个特征瓦片按照预设的内存布局方式写入至内存得到的;所述至少一个特征瓦片为对所述原始特征图进行瓦片化得到的;所述内存布局方式至少包括批处理维度、通道维度和所述特征瓦片在所述原始特征图中的位置维度;展开模块,用于按照卷积层的卷积参数,对所述至少一个目标特征瓦片所组成的特征图进行展开,得到目标展开矩阵;运算模块,用于将所述目标展开矩阵与所述卷积核对应的展开矩阵进行矩阵乘运算,获得针对所述原始特征图的卷积运算结果。9.根据权利要求8所述的装置,其特征在于,所述装置还用于对所述原始特征图进行瓦片化,得到所述至少一个特征瓦片;按照所述数据排列方式,将各所述特征瓦片按序写入至所述内存,获得所述内存布局;其中,所述数据排列方式的排列维度至少包括批处理维度、通道维度和所述特征瓦片在所述原始特征图中的位置维度。10.根据权利要求9所述的装置,其特征在于,所述装置还用于将在所述原始特征图中处于相同目标位置的至少一个特征瓦片,沿着与所述通道维度对应的方向依次写入至所述内存,得到与所述目标位置对应的特征瓦片区块。11.根据权利要求9所述的装置,其特征在于,所述装置还用于获取对所述原始特征图进行瓦片化所采用的瓦片样板;确定所述瓦片样板在至少一个方向上的大小;对所述原始特征图进行矩阵补零,以使补零后的特征图在所述方向上的大小与所述瓦片样板在所述方向上的大小之间满足倍数关系;按照所述瓦片样板,对所述补零后的特征图进行瓦片化,得到所述至少一个特征瓦片。12.根据权利要求8所述的装置,其特征在于,每个所述特征瓦片在所述内存布局中具有对应的瓦片索引坐标,所述加载模块,具体用于获取所述任一子特征图对应的展开矩阵位置坐标;所述展开矩阵位置坐标用于表征所述目标展开矩阵在所述原始特征图对应的展开矩阵中的位置信息;将所述展开矩阵位置坐标映射为目标瓦片索引坐标;所述...

【专利技术属性】
技术研发人员:陶中玉张淮声卞仁玉
申请(专利权)人:格兰菲智能科技有限公司
类型:发明
国别省市:

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

1