【技术实现步骤摘要】
一种神经网络的全连接层计算方法和装置
本专利技术涉及神经网络领域,更具体地,特别是指一种神经网络的全连接层计算方法和装置。
技术介绍
TVM是一款开源项目,主要由华盛顿大学的SAMPL组贡献开发。目前深度学习社区十分活跃,每天都有研究者提出新的op(层)以期望更好的提升模型的准确率。同时,随着越来越多的厂商开始做硬件,训练神经网络的时候会有越来越多的后端设备可供选择。而这对于做框架的人来说就比较头疼,既要尝试为新出现的各种op提供支持,又要在新出现的后端设备上实现现有的op。TVM项目因此应运而生,希望达到的目标就是研究人员只用写一次op,然后TVM自动对各种后端设备生成性能可观的代码。按照官方的定义,TVM是一套完整的堆叠,包括神经网络图优化(比如opfusion)和单个op优化等部分。TVM位于神经网络图的下方,底层硬件的上方。TensorCore(张量核)是Volta架构最重磅特性,是专门针对深度学习应用而设计的专用单元,实际上是一种矩阵乘累加的计算单元。矩阵乘累加计算在深度学习网络层算法中,比如卷积层 ...
【技术保护点】
1.一种神经网络的全连接层计算方法,其特征在于,包括执行以下步骤:/n接收格式为8位整型变量的输入数据,并判定所述输入数据的输入维度、输出维度、和单次样本是否满足张量核的调用接口的形状要求;/n响应于满足所述形状要求而基于8位整型变量的所述输入数据、8位整型变量的权重、和32位整型变量的偏置来定义计算规则;/n基于所述计算规则调度所述输入数据、所述权重、和所述偏置,以通过所述调用接口调用所述张量核的计算单元进行矩阵乘法运算,获得二维张量;/n将所述二维张量作为全连接层的计算结果输出到下一层。/n
【技术特征摘要】
1.一种神经网络的全连接层计算方法,其特征在于,包括执行以下步骤:
接收格式为8位整型变量的输入数据,并判定所述输入数据的输入维度、输出维度、和单次样本是否满足张量核的调用接口的形状要求;
响应于满足所述形状要求而基于8位整型变量的所述输入数据、8位整型变量的权重、和32位整型变量的偏置来定义计算规则;
基于所述计算规则调度所述输入数据、所述权重、和所述偏置,以通过所述调用接口调用所述张量核的计算单元进行矩阵乘法运算,获得二维张量;
将所述二维张量作为全连接层的计算结果输出到下一层。
2.根据权利要求1所述的方法,其特征在于,判定所述输入数据的输入维度、输出维度、和单次样本是否满足张量核的调用接口的形状要求包括:
基于所述输入数据确定所述输入数据的形状、所述权重的形状、和所述偏置的形状;
基于所述输入数据的形状、所述权重的形状、和所述偏置的形状确定所述输入数据的所述输入维度、所述输出维度、和所述单次样本的数值;
响应于所述输入维度、所述输出维度、和所述单次样本的数值均能被16整除,或所述输入维度数值能被16整除、所述输出维度的数值被8整除、所述单次样本的数值被32整除,或所述输入维度数值能被16整除、所述输出维度的数值被32整除、所述单次样本的数值被8整除,而判定满足所述形状要求。
3.根据权利要求2所述的方法,其特征在于,还包括:响应于满足所述形状要求而调用使用DP4A指令集的计算单元直接计算所述二维张量,并作为全连接层的计算结果输出到下一层。
4.根据权利要求1所述的方法,其特征在于,基于所述计算规则调度所述输入数据、所述权重、和所述偏置,以通过所述调用接口调用所述张量核的计算单元进行矩阵乘法运算,获得二维张量包括:定义执行调度使用的关键参数,并基于所述关键参数执行以下步骤:
对所述输入数据和所述权重执行数据划分,以从所在的全局内存加载到共享内存;
通过所述调用接口的矩阵加载接口将经过数据划分的所述输入数据和所述权重从所述共享内存加载到所述调用接口的矩阵内存作用域;
在所述矩阵内存作用域中通过所述调用接口的矩阵乘法计算接口使用所述张量核的计算单元基于所述计算规则对经过数据划分的所述输入数据和所述权重执行矩阵乘,获得经过数据划分的无偏置二维张量。
5.根据权利要求4所述的方法,其特征在于,还包括:基于所述关键参数额外地执行以下步骤:
通过所述调用接口的矩阵存储接口将经过数据划分的所述无偏置二维张量从所述矩阵内存作用域加载到所述共享内存,并在所述共享内存中基于所述计算规则为经过数据划分的所述无偏置二维张量加入所述偏置,获得经过数据划分的所述二维张量,其中所述偏置使用预定的调度方式执行而非所述调用接口执行调度;<...
【专利技术属性】
技术研发人员:宋小妹,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。