[发明专利]用于计算神经网络的节点值的硬件加速器和方法有效
申请号: | 201680023103.7 | 申请日: | 2016-03-11 |
公开(公告)号: | CN107533668B | 公开(公告)日: | 2021-01-26 |
发明(设计)人: | 约翰·保罗·斯特罗恩;布伦特·布坎南;郑乐 | 申请(专利权)人: | 慧与发展有限责任合伙企业 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G11C11/16;G06F9/06 |
代理公司: | 北京市汉坤律师事务所 11602 | 代理人: | 王其文;吴丽丽 |
地址: | 美国德*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 计算 神经网络 节点 硬件 加速器 方法 | ||
1.一种硬件加速器,包括:
交叉开关阵列,被编程为计算神经网络的节点值,所述交叉开关阵列包括多条行线、多条列线以及耦接在一条行线和一条列线的每个唯一组合之间的存储器单元,其中:
所述存储器单元根据权重矩阵进行编程;
所述多条行线中的每条行线用于根据节点值的输入向量接收输入电压;并且
所述多条列线中的每条列线用于输出表示所述输入向量和列线的点积电流的输出电流;
所述硬件加速器还包括第二交叉开关阵列,所述第二交叉开关阵列包括阈值行线、与所述交叉开关阵列的列线数量相同的第二多条列线以及耦接在所述阈值行线与每条列线之间的阈值装置,其中:
根据所述交叉开关阵列的每条列线的阈值电流调整所述阈值装置,用于修改来自所述交叉开关阵列的每条列线的所述输出电流;并且
通过将所述第二交叉开关阵列的每条列线耦接在所述交叉开关阵列的对应列线与对应电流比较器之间,所述第二交叉开关阵列可操作地耦接在所述交叉开关阵列和所述电流比较器之间,用于根据更新规则将每个修改的输出电流与阈值电流进行比较,以生成新的节点值的新的输入向量。
2.根据权利要求1所述的硬件加速器,其中:
如果特定输出电流大于或等于所述阈值电流,则将对应于所述特定输出电流的新的节点值设置为第一值;并且
如果所述特定输出电流小于所述阈值电流,则将对应于所述特定输出电流的所述新的节点值设置为第二值。
3.根据权利要求1所述的硬件加速器,包括控制器,所述控制器用于:
确定所述新的节点值是否是所述神经网络的最终节点值;以及
响应于所述控制器确定所述新的节点值不是最终节点值,将所述新的输入向量映射到将被传送到所述交叉开关阵列的所述多条行线的输入电压。
4.根据权利要求1所述的硬件加速器,其中:
耦接到所述阈值行线的阈值装置根据对应列线的阈值电流进行编程;
所述阈值行线用于接收阈值电压,其中所述阈值电压用于产生每条列线的输出修正电流;并且
所述点积电流将被与所述输出修正电流相加以产生所述输出电流。
5.根据权利要求4所述的硬件加速器,其中第一列的阈值电流不同于第二列的阈值电流。
6.根据权利要求4所述的硬件加速器,其中电流比较器耦接到所述交叉开关阵列的每条列线的端部,其中每个电流比较器包括相同的电路。
7.一种用于实现递归神经网络的硬件加速器,包括:
交叉开关阵列,被编程为计算神经网络的节点值,所述交叉开关阵列包括多条行线、阈值行线、多条列线、耦接在一条行线和一条列线的每个唯一组合之间的存储器单元以及耦接在所述阈值行线和每一列线之间的阈值装置,其中:
所述存储器单元根据权重矩阵进行编程;
耦接到所述阈值行线的所述阈值装置根据对应列线的阈值电流进行编程;
所述多条行线中的每条行线用于接收根据节点值的输入向量的输入电压;
所述阈值行线用于接收阈值电压,其中所述阈值电压用于从所述阈值装置产生每条列线的输出修正电流;并且
所述多条列线的各条列线用于输出表示对应的输出修正电流与所述输入向量和对应的列线的点积电流的和的输出电流;和
电流比较器,用于根据更新规则将每个输出电流与阈值电流进行比较,以生成新的节点值的新的输入向量。
8.根据权利要求7所述的硬件加速器,其中第一列的阈值电流不同于第二列的阈值电流。
9.根据权利要求7所述的硬件加速器,其中:
如果特定输出电流大于或等于所述阈值电流,则将对应于所述特定输出电流的新的节点值设置为第一值;并且
如果所述特定输出电流小于所述阈值电流,则将对应于所述特定输出电流的所述新的节点值设置为第二值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于慧与发展有限责任合伙企业,未经慧与发展有限责任合伙企业许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201680023103.7/1.html,转载请声明来源钻瓜专利网。