[发明专利]门控激活单元运算的并行执行在审
申请号: | 201780095698.1 | 申请日: | 2017-10-20 |
公开(公告)号: | CN111194451A | 公开(公告)日: | 2020-05-22 |
发明(设计)人: | 埃里克·康拉德·埃尔森 | 申请(专利权)人: | 渊慧科技有限公司 |
主分类号: | G06N3/04 | 分类号: | G06N3/04;G06N3/063;G06F9/50 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 周亚荣;邓聪惠 |
地址: | 英国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 门控 激活 单元 运算 并行 执行 | ||
1.一种在并行处理设备上实现神经网络的方法,所述方法包括:
接收所述神经网络的门控激活单元的多个权重矩阵,所述门控激活单元具有两个或更多个层,每一个层定义包括以下的运算:(i)该层的权重矩阵与拼接的输入向量之间的矩阵运算,以及(ii)使用所述矩阵运算的结果的非线性激活运算;以及
通过将所述多个权重矩阵的对应行的组分配给相应的线程块来交织所述多个权重矩阵的行,每一个线程块是用于由并行处理设备的多个独立处理单元中的一个独立处理单元执行的计算单元。
2.根据权利要求1所述的方法,进一步包括使用所述神经网络通过以下来处理数据:
由每一个线程块,接收输入向量;
由每一个线程块,生成当前状态向量的相应的部分,包括:
使用分配给该线程块的所述多个权重矩阵的对应行的一个或多个组以及所述输入向量的拼接来执行多个部分矩阵运算,以及
使用所述多个部分矩阵运算的相应的结果来执行多个非线性激活运算。
3.根据权利要求1或权利要求2所述的方法,其中,交织所述行包括:将来自所述多个权重矩阵中的每一个权重矩阵的至少一个行分配给每一个线程块。
4.根据权利要求1、权利要求2或权利要求3所述的方法,其中,交织所述行包括:将相同数量的行分配给所有线程块。
5.根据前述权利要求中的任一项所述的方法,其中,所述门控激活单元是所述神经网络的门控循环单元或长短期记忆单元。
6.根据前述权利要求中的任一项所述的方法,其中,由每一个线程块生成所述当前状态向量的部分包括:由多个线程块至少部分地并行生成所述当前状态向量的多个部分。
7.根据前述权利要求中的任一项所述的方法,其中,层的所述运算包括:所述层的矩阵运算的结果和所述层的偏置向量之间的偏置加法运算,并且进一步包括:
将所述偏置向量的部分指配给所述多个线程块中的每一个线程块;以及
由每一个线程块将所述偏置向量的一部分加到矩阵运算的结果中。
8.根据前述权利要求中的任一项所述的方法,进一步包括:由包交织所述多个权重矩阵的行,使得所有包从每个权重矩阵接收一些行并且来自每个权重矩阵的对应行被分配给同一个包。
9.根据前述权利要求中的任一项所述的方法,进一步包括:由线程交织所述多个权重矩阵的值,使得所有线程从每个权重矩阵接收一些值并且来自每个权重矩阵的对应值被分配给同一个线程。
10.一种被配置为在并行处理设备上实现神经网络的系统,所述神经网络包括:
具有多个权重矩阵的至少一个门控激活单元,所述门控激活单元具有两个或更多个层,每一个层定义包括以下的运算:(i)该层的权重矩阵和拼接的输入向量之间的矩阵运算,以及(ii)使用所述矩阵运算的结果的非线性激活运算;
其中,所述系统被配置为通过将所述多个权重矩阵的对应行的组分配给相应的线程块来交织所述多个权重矩阵的行,每一个线程块是用于由所述并行处理设备的多个独立处理单元中的一个独立处理单元执行的计算单元。
11.根据权利要求10所述的系统,进一步被配置为:
由每一个线程块,接收输入向量;
由每一个线程块,生成当前状态向量的相应的部分,其中,每一个线程块被配置为:
使用分配给该线程块的所述多个权重矩阵的对应行的一个或多个组以及所述输入向量的拼接来执行多个部分矩阵运算,以及
使用所述多个部分矩阵运算的相应的结果来执行多个非线性激活运算。
12.根据权利要求10或权利要求11所述的系统被配置为实现根据权利要求3-9中的任一项所述的方法。
13.一种存储计算机程序指令的有形非暂时性存储介质,所述计算机程序指令用于实现根据权利要求1-9中的任一项所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于渊慧科技有限公司,未经渊慧科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780095698.1/1.html,转载请声明来源钻瓜专利网。