一种基于FPGA实现RNN神经网络的硬件加速器及方法

基本信息

申请号 CN201611107809.X 申请日 -
公开(公告)号 CN107704916B 公开(公告)日 2020-07-03
申请公布号 CN107704916B 申请公布日 2020-07-03
分类号 G06N3/04;G06N3/063 分类 -
发明人 康君龙;韩松;单羿 申请(专利权)人 北京深鉴科技有限公司
代理机构 北京卓孚律师事务所 代理人 任宇
地址 美国加利福尼亚州圣何塞罗杰克大道2100号
法律状态 -

摘要

摘要 本发明提出一种实现循环神经网络(RNN)的方法,所述方法包括步骤:初始化步骤,完成数据的初始化,即,将计算Whxx所需的数据读入FPGA片上内存,包括输入向量x,和输入向量x对应权重矩阵Whx的所有信息;步骤1,计算单元开始计算Whxx,同时将计算Whhx所需的数据读入FPGA片上内存;步骤2,计算单元计算Whhht‑1,其中ht‑1是隐含层对上一个输入向量的激励值,同时将计算下一个Whxx所需的数据读入FPGA片上内存;迭代重复执行上述步骤1和步骤2。本发明另外提出一种用于实现RNN神经网络的装置,包括输入接收单元,用于接收多个输入向量或隐含层激励值向量;多个计算单元PE,每个计算单元包括稀疏矩阵读取单元,运算单元和运算缓存单元;数据组合单元,用于接收从各个计算单元中的缓存单元输出的矩阵运算的结果,并将其组合成一个完整的矩阵运算结果输出至加法器;控制单元,用于对所述多个计算单元进行全局控制。