【技术实现步骤摘要】
一种神经网络的卷积方法和装置
本专利技术涉及神经网络领域,更具体地,特别是指一种神经网络的卷积方法和装置。
技术介绍
TVM是目前最流行的AI(人工智能)编译器软件,已在业界得到广泛应用,主要作用于人工智能深度学习系统的编译器堆栈,TVM堆栈的目标在于提供一个可重复使用的工具链来将高级神经网络描述从深度学习框架前端向下编译为多硬件后端的低级机器代码,可以让使用人员可以最大程度上实现对所使用设备的高效利用的程序。目前TVM支持在不同数据格式布局下的不同方法的二维卷积计算,比如在NCHW(图片数量,图片通道,图片长,图片宽)的排列布局下支持多种计算二维卷积的方法,但在NHWC(图片数量,图片长,图片宽,图片通道)的排列布局下仅支持缺乏可用的快速卷积算法,影响卷积速度和计算性能;另外NHWC数据排列格式下二维卷积运算速度慢,无法满足推理时的性能要求。针对现有技术中NHWC格式下二维卷积运算速度慢、缺乏快速卷积算法的问题,目前尚无有效的解决方案。
技术实现思路
有鉴于此,本专利技术实施例的目的在于提出一种 ...
【技术保护点】
1.一种神经网络的卷积方法,其特征在于,包括执行以下步骤:/n获取输入图片和卷积核,根据数据尺寸和通道将其拆分为多个图片数据块和卷积核数据块;/n分别使用图片转置矩阵和卷积核转置矩阵将所述多个图片数据块和所述多个卷积核数据块转换为多个图片数据块矩阵和多个卷积核数据块矩阵,并进一步各自拼合为图片数据块复合矩阵和卷积核数据块复合矩阵;/n对所述图片数据块复合矩阵和所述卷积核数据块复合矩阵执行批量矩阵乘,以获得复合输出矩阵,并进一步按照所述图片数据块矩阵和所述卷积核数据块矩阵的尺寸拆分为多个输出矩阵;/n使用逆变换转置矩阵分别对所述多个输出矩阵执行逆变换处理以获得卷积输出结果。/n
【技术特征摘要】
1.一种神经网络的卷积方法,其特征在于,包括执行以下步骤:
获取输入图片和卷积核,根据数据尺寸和通道将其拆分为多个图片数据块和卷积核数据块;
分别使用图片转置矩阵和卷积核转置矩阵将所述多个图片数据块和所述多个卷积核数据块转换为多个图片数据块矩阵和多个卷积核数据块矩阵,并进一步各自拼合为图片数据块复合矩阵和卷积核数据块复合矩阵;
对所述图片数据块复合矩阵和所述卷积核数据块复合矩阵执行批量矩阵乘,以获得复合输出矩阵,并进一步按照所述图片数据块矩阵和所述卷积核数据块矩阵的尺寸拆分为多个输出矩阵;
使用逆变换转置矩阵分别对所述多个输出矩阵执行逆变换处理以获得卷积输出结果。
2.根据权利要求1所述的方法,其特征在于,对所述图片数据块复合矩阵和所述卷积核数据块复合矩阵执行批量矩阵乘,以获得复合输出矩阵,并进一步按照所述图片数据块矩阵和所述卷积核数据块矩阵的尺寸拆分为多个输出矩阵的步骤具体包括:
基于输入图片的数量、输入图片的长度、输入图片的宽度、和所述图片数据块矩阵的数据块大小确定所述多个图片数据块矩阵的总数量;
基于所述多个图片数据块矩阵的总数量、输入通道的总数量、和输出通道的总数量确定所述图片数据块复合矩阵和所述卷积核数据块复合矩阵是否满足Tensorcore批量矩阵乘的形状要求;
响应于满足所述形状要求而调用Tensorcore方法来为所述图片数据块复合矩阵和所述卷积核数据块复合矩阵执行批量矩阵乘;
响应于不满足所述形状要求而调用Direct方法来为所述图片数据块复合矩阵和所述卷积核数据块复合矩阵执行批量矩阵乘。
3.根据权利要求2所述的方法,其特征在于,Tensorcore批量矩阵乘的形状要求包括:
所述多个图片数据块矩阵的总数量、所述输入通道的总数量、和所述输出通道的总数量均能被16整除;或
所述多个图片数据块矩阵的总数量能被8整除、所述输入通道的总数量能被16整除、和所述输出通道的总数量能被32整除;或
所述多个图片数据块矩阵的总数量能被32整除、所述输入通道的总数量能被16整除、和所述输出通道的总数量能被8整除。
4.根据权利要求2所述的方法,其特征在于,调用Tensorcore方法来为所述图片数据块复合矩阵和所述卷积核数据块复合矩阵执行批量矩阵乘包括:
申请内存并初始化累加器;
由数据块进程将所述图片数据块复合矩阵和所述卷积核数据块复合矩阵从全局内存加载到共享内存;
调用Tensorcore方法中仿射变换单位矩阵乘加的加载指令将所述图片数据块复合矩阵和所述卷积核数据块复合矩阵分别以单个仿射变换单位矩阵的形式从共享内存加载到寄存器;
调用Tensorcore方法中的矩阵乘指令执行基于所述形状要求的单次矩阵乘;
调用Tensorcore方法中仿射变换单位矩阵乘加的存储指令将单次矩阵乘的结果加载到共享内存;
将所有单次矩阵乘的结果在共享内存中拼合并作为所述复合输出矩阵加载到全局内存。
5.根据权利要求2所述的方法,其特征在于,调用Direct方法来为所述图片数据块复合矩阵和所述卷积核数据块复合矩阵执行批量矩阵乘包括:
申请内存并初始化累加器;
由数据块进程将所述图片数据块复合矩阵和所述卷积核数据块复合矩阵从全局内存加载到共享内存;
由数据块进程在共享内存中分别独立地为相对应的所述图片数据块矩阵和所述卷积核数据块矩阵执行单次矩阵乘;
将所有单次矩阵乘的结果在共享内存中拼合并作为所述复合输出矩阵加载到全局内存。
6.一种神经网络的卷积装置,其特...
【专利技术属性】
技术研发人员:王申领,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。