1.一种基于fpga的a3c深度强化学习算法加速器,包括用于提供交互环境的上位机和用于计算加速的fpga加速器,其特征在于,fpga加速器包括存储模块、前向计算模块、反向计算模块、反向输入计算模块、梯度计算模块和rmsprop参数更新模块,其中,
2.根据权利要求1所述的一种基于fpga的a3c深度强化学习算法加速器,其特征在于,第一矩阵计算单元包括乘法器和加法器,relu激活单元包括0值比较器,softmax激活单元包括指数运算器、除法器和加法器。
3.根据权利要求1所述的一种基于fpga的a3c深度强化学习算法加速器,其特征在于,前向计算模块的计算过程具体如下:
4.根据权利要求1所述的一种基于fpga的a3c深度强化学习算法加速器,其特征在于,反向输入计算模块包括乘法器、加法器和选择器;反向输入计算模块的计算过程包括以下步骤:
5.根据权利要求1所述的一种基于fpga的a3c深度强化学习算法加速器,其特征在于,bpe模块包括正负缓存单元、权重输入控制单元和第二矩阵计算单元,其中,所述正负缓存单元包括选择器和寄存器,用来记录正向输入节点数据的正负;所述权重输入控制单元包括选择器,用来根据正向输入节点数据的正负完成relu激活函数的求导运算;所述第二矩阵计算单元包括乘法器和加法器,第二矩阵计算单元用来完成反向输入特征图x’与权重输入控制单元输出之间的矩阵乘法运算,并将反向输出特征图y’输出至存储模块中。
6.根据权利要求5所述的一种基于fpga的a3c深度强化学习算法加速器,其特征在于,反向计算模块的计算过程包括以下步骤:
7.根据权利要求1所述的一种基于fpga的a3c深度强化学习算法加速器,其特征在于,每个gpe模块包括正负缓存单元、输入控制单元和n个并行乘法器;所述正负缓存单元包括选择器和寄存器,正负缓存单元的输入为正向输入节点数据x,正负缓存单元用来记录正向输入节点数据的正负;所述输入控制单元包括选择器,输入控制单元的输入为0和正向输入节点数据x,用来根据正向计算结果的正负完成relu激活函数的求导运算;n个并行乘法器用来完成反向输入节点数据x’,x’指反向输入特征图x’或反向输出特征图y’和输入控制单元输出之间的乘法运算,输出一组网络参数梯度值dθ至rmsprop参数更新模块;
8.根据权利要求1所述的一种基于fpga的a3c深度强化学习算法加速器,其特征在于,rmsprop参数更新模块包括梯度聚合单元和参数更新单元;所述梯度聚合单元包括多个并行度为n的加法器阵列,梯度聚合单元的输入为梯度计算模块传来的网络参数梯度值dθ,用来完成梯度计算模块中每个gpe模块的梯度聚合计算,计算完成后将聚合后的梯度值输出至参数更新单元;所述参数更新单元包括乘法器、加法器和寄存器,参数更新单元从存储模块中读取历史网络参数,并利用梯度聚合单元的计算结果进行参数更新计算,然后将新的网络参数输出至存储模块。
9.根据权利要求1所述的一种基于fpga的a3c深度强化学习算法加速器,其特征在于,rmsprop参数更新模块的计算过程如下:
10.根据权利要求1所述的一种基于fpga的a3c深度强化学习算法加速器,其特征在于,存储模块包括片上bram,片上bram包括智能体数据存储单元与反向计算模块缓存单元,智能体数据存储单元为包括中心智能体缓存和n个本地智能体缓存,中心智能体缓存用于存储中心网络参数θc,而每个本地智能体的存储分为参数θ缓存、参数g缓存、梯度值缓存和前向计算缓存;其中,参数θ缓存用于对本地智能体深度神经网络参数θ进行存储;参数g缓存对本地智能体所维护的rmpprop参数g进行存储;梯度值缓存用于对本地智能体的梯度值计算结果进行存储;前向计算缓存用于对本地智能体在推理计算过程中深度神经网络每一层的输入、