CN104915195A - 一种基于现场可编程门阵列实现神经网络计算的方法 - Google Patents
一种基于现场可编程门阵列实现神经网络计算的方法 Download PDFInfo
- Publication number
- CN104915195A CN104915195A CN201510258018.6A CN201510258018A CN104915195A CN 104915195 A CN104915195 A CN 104915195A CN 201510258018 A CN201510258018 A CN 201510258018A CN 104915195 A CN104915195 A CN 104915195A
- Authority
- CN
- China
- Prior art keywords
- programmable gate
- gate array
- field programmable
- neural network
- basic logic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Logic Circuits (AREA)
Abstract
本发明涉及一种基于现场可编程门阵列实现神经网络计算的方法,属于神经网络计算技术领域。首先建立现场可编程门阵列中基本逻辑单元与神经网络各组成部分的映射关系,用编程语言,描述现场可编程门阵列各个基本逻辑单元的功能,建立现场可编程门阵列中的所有基本逻辑单元的模型,通过FPGA与神经网络结构的映射关系来模拟神经网络,通过FPGA基本逻辑单元间互联关系的重新配置以及其自身的运算能力完成网络的自学习过程,相比现阶段追求与真实神经网络结构一致的方法,本发明在模拟相同复杂度的神经网络时能较大的减少硬件开销。其次,本发明在现场可编程门阵列软件模型上完成神经网络的学习过程,大大地减少了学习的周期,节省了时间成本。
Description
技术领域
本发明涉及一种基于现场可编程门阵列实现神经网络计算的方法,属于神经网络计算技术领域。
背景技术
基于现场可编程门阵列(以下简称FPGA)内部包括可配置逻辑模块(Configurable LogicBlock,以下简称CLB)、输入输出模块(Input Output Block,以下简称IOB)和内部连线(Interconnect)三个部分。其中,CLB是FPGA内的基本逻辑单元,在Xilinx公司的FPGA器件中,CLB由多个(一般为4个或2个)相同的逻辑片(Slice)和附加逻辑如开关阵列构成。每个CLB模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式随机访问内存(Random Access Memory,以下简称RAM)和分布式只读存储器(Read Only Memory,以下简称ROM)。逻辑片(Slice)内部结构中的逻辑片(Slice)由两个4输入的函数、进位逻辑、算术逻辑、存储逻辑和函数复用器组成。
基于冯诺依曼体系的计算机在偏向人工智能的可自学习的应用场景下,无法达到让人满意的结果,如:信息模糊处理、智能机器人、图像识别与筛选等。当前,神经网络有人工神经网络(Artificial Neural Network,以下简称ANN)和脉冲神经网络(Spiking Neuron Networks,以下简称SNN)两种不同的实现方式。ANN的实现方式主要依靠深度学习算法,从而达到类似人学习的一个过程。SNN充分模拟大脑的工作原理,来实现神经计算。
人脑宏观上是复杂的互联网络构成一个有机的整体,而FPGA中有大量的计算单元和可配置的互联方式,利用计算单元和内部连线(Interconnect)可构成复杂网络,实现神经计算,模拟大脑行为。现阶段流行的基于FPGA模拟神经网络的方法通过EDA综合工具生成电路后烧录于FPGA中,数个基本逻辑单元组合构成与单个神经元相同或类似的结构,进而构成整个网络,如SNN从而模拟神经网络、完成神经计算。鉴于单个基本逻辑单元已经有足够的运算能力,这种方法虽能模拟神经网络行为但产生了巨 大的资源浪费。
发明内容
本发明的目的是提出一种基于现场可编程门阵列实现神经网络计算的方法,将现场可编程门阵列所具有的复杂计算与存储网络直接模拟神经网络,以现场可编程门阵列中基本逻辑单元来映射神经网络中的组成部分,通过一定的方法使现场可编程门阵列具有自适应调整器件之间的互联关系,以实现神经网络计算。
本发明提出的基于现场可编程门阵列实现神经网络计算的方法,包括以下步骤:
(1)建立现场可编程门阵列中基本逻辑单元与神经网络各组成部分的映射关系;
(2)用编程语言描述现场可编程门阵列各个基本逻辑单元的功能,建立现场可编程门阵列中的所有基本逻辑单元的模型,将所有基本逻辑单元的模型根据现场可编程门阵列的结构进行组合,得到现场可编程门阵列的模型;
(3)对步骤(2)的现场可编程门阵列的模型设定多个配置信号,配置信号为现场可编程门阵列中各基本逻辑单元的互联关系和各基本逻辑单元的功能定义,使现场可编程门阵列模型中的各基本逻辑单元形成类神经网络的互联关系,将一个与神经网络计算相应的输入信号施加到现场可编程门阵列模型中,记录与该互联关系相对应的输出信号;
(4)根据神经网络学习算法,优化步骤(3)中的基本逻辑单元之间的互联关系,使现场可编程门阵列软件模型对应特定的输入具有特定的输出,现场可编程门阵列内部基本逻辑单元之间形成稳定互联关系;
(5)将步骤(4)的稳定互联关系映射到现场可编程门阵列中,该现场可编程门阵列完成神经网络计算。
本发明提出的基于现场可编程门阵列实现神经网络计算的方法,其优点是:本发明通过FPGA与神经网络结构的映射关系来模拟神经网络,通过FPGA基本逻辑单元间互联关系的重新配置以及其自身的运算能力完成网络的自学习过程,相比现阶段追求与真实神经网络结构一致的方法,本发明在模拟相同复杂度的神经网络时能较大的减少硬件开销。其次,本发明在现场可编程门阵列软件模型上完成神经网络的学习过程,大大地减少了学习的周期,节省了时间成本。
附图说明
图1是本发明提出的基于现场可编程门阵列实现神经网络计算的方法涉及的FPGA 基本单元与真实神经细胞的映射关系图,其中逻辑片(Slice)单元可作为神经元,开关阵列(Switch Matrix)单元可作为突触,内部连线(Interconnect)可作为轴突。
具体实施方式
本发明提出的基于现场可编程门阵列实现神经网络计算的方法,包括以下步骤:
(1)建立现场可编程门阵列中基本逻辑单元与神经网络各组成部分的映射关系;例如,将现场可编程门阵列中的逻辑片单元(Slice)看做为神经网络中的神经元,将现场可编程门阵列中的开关阵列单元(Switch Matrix)看做为神经网络中的多个突触,将现场可编程门阵列的内部连线看做为神经网络中的轴突,如图1所示。
(2)用编程语言,如C语言,描述现场可编程门阵列各个基本逻辑单元的功能,建立现场可编程门阵列中的所有基本逻辑单元的模型,通过分析现场可编程门阵列各个基本逻辑单元的电路结构,了解其输入输出关系及其控制信号,用编程语言抽象描述其功能,形成现场可编程门阵列基本逻辑单元的模型。将所有基本逻辑单元的模型根据现场可编程门阵列的结构进行组合,得到现场可编程门阵列的模型;由于神经网络搭建完成后处于初始状态,其学习的过程需要大量及反复地调整互联结构,而真实的现场可编程门阵列构成的神经网络在调试过程中需要不断调整硬件语言代码并烧录于现场可编程门阵列中,整个过程耗时且效率低。而软件实现的现场可编程门阵列模型能以更便利地方式和更快地速度进行现场可编程门阵列内部的结构调整。
(3)对步骤(2)的现场可编程门阵列的模型设定多个配置信号,配置信号为现场可编程门阵列中各基本逻辑单元的互联关系和各基本逻辑单元的功能定义,使现场可编程门阵列模型中的各基本逻辑单元形成类神经网络的互联关系,将一个与神经网络计算相应的输入信号施加到现场可编程门阵列模型中,如图像信号,记录与该互联关系相对应的输出信号;
(4)根据神经网络学习算法,如脉冲神经网络(共享最近邻聚类)学习算法等,改善步骤(3)中形成的基本逻辑单元的互联关系,最终使现场可编程门阵列软件模型针对特定的输入,其有特定的输出以及其内部基本逻辑单元有稳定互联关系;例如对现场可编程门阵列模型输入由图像转化而成的数字信号时,现场可编程门阵列模型即可输出图像中对应物体的中文ASCⅡ码。此即为整个现场可编程门阵列软件模型的训练、学习过程。
(5)将步骤(4)稳定互联关系映射到现场可编程门阵列中,该现场可编程门阵列 完成神经网络计算。
本发明方法中,可以根据神经网络计算的需要,将多个现场可编程门阵列级联,形成现场可编程门阵列网络以模拟规模更大的神经网络。
以下介绍本发明方法的一个实施例:
完成FPGA建模工作后,按照FPGA与神经网络的映射关系,配置FPGA模型,使得FPGA基本逻辑单元间形成类神经网络结构。现场可编程门阵列中逻辑片单元具有计算、存储功能,故可做为类神经网络中的神经元。现场可编程门阵列中的开关阵列单元可完成不同逻辑片单元间的连接,故可做为类神经网络中的突触。现场可编程门阵列的内部连线看做为神经网络中的轴突以传递信号。将机动车牌照图像信号,即像素矩阵作为输入信号,施加到FPGA模型输入端,对FPGA模型进行仿真,通过脉冲神经网络(共享最近邻聚类)学习算法程序调整FPGA模型中基本逻辑单元的连接关系,直至FPGA模型的输出信号为输入信号中车牌数字或字母的ASCⅡ码值。将此时FPGA模型中基本逻辑单元的连接关系复制到真实的FPGA中,此FPGA即可实现车牌识别的功能。
以上,仅为本发明的较佳实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。
Claims (1)
1.一种基于现场可编程门阵列实现神经网络计算的方法,其特征在于该方法包括以下步骤:
(1)建立现场可编程门阵列中基本逻辑单元与神经网络各组成部分的映射关系;
(2)用编程语言描述现场可编程门阵列各个基本逻辑单元的功能,建立现场可编程门阵列中的所有基本逻辑单元的模型,将所有基本逻辑单元的模型根据现场可编程门阵列的结构进行组合,得到现场可编程门阵列的模型;
(3)对步骤(2)的现场可编程门阵列的模型设定多个配置信号,配置信号为现场可编程门阵列中各基本逻辑单元的互联关系和各基本逻辑单元的功能定义,使现场可编程门阵列模型中的各基本逻辑单元形成类神经网络的互联关系,将一个与神经网络计算相应的输入信号施加到现场可编程门阵列模型中,记录与该互联关系相对应的输出信号;
(4)根据神经网络学习算法,优化步骤(3)中的基本逻辑单元之间的互联关系,使现场可编程门阵列软件模型对应特定的输入具有特定的输出,现场可编程门阵列内部基本逻辑单元之间形成稳定互联关系;
(5)将步骤(4)的稳定互联关系映射到现场可编程门阵列中,该现场可编程门阵列完成神经网络计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510258018.6A CN104915195B (zh) | 2015-05-20 | 2015-05-20 | 一种基于现场可编程门阵列实现神经网络计算的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510258018.6A CN104915195B (zh) | 2015-05-20 | 2015-05-20 | 一种基于现场可编程门阵列实现神经网络计算的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104915195A true CN104915195A (zh) | 2015-09-16 |
CN104915195B CN104915195B (zh) | 2017-11-28 |
Family
ID=54084279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510258018.6A Active CN104915195B (zh) | 2015-05-20 | 2015-05-20 | 一种基于现场可编程门阵列实现神经网络计算的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104915195B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279555A (zh) * | 2015-10-28 | 2016-01-27 | 清华大学 | 一种基于进化算法的自适应学习神经网络实现方法 |
CN105678379A (zh) * | 2016-01-12 | 2016-06-15 | 腾讯科技(深圳)有限公司 | 一种cnn的处理方法和装置 |
CN105701540A (zh) * | 2016-01-11 | 2016-06-22 | 清华大学 | 一种自生成神经网络构建方法 |
CN108427990A (zh) * | 2016-01-20 | 2018-08-21 | 北京中科寒武纪科技有限公司 | 神经网络计算***和方法 |
CN109685210A (zh) * | 2018-12-29 | 2019-04-26 | 百度在线网络技术(北京)有限公司 | 卷积神经网络处理方法、卷积神经网络装置 |
CN110134379A (zh) * | 2018-02-08 | 2019-08-16 | 广达电脑股份有限公司 | 计算机***、编程方法及非暂态计算机可读介质 |
CN112840328A (zh) * | 2018-10-12 | 2021-05-25 | 阿里巴巴集团控股有限公司 | 有效地将神经网络映射到可编程逻辑设备的***和方法 |
CN117744553A (zh) * | 2024-01-31 | 2024-03-22 | 苏州异格技术有限公司 | 现场可编程门阵列建模方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892962A (en) * | 1996-11-12 | 1999-04-06 | Lucent Technologies Inc. | FPGA-based processor |
US20070271206A1 (en) * | 2006-05-18 | 2007-11-22 | Siemens Medical Solutions Usa, Inc. | Crystal Lookup Table Generation Using Neural Network-Based Algorithm |
CN101625735A (zh) * | 2009-08-13 | 2010-01-13 | 西安理工大学 | 基于ls-svm分类和回归学习递归神经网络的fpga实现方法 |
CN101833691A (zh) * | 2010-03-30 | 2010-09-15 | 西安理工大学 | 一种基于fpga的最小二乘支持向量机串行结构实现方法 |
CN102593862A (zh) * | 2012-02-02 | 2012-07-18 | 广西师范大学 | 一种光伏并网逆变器及其控制方法 |
CN104199536A (zh) * | 2014-07-23 | 2014-12-10 | 西安空间无线电技术研究所 | 一种基于bp神经网络的fpga动态功耗估算方法 |
-
2015
- 2015-05-20 CN CN201510258018.6A patent/CN104915195B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892962A (en) * | 1996-11-12 | 1999-04-06 | Lucent Technologies Inc. | FPGA-based processor |
US20070271206A1 (en) * | 2006-05-18 | 2007-11-22 | Siemens Medical Solutions Usa, Inc. | Crystal Lookup Table Generation Using Neural Network-Based Algorithm |
CN101625735A (zh) * | 2009-08-13 | 2010-01-13 | 西安理工大学 | 基于ls-svm分类和回归学习递归神经网络的fpga实现方法 |
CN101833691A (zh) * | 2010-03-30 | 2010-09-15 | 西安理工大学 | 一种基于fpga的最小二乘支持向量机串行结构实现方法 |
CN102593862A (zh) * | 2012-02-02 | 2012-07-18 | 广西师范大学 | 一种光伏并网逆变器及其控制方法 |
CN104199536A (zh) * | 2014-07-23 | 2014-12-10 | 西安空间无线电技术研究所 | 一种基于bp神经网络的fpga动态功耗估算方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279555A (zh) * | 2015-10-28 | 2016-01-27 | 清华大学 | 一种基于进化算法的自适应学习神经网络实现方法 |
CN105279555B (zh) * | 2015-10-28 | 2017-10-17 | 清华大学 | 一种基于进化算法的自适应学习神经网络实现方法 |
CN105701540B (zh) * | 2016-01-11 | 2017-12-19 | 清华大学 | 一种自生成神经网络构建方法 |
CN105701540A (zh) * | 2016-01-11 | 2016-06-22 | 清华大学 | 一种自生成神经网络构建方法 |
CN105678379B (zh) * | 2016-01-12 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 一种cnn的处理方法和装置 |
CN105678379A (zh) * | 2016-01-12 | 2016-06-15 | 腾讯科技(深圳)有限公司 | 一种cnn的处理方法和装置 |
US11151442B2 (en) | 2016-01-12 | 2021-10-19 | Tencent Technology (Shenzhen) Company Limited | Convolutional neural network processing method and device |
CN108427990A (zh) * | 2016-01-20 | 2018-08-21 | 北京中科寒武纪科技有限公司 | 神经网络计算***和方法 |
CN108427990B (zh) * | 2016-01-20 | 2020-05-22 | 中科寒武纪科技股份有限公司 | 神经网络计算***和方法 |
CN110134379A (zh) * | 2018-02-08 | 2019-08-16 | 广达电脑股份有限公司 | 计算机***、编程方法及非暂态计算机可读介质 |
CN110134379B (zh) * | 2018-02-08 | 2022-11-22 | 广达电脑股份有限公司 | 计算机***、编程方法及非暂态计算机可读介质 |
CN112840328A (zh) * | 2018-10-12 | 2021-05-25 | 阿里巴巴集团控股有限公司 | 有效地将神经网络映射到可编程逻辑设备的***和方法 |
CN109685210A (zh) * | 2018-12-29 | 2019-04-26 | 百度在线网络技术(北京)有限公司 | 卷积神经网络处理方法、卷积神经网络装置 |
CN117744553A (zh) * | 2024-01-31 | 2024-03-22 | 苏州异格技术有限公司 | 现场可编程门阵列建模方法、装置、设备及存储介质 |
CN117744553B (zh) * | 2024-01-31 | 2024-04-30 | 苏州异格技术有限公司 | 现场可编程门阵列建模方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104915195B (zh) | 2017-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104915195A (zh) | 一种基于现场可编程门阵列实现神经网络计算的方法 | |
US20190087713A1 (en) | Compression of sparse deep convolutional network weights | |
CN106982359B (zh) | 一种双目视频监控方法、***和计算机可读存储介质 | |
US9984323B2 (en) | Compositional prototypes for scalable neurosynaptic networks | |
WO2015142503A2 (en) | Implementing a neural-network processor | |
CN109165730B (zh) | 交叉阵列神经形态硬件中状态量化网络实现方法 | |
CN113822315A (zh) | 属性图的处理方法、装置、电子设备及可读存储介质 | |
JP2021507345A (ja) | 畳み込みニューラル・ネットワークの完全なカーネルを近似するためのスパース・カーネルの融合 | |
CN105139071B (zh) | 一种以现场可编程门阵列的逻辑片为基本单元模拟生物神经元网络的方法 | |
CN104699476A (zh) | 仿真方法、装置及*** | |
CN105701540A (zh) | 一种自生成神经网络构建方法 | |
KR20190134199A (ko) | 교통 빅데이터 기계학습이 내장된 교통시스템 모델링방법 | |
Muñoz et al. | Hardware opposition-based PSO applied to mobile robot controllers | |
CN108241322B (zh) | 一种fpga互联资源的优化配置生成方法 | |
WO2019121206A1 (de) | Verfahren zur realisierung eines neuronalen netzes | |
CN106408649A (zh) | 一种基于规则的体结构演化设计方法 | |
Soddu | Recognizability of the idea: the evolutionary process of Argenia | |
Goel et al. | Performance analysis of multiple input single layer neural network hardware chip | |
CN114239816B (zh) | 一种卷积神经网络-图卷积神经网络可重构硬件加速架构 | |
CN116011681A (zh) | 一种气象数据预测方法、装置、存储介质及电子装置 | |
CN110852414A (zh) | 高精度低位卷积神经网络 | |
Motlagh et al. | Development of application-specific adjacency models using fuzzy cognitive map | |
JPH06203005A (ja) | 高速区分化ニューラルネットワーク及びその構築方法 | |
Yi et al. | Implementation of hodgkin-huxley spiking neuron model using fpga | |
Farcas et al. | A hardware prototype targeting distributed deep learning for on-device inference |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |