【技术实现步骤摘要】
用于执行人工神经网络正向运算的装置和方法
本披露总体上涉及人工神经网络,具体地涉及一种用于执行人工神经网络正向运算的装置和方法。
技术介绍
多层人工神经网络被广泛应用于模式识别,图像处理,函数逼近和优化计算等领域,多层人工网络在近年来由于其较高的识别准确度和较好的可并行性,受到学术界和工业界越来越广泛的关注。一种支持多层人工神经网络正向运算的已知方法是使用通用处理器。该方法通过使用通用寄存器堆和通用功能部件执行通用指令来支持上述算法。该方法的缺点之一是单个通用处理器的运算性能较低,无法满足通常的多层人工神经网络运算的性能需求。而多个通用处理器并行执行时,通用处理器之间相互通信又成为了性能瓶颈。另外,通用处理器需要把多层人工神经网络正向运算译码成一长列运算及访存指令序列,处理器前端译码带来了较大的功耗开销另一种支持多层人工神经网络反向训练的已知方法是使用图形处理器(GPU)。该方法通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来支持上述算法。由于GPU是专门用来执行图形图像运算以及科学计算的设备,没有 ...
【技术保护点】
1.一种用于执行人工神经网络正向运算的装置,包括数据互通模块、主运算模块、多个从运算模块,所述主运算模块通过所述数据互通模块与所述多个从运算模块物理连接,其中:/n主运算模块,用于获取神经元数据;/n数据互通模块,用于将神经元数据发送给多个从运算模块;/n从运算模块,用于将输入神经元向量分别与该从运算模块的权值向量进行点积运算得到输出结果;/n数据互通模块,用于将多个从运算的输出结果组成中间结果,将中间结果输出给主运算模块;/n所述主运算模块,用于依据中间结果得到最后的输出神经元向量。/n
【技术特征摘要】
1.一种用于执行人工神经网络正向运算的装置,包括数据互通模块、主运算模块、多个从运算模块,所述主运算模块通过所述数据互通模块与所述多个从运算模块物理连接,其中:
主运算模块,用于获取神经元数据;
数据互通模块,用于将神经元数据发送给多个从运算模块;
从运算模块,用于将输入神经元向量分别与该从运算模块的权值向量进行点积运算得到输出结果;
数据互通模块,用于将多个从运算的输出结果组成中间结果,将中间结果输出给主运算模块;
所述主运算模块,用于依据中间结果得到最后的输出神经元向量。
2.根据权利要求1所述的装置,其中,
所述主运算模块,具体用于将所述中间结果加偏置向量以及激活运算得到该层神经网络的最终输出神经元向量。
3.根据权利要求1所述的装置,其中,所述数据互通模块为H树模块,所述H树模块包括:多个节点构成的二叉树通路,每个节点将上游的数据同样地发给下游的两个节点,将下游的两个节点返回的数据相加,并返回给上游的节点。
4.根据权利要求3所述的装置,其中,主运算模块包括:
主运算单元、数据依赖关系判断单元和神经元缓存单元,其中:
主神经元缓存单元,用于缓存主运算模块在计算过程中用到的输入数据和输出数据;
主运算单元,还用于完成主运算模块的各种运算功能;
主数据依赖关系判断单元,用于为所述运算单元读写神经元缓存单元的端口,保证对神经元缓存单元中数据读写不存在一致性冲突,并且负责从神经元缓存单元读取输入梯度向量通过H树模块发送给从运算模块;以及来自H树模块的输出梯度向量被发送到运算单元。
5.根据权利要求1所述的装置,其中,每个从运算模块包括:
从运算单元、从数据依赖关系判定单元、神经元缓存单元、权值缓存单元和权值梯度缓存单元,其中:
从运算单元,用于进行算数逻辑运算;
从数据依赖关系判断单元,用于在计算过程中对神经元缓存单元、权值缓存单元和权值梯度缓存单元的读写操作,保证对神经元缓存单元、权值缓存单元和权值梯度缓存单元的读写不存在一致性冲突;
从神经元缓存单元,用于缓存输入梯度向量数据以及该从运算模块计算得到的输出梯度向量部分和;
从权值缓存单元,用于缓存该从运算模块在计算过程中需要的权值向量,对于每一个从运算模块,所述权值向量是权值矩阵中与该从运算模块相对应的列;以及
从权值梯度缓存单元,还用于缓存相应从运算模块在更新权值过程中需要的权值梯度数据,每个从运算模块存储的权值梯度数据与其存储的权值向量相对应。
6.根据权利要求5所述的装置,其中,从数...
【专利技术属性】
技术研发人员:刘少礼,郭崎,陈云霁,陈天石,
申请(专利权)人:中科寒武纪科技股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。