基于FPGA实现人工神经网络的方法和装置制造方法及图纸

技术编号:21851635 阅读:33 留言:0更新日期:2019-08-14 00:35
本发明专利技术涉及一种基于FPGA实现人工神经网络的方法和装置,涉及人工智能技术领域。其中,所述装置包括:存储模块,基于IP核例化生成,用于存储二进制指令和运算所需数据;控制模块,用于根据获取的二进制指令产生控制信号,以对其所连接的模块的工作状态进行控制;地址产生模块,用于在所述控制模块的控制下生成地址,以根据所述地址从所述存储模块读取所述二进制指令或者所述运算所需数据;运算模块,用于在所述控制模块的控制下,根据获取的所述运算所需数据进行运算。通过以上装置,能够提高人工神经网络的运算效率,降低功耗,进而使人工神经网络能够应用于嵌入式系统。

A Method and Device for Implementing Artificial Neural Network Based on FPGA

【技术实现步骤摘要】
基于FPGA实现人工神经网络的方法和装置
本专利技术涉及人工智能
,尤其涉及一种基于FPGA实现人工神经网络的方法和装置。
技术介绍
目前,基于人工神经网络(比如RNN模型、CNN模型等)的研究、应用大多是在计算机设备(如PC机)上完成的。通常,是先基于tensorflow、caffe等开源框架对人工神经网络进行软件编程,然后在CPU或GPU上运行相应的程序以完成相关运算。在实现本专利技术的过程中,本专利技术的专利技术人发现:在CPU、GPU上运行基于开发框架实现的人工神经网络程序时,存在运算效率较低、功耗较高、人工神经网络训练时间较长的问题,因而人工神经网络难以应用于嵌入式系统,限制了人工神经网络的大规模应用。因此,针对以上不足,需要提供一种实现人工神经网络的方法和装置,以提高人工神经网络的运算效率,降低功耗,进而使人工神经网络能够应用于嵌入式系统。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是解决现有基于开源框架实现的人工神经网络程序存在运算效率较低、功耗较大,难以应用于嵌入式系统的问题。(二)技术方案为了解决上述技术问题,一方面,本专利技术提供了一种基于FPGA实现人工神经网络的装置。本专利技术的基于FPGA实现人工神经网络的装置包括:存储模块,基于IP核例化生成,用于存储二进制指令和运算所需数据;控制模块,用于根据从所述存储模块获取的二进制指令产生控制信号,以通过所述控制信号对其所连接的模块的工作状态进行控制;地址产生模块,与所述控制模块电连接,用于在所述控制模块的控制下生成地址,以根据所述地址从所述存储模块读取所述二进制指令或者所述运算所需数据;运算模块,与所述控制模块电连接,用于在所述控制模块的控制下,根据获取的所述运算所需数据进行运算。可选地,所述存储模块包括:一个ROM和至少一个RAM;其中,所述一个ROM用于存储所述二进制指令,所述至少一个RAM用于存储所述运算所需数据。可选地,所述地址产生模块包括:判断单元、指令地址记录单元、数据地址记录单元;所述判断单元,用于根据控制信号判断当前所需地址的类型;所述地址的类型包括:指令地址、数据地址;所述指令地址记录单元,用于在所述当前所需地址的类型为指令地址的情况下,生成当前二进制指令的地址;所述数据地址记录单元,用于在所述当前所需地址的类型为数据地址的情况下,生成当前运算所需数据的地址。可选地,所述地址产生模块还包括:地址译码单元;所述地址译码单元,用于在读取所述存储模块时提供选通信号,以使所述至少一个RAM和所述一个ROM在同一时刻只有一个选通。可选地,所述运算模块包括:选通单元、多个运算单元;所述选通单元,用于根据当前接收的控制信号确定选通的运算单元,并调用所述选通的运算单元进行运算;所述运算单元,用于在选通后根据运算所需的数据进行运算。可选地,所述多个运算单元包括:加运算单元、减运算单元、乘运算单元、除运算单元、relu激活函数运算单元、relu激活函数导数运算单元、softmax激活函数运算单元、softmax激活函数导数运算单元。可选地,所述装置还包括:时钟模块,与所述控制模块电连接,用于生成时钟信号以保证所述控制模块的正常运行。可选地,所述运算所需数据采用16位定点数的数据结构,并且,在所述16位定点数的数据结构中,最高位为符号位、次7位为整数位、末8位为小数位。为了解决上述技术问题,另一方面,本专利技术还提供了一种基于FPGA实现人工神经网络的方法。本专利技术的基于FPGA实现人工神经网络的方法包括:基于IP核例化生成存储模块,所述存储模块存储二进制指令和运算所需数据;设置控制模块,所述控制模块根据从所述存储模块获取的二进制指令产生控制信号,以通过所述控制信号对其所连接的模块的工作状态进行控制;设置地址产生模块,与所述控制模块电连接,所述地址产生模块在所述控制模块的控制下生成地址,以根据所述地址从所述存储模块读取所述二进制指令或者所述运算所需数据;设置运算模块,与所述控制模块电连接,所述运算模块在所述控制模块的控制下,根据获取的所述运算所需数据进行运算。可选地,所述方法还包括:设置时钟模块,与所述控制模块电连接,所述时钟模块生成时钟信号以保证所述控制模块的正常运行。(三)有益效果本专利技术的上述技术方案具有如下优点:本专利技术实施例提供了一种基于FPGA实现人工神经网络的装置,包括:基于IP核例化生成的存储模块,用于存储二进制指令和运算所需数据;控制模块,用于根据获取的二进制指令产生控制信号,以对其所连接的模块的工作状态进行控制;地址产生模块,用于在所述控制模块的控制下生成地址,以根据所述地址从所述存储模块读取所述二进制指令或者所述运算所需数据;运算模块,用于在所述控制模块的控制下,根据获取的所述运算所需数据进行运算。通过以上装置,能够提高人工神经网络的运算效率,降低功耗,进而使人工神经网络能够应用于嵌入式系统。附图说明图1是本专利技术实施例一中的基于FPGA实现人工神经网络的装置的结构示意图;图2是本专利技术实施例二中的基于FPGA实现人工神经网络的装置的结构示意图;图3是本专利技术实施例三中的地址产生模块的一种可选结构示意图;图4是本专利技术实施例四中的地址产生模块的一种可选结构示意图;图5是本专利技术实施例五中的运算模块的一种可选结构示意图;图6是本专利技术实施例六中的基于FPGA实现人工神经网络的方法的流程示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例一如图1所示,本专利技术实施例一提供的基于FPGA实现人工神经网络的装置100包括:存储模块101、控制模块102、地址产生模块103和运算模块104。存储模块101,基于IP核例化生成,用于存储二进制指令和运算所需数据。在本专利技术实施例中,考虑到FPGA(现场可编程门阵列)内部拥有巨量的门电路,因此可以通过IP核例化的方式构建存储模块。在一个示例中,存储模块101可包括一个ROM(只读存储器)和至少一个RAM(随机存取存储器);其中,所述一个ROM用于存储所述二进制指令,所述至少一个RAM用于存储所述运算所需数据。由于通过IP核例化得到的存储模块位于FPGA内部,因此相比于FPGA外接RAM或ROM的方式,能够有效提高读写速度,有效降低运算时间。其中,所述二进制指令用于描述人工神经网络的运算过程,所述运算所需数据可包括:人工神经网络的权值矩阵、测试数据以及预测数据。具体实施时,可通过分析人工神经网络的运算过程设计二进制指令。以RNN(循环神经网络)为例,RNN运算过程包括前向传播运算和反向传播运算,通过分析RNN的运算过程,可将二进制指令分为通用指令和专用指令。在一个示例中,RNN对应的二进制指令包括:通用指令,具体包括加、减、乘、除运算指令,以及数据读取指令、数据写入指令、程序跳转指令;专用指令,具体包括relu激活函数运算指令、relu激活函数导数运算指令、softmax激活函数运算指令以及softmax激活函数导数运算指本文档来自技高网...

