用于执行人工神经网络正向运算的装置和方法制造方法及图纸

技术编号:24686643 阅读:69 留言:0更新日期:2020-06-27 08:50
本申请涉及一种用于执行人工神经网络正向运算的装置,所述装置包括控制器单元、主运算模块、数据通路模块以及从运算模块,使用该装置可以实现多层人工神经网络的正向运算。对于每一层来说,首先对输入神经元数据进行加权求和计算出本层的中间结果向量,再对该中间结果向量加偏置并激活得到输出神经元数据,并将该输出神经元数据作为下一层的输入神经元数据。

Device and method for performing forward operation of artificial neural network

【技术实现步骤摘要】
用于执行人工神经网络正向运算的装置和方法本申请是针对申请号为:201610037645.1(专利技术创造名称:用于执行人工神经网络正向运算的装置和方法,申请日:2016年1月20日)提出的分案申请。
本申请涉及人工神经网络
,特别是涉及一种用于执行人工神经网络正向运算的装置和方法。
技术介绍
多层人工神经网络被广泛应用于模式识别,图像处理,函数逼近和优化计算等领域,多层人工网络在近年来由于其较高的识别准确度和较好的可并行性,受到学术界和工业界越来越广泛的关注。一种支持多层人工神经网络正向运算的已知方法是使用通用处理器。该方法通过使用通用寄存器堆和通用功能部件执行通用指令来支持上述算法。该方法的缺点之一是单个通用处理器的运算性能较低,无法满足通常的多层人工神经网络运算的性能需求。而多个通用处理器并行执行时,通用处理器之间相互通信又成为了性能瓶颈。另外,通用处理器需要把多层人工神经网络正向运算译码成一长列运算及访存指令序列,处理器前端译码带来了较大的功耗开销。另一种支持多层人工神经网络反向训练的已知方法是使用图形处理器本文档来自技高网...

【技术保护点】
1.一种用于执行人工神经网络正向运算的装置,其特征在于,所述装置包括控制器电路、主运算电路、数据通路电路以及从运算电路;/n所述控制器电路,用于读取指令,并对所述指令进行译码,得到微指令,所述微指令用于对所述主运算电路、所述数据通路电路或所述从运算电路的行为进行控制;/n所述主运算电路,用于将输入神经元数据传输至所述数据通路电路;/n所述数据通路电路,用于将所述输入神经元数据传输至所述从运算电路,以及将所述从运算电路得到的输出神经元数据拼成中间结果向量;/n所述主运算电路,还用于根据所述中间结果向量进行后续处理。/n

【技术特征摘要】
1.一种用于执行人工神经网络正向运算的装置,其特征在于,所述装置包括控制器电路、主运算电路、数据通路电路以及从运算电路;
所述控制器电路,用于读取指令,并对所述指令进行译码,得到微指令,所述微指令用于对所述主运算电路、所述数据通路电路或所述从运算电路的行为进行控制;
所述主运算电路,用于将输入神经元数据传输至所述数据通路电路;
所述数据通路电路,用于将所述输入神经元数据传输至所述从运算电路,以及将所述从运算电路得到的输出神经元数据拼成中间结果向量;
所述主运算电路,还用于根据所述中间结果向量进行后续处理。


2.根据权利要求1所述的装置,其特征在于,所述从运算电路的数量为多个;
多个所述从运算电路,用于根据相同的所述输入神经元数据以及各所述从运算电路所对应的不同的权值向量,并行计算出各所述从运算电路对应的输出神经元数据;
所述从运算电路对应的权值向量包括权值矩阵中与所述从运算电路相对应的列向量。


3.根据权利要求1所述的装置,其特征在于,所述数据通路电路包括多个节点;
所述将所述输入神经元数据传输至所述从运算电路,包括:将上游的所述节点的数据发给下游的所述节点,通过逐级传输将所述输入神经元数据传输至所述从运算电路;以及
所述将所述从运算电路得到的输出神经元数据拼成中间结果向量,包括:
所述从运算电路将输出神经元数据发送给下游的所述节点,所述下游的节点所述输出神经元数据进行合并,并将所述合并结果发送至上一级的所述节点,通过逐级合并将所述从运算电路的输出神经元数据拼成所述中间结果向量。


4.根据权利要求1所述的装置,其特征在于,所述数据通路电路包括多个节点构成的二叉树通路。


5.根据权利要求1所述的装置,其特征在于,所述装置还包括指令缓存电路,所述指令缓存电路用于缓存所述指令。


6.根据权利要求1所述的装置,其特征在于,
所述输入神经元数据包括输入神经元向量;和/或
所述输出神经元数据包括输出神经元向量。


7.根据权利要求1-6任一所述的装置,其特征在于,所述主运算电路根据所述中间结果向量进行后续处理,包括以下操作的一种或多种:
加偏置操作,所述加偏置操作包括在所述中间结果向量上加上偏置;
激活操作,所述激活操作包括根据激活函数对所述中间结果向量进行激活;
采样操作,所述采样操作包括将所述中间结果向量与随机数进行比较;若所述中间结果向量大于随机数,则输出1;若所述中间结果向量小于随机数,则输出0;
池化操作,所述池化操作包括最大值池化或平均值池化。


8.根据权利要求1所述的装置,其特征在于,所述主运算电路包括第一神经元缓存电路、第一运算电路以及第一数据依赖关系判断电路;
所述第一神经元缓存电路,用于缓存所述主运算电路在计算过程中用到的输入数据和输出数据;
所述第一运算电路,用于完成所述主运算电路的运算功能;
所述第一数据依赖关系判断电路,用于保证对所述第一神经元缓存电路中的读写不存在一致性冲突。


9.根据权利要求1所述的装置,其特征在于,所述从运算电路包括第二神经元缓存电路、权值缓存电路、第二运算电路以及第二数据依赖关系判断电路;
所述第二神经元缓存电路,用于缓存所述从运算电路的输入神经元数据和输出神经元数据;
所述权值缓存电路,用于缓存所述从运算电路在计算过程中需要的权值数据;
所述第二运算电路,用于接收所述控制器电路发出的所述微指令,并根据所述微指令进行算数逻辑运算;
所述第二数据依赖关系判断电路,用于保证对所述第二神经元缓存电路和所述权值缓存电路中的读写不存在一致性冲突。


10.根据权利要求8和权利要求9所述的装置,其特征在于,所述第一数据依赖关系判断电路和第二数据依赖关系判断电路,还用于:
判断未执行的微指令对应的第一数据与正在执行过程中的微指令对应的第二数据之间是否存在依赖关系;若所述第一数据与所述第二数据之间不存在依赖关系,则允许所述未执行的微指令立即执行;若所述第一数据与所述第二数据之间存在依赖关系,则在与所述未执行的微指令存在依赖关系的所有微指令全部执行完成后,允许所述未执行的微指令执行。


11....

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:中科寒武纪科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1