[发明专利]一种神经网络的全连接层计算方法和装置有效
申请号: | 202010725384.9 | 申请日: | 2020-07-24 |
公开(公告)号: | CN111860838B | 公开(公告)日: | 2022-12-20 |
发明(设计)人: | 宋小妹 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06N3/08 | 分类号: | G06N3/08;G06N3/04 |
代理公司: | 北京连和连知识产权代理有限公司 11278 | 代理人: | 杨帆;宋薇薇 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 神经网络 连接 计算方法 装置 | ||
本发明公开了一种神经网络的全连接层计算方法和装置,方法包括:接收格式为8位整型变量的输入数据,并判定输入数据的输入维度、输出维度、和单次样本是否满足张量核的调用接口的形状要求;响应于满足形状要求而基于8位整型变量的输入数据、8位整型变量的权重、和32位整型变量的偏置来定义计算规则;基于计算规则调度输入数据、权重、和偏置,以通过调用接口调用张量核的计算单元进行矩阵乘法运算,获得二维张量;将二维张量作为全连接层的计算结果输出到下一层。本发明能够在dense层针对int8输入调用TensorCore计算单元执行卷积,大幅度提升计算性能。
技术领域
本发明涉及神经网络领域,更具体地,特别是指一种神经网络的全连接层计算方法和装置。
背景技术
TVM是一款开源项目,主要由华盛顿大学的SAMPL组贡献开发。目前深度学习社区十分活跃,每天都有研究者提出新的op(层)以期望更好的提升模型的准确率。同时,随着越来越多的厂商开始做硬件,训练神经网络的时候会有越来越多的后端设备可供选择。
而这对于做框架的人来说就比较头疼,既要尝试为新出现的各种op提供支持,又要在新出现的后端设备上实现现有的op。TVM项目因此应运而生,希望达到的目标就是研究人员只用写一次op,然后TVM自动对各种后端设备生成性能可观的代码。按照官方的定义,TVM是一套完整的堆叠,包括神经网络图优化(比如op fusion)和单个op优化等部分。TVM位于神经网络图的下方,底层硬件的上方。
TensorCore(张量核)是Volta架构最重磅特性,是专门针对深度学习应用而设计的专用单元,实际上是一种矩阵乘累加的计算单元。矩阵乘累加计算在深度学习网络层算法中,比如卷积层、dense(全连接)层等是最重要、最耗时的一部分。在TVM中目前提供了float16的TensorCore方案的支持,但不兼容int8类型输入,int8只能选择dp4a方案,但dp4a指令相比于tensorcore指令来说性能存在差距。
针对现有技术中dense层对于int8输入不能调用TensorCore导致性能降低的问题,目前尚无有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提出一种神经网络的全连接层计算方法和装置,能够在dense层针对int8输入调用TensorCore计算单元执行卷积,大幅度提升计算性能。
基于上述目的,本发明实施例的第一方面提供了一种神经网络的全连接层计算方法,包括执行以下步骤:
接收格式为8位整型变量的输入数据,并判定输入数据的输入维度、输出维度、和单次样本是否满足张量核的调用接口的形状要求;
响应于满足形状要求而基于8位整型变量的输入数据、8位整型变量的权重、和32位整型变量的偏置来定义计算规则;
基于计算规则调度输入数据、权重、和偏置,以通过调用接口调用张量核的计算单元进行矩阵乘法运算,获得二维张量;
将二维张量作为全连接层的计算结果输出到下一层。
在一些实施方式中,判定输入数据的输入维度、输出维度、和单次样本是否满足张量核的调用接口的形状要求包括:
基于输入数据确定输入数据的形状、权重的形状、和偏置的形状;
基于输入数据的形状、权重的形状、和偏置的形状确定输入数据的输入维度、输出维度、和单次样本的数值;
响应于输入维度、输出维度、和单次样本的数值均能被16整除,或输入维度数值能被16整除、输出维度的数值被8整除、单次样本的数值被32整除,或输入维度数值能被16整除、输出维度的数值被32整除、单次样本的数值被8整除,而判定满足形状要求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010725384.9/2.html,转载请声明来源钻瓜专利网。