【技术保护点】
1.一种基于FPGA实现人工神经网络的装置,其特征在于,所述装置包括:存储模块,基于IP核例化生成,用于存储二进制指令和运算所需数据;控制模块,用于根据从所述存储模块获取的二进制指令产生控制信号,以通过所述控制信号对其所连接的模块的工作状态进行控制;地址产生模块,与所述控制模块电连接,用于在所述控制模块的控制下生成地址,以根据所述地址从所述存储模块读取所述二进制指令或者所述运算所需数据;运算模块,与所述控制模块电连接,用于在所述控制模块的控制下,根据获取的所述运算所需数据进行运算。

【技术特征摘要】
1.一种基于FPGA实现人工神经网络的装置,其特征在于,所述装置包括:存储模块,基于IP核例化生成,用于存储二进制指令和运算所需数据;控制模块,用于根据从所述存储模块获取的二进制指令产生控制信号,以通过所述控制信号对其所连接的模块的工作状态进行控制;地址产生模块,与所述控制模块电连接,用于在所述控制模块的控制下生成地址,以根据所述地址从所述存储模块读取所述二进制指令或者所述运算所需数据;运算模块,与所述控制模块电连接,用于在所述控制模块的控制下,根据获取的所述运算所需数据进行运算。2.根据权利要求1所述的装置,其特征在于,所述存储模块包括:一个ROM和至少一个RAM;其中,所述一个ROM用于存储所述二进制指令,所述至少一个RAM用于存储所述运算所需数据。3.根据权利要求1所述的装置,其特征在于,所述地址产生模块包括:判断单元、指令地址记录单元、数据地址记录单元;所述判断单元,用于根据控制信号判断当前所需地址的类型;所述地址的类型包括:指令地址、数据地址;所述指令地址记录单元,用于在所述当前所需地址的类型为指令地址的情况下,生成当前二进制指令的地址;所述数据地址记录单元,用于在所述当前所需地址的类型为数据地址的情况下,生成当前运算所需数据的地址。4.根据权利要求3所述的装置,其特征在于,所述地址产生模块还包括:地址译码单元;所述地址译码单元,用于在读取所述存储模块时提供选通信号,以使所述至少一个RAM和所述一个ROM在同一时刻只有一个选通。5.根据权利要求1所述的装置,其特征在于,所述运算模块包括:选通单元、多个运算单元;所述选通单元,用于根据当...

【专利技术属性】
技术研发人员:刘奇
申请(专利权)人:北京环境特性研究所
类型:发明
国别省市:北京,11

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

1