[发明专利]一种神经网络的卷积方法和装置有效
申请号: | 202010673103.X | 申请日: | 2020-07-14 |
公开(公告)号: | CN111859270B | 公开(公告)日: | 2022-11-25 |
发明(设计)人: | 王申领 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F17/15 | 分类号: | G06F17/15;G06N3/04 |
代理公司: | 北京连和连知识产权代理有限公司 11278 | 代理人: | 陈黎明;张腾 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 神经网络 卷积 方法 装置 | ||
1.一种神经网络的卷积方法,其特征在于,包括执行以下步骤:
获取输入图片和卷积核,根据数据尺寸和通道将其拆分为多个图片数据块和多个卷积核数据块;
分别使用图片转置矩阵和卷积核转置矩阵将所述多个图片数据块和所述多个卷积核数据块转换为多个图片数据块矩阵和多个卷积核数据块矩阵,并进一步各自拼合为图片数据块复合矩阵和卷积核数据块复合矩阵;
对所述图片数据块复合矩阵和所述卷积核数据块复合矩阵执行批量矩阵乘,以获得复合输出矩阵,并进一步按照所述图片数据块矩阵和所述卷积核数据块矩阵的尺寸拆分为多个输出矩阵,其进一步包括:
基于输入图片的数量、输入图片的长度、输入图片的宽度、和所述图片数据块矩阵的数据块大小确定所述多个图片数据块矩阵的总数量;
基于所述多个图片数据块矩阵的总数量、输入通道的总数量、和输出通道的总数量确定所述图片数据块复合矩阵和所述卷积核数据块复合矩阵是否满足Tensorcore批量矩阵乘的形状要求;
响应于满足所述形状要求而调用Tensorcore方法来为所述图片数据块复合矩阵和所述卷积核数据块复合矩阵执行批量矩阵乘;以及
响应于不满足所述形状要求而调用Direct方法来为所述图片数据块复合矩阵和所述卷积核数据块复合矩阵执行批量矩阵乘;
使用逆变换转置矩阵分别对所述多个输出矩阵执行逆变换处理以获得卷积输出结果。
2.根据权利要求1所述的方法,其特征在于,Tensorcore批量矩阵乘的形状要求包括:
所述多个图片数据块矩阵的总数量、所述输入通道的总数量、和所述输出通道的总数量均能被16整除;或
所述多个图片数据块矩阵的总数量能被8整除、所述输入通道的总数量能被16整除、和所述输出通道的总数量能被32整除;或
所述多个图片数据块矩阵的总数量能被32整除、所述输入通道的总数量能被16整除、和所述输出通道的总数量能被8整除。
3.根据权利要求1所述的方法,其特征在于,调用Tensorcore方法来为所述图片数据块复合矩阵和所述卷积核数据块复合矩阵执行批量矩阵乘包括:
申请内存并初始化累加器;
由数据块进程将所述图片数据块复合矩阵和所述卷积核数据块复合矩阵从全局内存加载到共享内存;
调用Tensorcore方法中仿射变换单位矩阵乘加的加载指令将所述图片数据块复合矩阵和所述卷积核数据块复合矩阵分别以单个仿射变换单位矩阵的形式从共享内存加载到寄存器;
调用Tensorcore方法中的矩阵乘指令执行基于所述形状要求的单次矩阵乘;
调用Tensorcore方法中仿射变换单位矩阵乘加的存储指令将单次矩阵乘的结果加载到共享内存;
将所有单次矩阵乘的结果在共享内存中拼合并作为所述复合输出矩阵加载到全局内存。
4.根据权利要求1所述的方法,其特征在于,调用Direct方法来为所述图片数据块复合矩阵和所述卷积核数据块复合矩阵执行批量矩阵乘包括:
申请内存并初始化累加器;
由数据块进程将所述图片数据块复合矩阵和所述卷积核数据块复合矩阵从全局内存加载到共享内存;
由数据块进程在共享内存中分别独立地为相对应的所述图片数据块矩阵和所述卷积核数据块矩阵执行单次矩阵乘;
将所有单次矩阵乘的结果在共享内存中拼合并作为所述复合输出矩阵加载到全局内存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010673103.X/1.html,转载请声明来源钻瓜专利网。