[发明专利]用于执行人工神经网络正向运算的装置和方法有效
申请号: | 201610037645.1 | 申请日: | 2016-01-20 |
公开(公告)号: | CN106991476B | 公开(公告)日: | 2020-04-10 |
发明(设计)人: | 刘少礼;郭崎;陈云霁;陈天石 | 申请(专利权)人: | 中科寒武纪科技股份有限公司 |
主分类号: | G06N3/06 | 分类号: | G06N3/06 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 吕雁葭 |
地址: | 100190 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 执行 人工 神经网络 正向 运算 装置 方法 | ||
1.一种用于执行人工神经网络正向运算的装置,包括指令缓存单元、控制器单元、直接内存访问单元、H树模块、主运算模块、以及多个从运算模块,其中:
指令缓存单元用于通过直接内存访问单元读入指令并缓存读入的指令;
控制器单元用于从指令缓存单元读取指令,并将该指令译码成控制H树模块、主运算模块、以及从运算模块行为的微指令;
直接内存访问单元用于从外部地址空间向主运算模块和各从运算模块的相应数据缓存单元中写数据或从所述数据缓存单元向外部地址空间读数据;
H树模块用于,在每层神经网络反向训练开始计算的阶段,主运算模块通过H树模块向所有的从运算模块传输本层的输入神经元向量,在从计算模块的计算过程完成后,H树模块逐级将各从计算模块的输出神经元值拼成中间结果向量;
主运算模块用于利用中间结果向量完成后续计算。
2.根据权利要求1所述的装置,其中,多个从运算模块利用相同的输入神经元向量和各自不同的权值向量,并行地计算出各自的输出神经元值。
3.根据权利要求1所述的装置,其中,主运算模块对中间结果向量执行以下任一项操作:
对加偏置操作,在中间结果向量上加上偏置;
对中间结果向量进行激活,激活函数active是sigmoid,tanh,relu,softmax中的任一个;
采样操作,将中间结果向量与随机数比较,大于随机数则输出1,小于随机数则输出0;或者
池化操作,包括最大值池化或平均值池化(AVGPOOLING)。
4.根据权利要求1所述的装置,其中,从运算模块包括输入神经元缓存单元,用于缓存输入神经元数据。
5.根据权利要求1所述的装置,其中,H树模块构成主运算模块和所述多个从运算模块之间的数据通路,并具有H树型的结构,H树是由多个节点构成的二叉树通路,每个节点将上游的数据同样地发给下游的两个节点,将下游的两个节点返回的数据合并,并返回给上游的节点。
6.根据权利要求1所述的装置,其中,主运算模块包括运算单元、数据依赖关系判断单元和神经元缓存单元,其中:
神经元缓存单元用于缓存主运算模块在计算过程中用到的输入数据和输出数据;
运算单元完成主运算模块的各种运算功能;
数据依赖关系判断单元是运算单元读写神经元缓存单元的端口,保证对神经元缓存单元中数据读写不存在一致性冲突,并且负责从神经元缓存单元读取输入神经元向量通过H树模块发送给从运算模块;以及
来自H树模块的中间结果向量被发送到运算单元。
7.根据权利要求1所述的装置,其中,每个从运算模块包括运算单元、数据依赖关系判定单元、神经元缓存单元和权值缓存单元,其中:
运算单元接收控制器单元发出的微指令并进行算数逻辑运算;
数据依赖关系判断单元负责计算过程中对神经元缓存单元和权值缓存单元的读写操作,保证对神经元缓存单元和权值缓存单元的读写不存在一致性冲突;
神经元缓存单元缓存输入神经元向量数据以及该从运算模块计算得到的输出神经元值;以及
权值缓存单元缓存该从运算模块在计算过程中需要的权值向量。
8.根据权利要求6或7所述的装置,其中,通过以下方式保证读写不存在一致性冲突:判断尚未执行的微指令与正在执行过程中的微指令的数据之间是否存在依赖关系,如果不存在,允许该条微指令立即发射,否则需要等到该条微指令所依赖的所有微指令全部执行完成 后该条微指令才允许被发射。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科寒武纪科技股份有限公司,未经中科寒武纪科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610037645.1/1.html,转载请声明来源钻瓜专利网。