CN110245750A - 一种基于fpga的神经网络数值模拟方法 - Google Patents
一种基于fpga的神经网络数值模拟方法 Download PDFInfo
- Publication number
- CN110245750A CN110245750A CN201910513802.5A CN201910513802A CN110245750A CN 110245750 A CN110245750 A CN 110245750A CN 201910513802 A CN201910513802 A CN 201910513802A CN 110245750 A CN110245750 A CN 110245750A
- Authority
- CN
- China
- Prior art keywords
- fpga
- input data
- computing module
- numerical
- arithmetic
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种基于FPGA的神经网络数值模拟方法,该方法通过对HH神经元模型数学表达式进行数值近似替换,得到数值近似表达式;然后,基于FPGA设计相应的移位单元、补码单元、加法器和减法器,实现数值近似表达式的运算。由于在运算过程中仅仅采用移位运算、补码运算和加减运算,不涉及任何乘除运算,能够加快FPGA的运算速度,减少运算所消耗的时间。
Description
技术领域
本发明属于神经网络技术领域,具体涉及一种基于FPGA的神经网络数值模拟方法。
背景技术
目前,神经网络领域主要研究重点放在神经元行为和神经网络系统分析上,神经网络Hodgkin-Huxley模型最早于1952年提出(以下简称HH模型),用于描述神经元动作电位的发放与传导机制,而且,HH模型的数学表达式为:
其中,采用常微分方程来具体描述神经元的电生理特性,而且,目前神经网络研究中,采用数值模拟方法是最为有效的手段。
随着集成电路的发展,用于数值模拟神经网络的硬件已从最初的模拟电子器件逐步转变为现场可编程门阵列(以下简称FPGA)。与CPU的串行运算方式不同,FPGA是并行运算,能够极大地提高数值模拟神经网络的运算速度,所以,FPGA已是目前用于数值模拟神经元网络非常普遍的硬件载体。
但是,由于FPGA自身的特点,在数值模拟过程中常出现效果不理想的情况,如电信号峰值间隔较大等,归根结底还是运算速度不足造成。即使FPGA的运算速度上比CPU的运算速度更快,由于神经元自身的感知更快,所以对数值模拟运算的速度提出了更高的要求。实际上,在模拟运算过程中,无论是调用IP核进行乘除运算还是其他运算,都将增加运算的时间和复杂程度,特别是除法运算是最消耗资源和造成延时的。而如果只是除以2的整数次幂,则可以直接通过逻辑移位完成,从而减少运算所消耗的时间。
所以,为了简化FPGA的硬件结构,充分利用FPGA自身运算特点,亟待提供一种新的基于FPGA的神经网络数值模拟方法,不仅能够准确地建立神经网络模型,还能减少运算所消耗的时间,提升运算效率。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于:提供一种基于FPGA的神经网络数值模拟方法,能够减少运算所消耗的时间,提升运算效率。
为实现上述发明目的,本发明提供以下技术方案:
一种基于FPGA的神经网络数值模拟方法,其包括以下步骤:
S1:对HH神经元模型数学表达式进行数值近似替换,得到数值近似表达式;其中,所述HH神经元模型数学表达式为:
其中,I为外加刺激电流,C是膜电容,V是膜电压,GK,GNa和GI分别是钾离子通道电流、钠离子通道电流和漏电流的最大电导,m和h为钠离子通道的门控变量,n是钾离子通道的门控变量;(ENa、EK、EI)
所述数值近似表达式为:
其中,
S2:基于FPGA设计相应的移位单元、补码单元、加法器和减法器,以实现所述数值近似表达式的运算;其中,实现所述数值近似表达式中指数运算的方式为:
将幂指数作为输入数据,若所述输入数据为正数,则由移位单元对输入数据的小数部分进行右移位运算,且输入数据的整数部分的数值作为移位数;若所述输入数据为负数,则由补码单元对输入数据的整数部分和小数部分均进行补码运算,然后由移位单元对经补码运算后的小数部分进行左移位运算,且经补码运算后的整数部分再由加法器加一后的数值作为移位次数。
根据一种具体的实施方式,本发明基于FPGA的神经网络数值模拟方法,输入数据的小数部分采用泰勒展开式进行表示。
基于同一发明构思,本发明还提供一种FPGA架构,其包括:
第一运算模块,用于实现f(m)的运算;其中,
第二运算模块,用于实现sinh(h)的运算;其中,
第三运算模块,用于实现g(n)的运算;其中,
第四运算模块,用于利用所述第一运算模块、所述第二运算模块和所述第三运算模块的运算结果,并结合相应的移位单元、补码单元、加法器和减法器,实现GNaf(m)sinh(h)(ENa-V)+GKg(n)(EK-V)+GI(EI-V)+I的运算。
与现有技术相比,本发明的有益效果:
本发明基于FPGA的神经网络数值模拟方法,通过对HH神经元模型数学表达式进行数值近似替换,得到数值近似表达式;然后,基于FPGA设计相应的移位单元、补码单元、加法器和减法器,实现数值近似表达式的运算。由于在运算过程中仅仅采用移位运算、补码运算和加减运算,不涉及任何乘除运算,能够加快FPGA的运算速度,减少运算所消耗的时间。
附图说明
图1为本发明由补码单元和移位单元组成的指数单元的结构示意图;
图2为实现sinh(h)运算的结构示意图;
图3为实现f(m)的运算的结构示意图;
图4为实现g(n)的运算的结构示意图;
图5为实现GNaf(m)sinh(h)(ENa-V)+GKg(n)(EK-V)+GI(EI-V)+I的运算的结构示意图;
图6为HH神经元模型与本发明改进模型的仿真结果对比图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
本发明基于FPGA的神经网络数值模拟方法,其包括以下步骤:
S1:对HH神经元模型数学表达式进行数值近似替换,得到数值近似表达式;其中,HH神经元模型数学表达式为:
其中,I为外加刺激电流,C是膜电容,V是膜电压,GK,GNa和GI分别是钾离子通道电流、钠离子通道电流和漏电流的最大电导,m和h为钠离子通道的门控变量,n是钾离子通道的门控变量。
数值近似表达式为:
其中,
S2:基于FPGA设计相应的移位单元、补码单元、加法器和减法器,以实现该数值近似表达式的运算;其中,实现数值近似表达式中指数运算的方式为:
如图1所示的指数单元中,输入数据x具有整数部分xI和小数部分xD,且x最高位为符号标志位;而且,输入数据的符号标志位为0,表示该输入数据为正数,输入数据的符号标志位为1,则表示该输入数据为正数。
在图1a中,由于输入数据x为正数,则由移位单元对小数部分xD进行移位运算,且整数部分xI的数值为移位运算的次数。在图1b中,由于输入数据x为负数,则由补码单元对整数部分xI和小数部分xD进行补码运算,然后由移位单元对经补码运算后的小数部分进行移位运算,且经补码运算后的整数部分通过加法器进行加一运算后作为移位运算的次数。在实施时,小数部分xD采用泰勒展开式进行表示,且其真实值近似为xD+1。
如图2所示,本发明的FPGA架构中的第一运算模块用于实现f(m)的运算;其中,
具体的,第一运算模块通过三部分来实现f(m)的运算,其中,第一部分23m-2-3m:通过一个移位单元对输入数据m进行左移一位,将移位后的数据输入至一个加法器,通过该加法器与输入数据m相加,然后,该加法器将其运算结果输出给一个补码单元进行补码运算,再由该补码单元输出给一个指数单元进行指数运算,最后输出给第一减法器作为被减数,同时,该加法器将数据输出另一个指数单元进行指数运算,再由该指数单元将其计算数据输出给第一减法器作为件数,最后由第一减法器实现减法运算。
第二部分2-m-2m:通过一个指数单元对输入数据m进行指数运算,然后,该指数单元将运算结果输出给第二减法器作为减数;通过一个补码单元对输入数据m进行补码运算,然后,通过另一个指数单元对输入数据m进行指数运算,该指数单元将运算结果输出给第二减法器作为被减数,最后由第二减法器进行减法运算。
第三部分21-m-21+m:通过一个加法器对输入数据m进行加一,然后由该加法器将数据输出给一个指数单元进行指数运算,再由该指数单元将其运算结果输出给第三减法器作为减数;通过一个减法器对输入数据m进行减一,然后由该减法器将数据输出给另一个指数单元进行指数运算,再由该指数单元将其运算结果输出给第三减法器作为被减数,最后由第三减法器实现减法运算。
最后将第一减法器、第二减法器和第三减法器的计算结果通过一个加法器相加起来,然后,对该加法器计算出的进行左移三位,从而实现f(m)的运算。
如图3所述,本发明的FPGA架构中的第二运算模块用于实现sinh(h))的运算;其中,
实际上,将HH神经元模型的数学表达式中的m3h替换为双曲线正弦函数。因此,在第二运算模块中,通过一个指数单元对输入数据h进行指数运算,并有该指数单元将其运算结果输出给一个减法器作为被减数;通过一个补码单元对输入数据h进行补码运算,再通过另一个指数单元进行指数运算,该指数单元将其运算结果输出给该减法器作为减数,最后由第三减法器进行减法运算,从而实现sinh(h))的运算。
如图4所示,本发明的FPGA架构中的第三运算模块用于实现g(n))的运算;其中,
具体的,在第四运算模块中,通过一个移位单元对输入数据n进行左移两位,再由该移位单元将其运算结果输出给一个指数单元进行指数运算,该指数单元将其运算结果输出给一个加法器作为一个加数,同时,该移位单元还将其运算结果输出给一个补码单元进行补码运算,该补码单元将其运算结果输出给另一个指数单元进行指数运算,该指数单元将其运算结果输出给该加法器作为另一个加数,并由该加法器实现加法运算,然后,该加法器将其运算结果输出给第四减法器作为被减数。
通过一个移位单元对输入数据n进行左移一位,再通过一个加法器对该移位单元的运算结果加二,然后该加法器将其运算结果输出给一个指数单元进行指数运算,该指数单元将其运算结果输出给第四减法器作为减数,最后由第四减法器进行减法运算,而且,第四减法器将其运算结果输出给第五减法器作为被减数。
通过一个移位单元对输入数据n进行左移一位,再通过一个补码单元进行补码运算,然后通过一个加法器对该补码单元的运算结果加二,该加法器将其运算结果输出给第五减法器作为减数,最后由第五减法器进行减法运算。
接着,通过一个加法器对第五减法器的运算结果加六,然后将该加法器的运算结果右移四位,从而实现g(n))的运算。
如图5所示,本发明的FPGA架构中的第四运算模块用于实现GNaf(m)sinh(h)(ENa-V)+GKg(n)(EK-V)+GI(EI-V)+I的运算;具体的,在第四运算模块中,通过利用第一运算模块、第二运算模块和第三运算模块的运算结果,并结合相应的移位单元、补码单元、加法器和减法器,实现GNaf(m)sinh(h)(ENa-V)+GKg(n)(EK-V)+GI(EI-V)+I的运算。
如图6所示,实线表示未对HH神经元模型进行任何改进的仿真结果,虚线表示本发明的FPGA架构的仿真结果,可以得出:本发明的FPGA架构的资源消耗为原HH神经元模型硬件实现成本的三分之一,即速度为原HH神经元模型结构的3倍。
Claims (3)
1.一种基于FPGA的神经网络数值模拟方法,其特征在于,包括以下步骤:
S1:对HH神经元模型数学表达式进行数值近似替换,得到数值近似表达式;其中,所述HH神经元模型数学表达式为:
其中,I为外加刺激电流,C是膜电容,V是膜电压,GK,GNa和GI分别是钾离子通道电流、钠离子通道电流和漏电流的最大电导,m和h为钠离子通道的门控变量,n是钾离子通道的门控变量;
所述数值近似表达式为:
其中,
S2:基于FPGA设计相应的移位单元、补码单元、加法器和减法器,以实现所述数值近似表达式的运算;其中,实现所述数值近似表达式中指数运算的方式为:
将幂指数作为输入数据,若所述输入数据为正数,则由移位单元对输入数据的小数部分进行右移位运算,且输入数据的整数部分的数值作为移位数;若所述输入数据为负数,则由补码单元对输入数据的整数部分和小数部分均进行补码运算,然后由移位单元对经补码运算后的小数部分进行左移位运算,且经补码运算后的整数部分再由加法器加一后的数值作为移位次数。
2.如权利要求1所述的基于FPGA的神经网络数值模拟方法,其特征在于,所述输入数据的小数部分采用泰勒展开式进行表示。
3.一种FPGA架构,其特征在于,包括:
第一运算模块,用于实现f(m)的运算;其中,
第二运算模块,用于实现sinh(h)的运算;其中,
第三运算模块,用于实现g(n)的运算;其中,
第四运算模块,用于利用所述第一运算模块、所述第二运算模块和所述第三运算模块的运算结果,并结合相应的移位单元、补码单元、加法器和减法器,实现GNaf(m)sinh(h)(ENa-V)+GKg(n)(EK-V)+GI(EI-V)+I的运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910513802.5A CN110245750B (zh) | 2019-06-14 | 2019-06-14 | 一种基于fpga的神经网络数值模拟方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910513802.5A CN110245750B (zh) | 2019-06-14 | 2019-06-14 | 一种基于fpga的神经网络数值模拟方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110245750A true CN110245750A (zh) | 2019-09-17 |
CN110245750B CN110245750B (zh) | 2022-07-15 |
Family
ID=67886997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910513802.5A Active CN110245750B (zh) | 2019-06-14 | 2019-06-14 | 一种基于fpga的神经网络数值模拟方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110245750B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021068253A1 (zh) * | 2019-10-12 | 2021-04-15 | 深圳鲲云信息科技有限公司 | 定制数据流硬件模拟仿真方法、装置、设备及存储介质 |
CN112947262A (zh) * | 2021-04-16 | 2021-06-11 | 西南科技大学 | 一种fpga开发板 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110016068A1 (en) * | 2009-07-15 | 2011-01-20 | The Intellisis Corporation | Constant memory implementation of a phase-model neural network |
CN104689473A (zh) * | 2015-02-02 | 2015-06-10 | 天津大学 | 基于fpga的电刺激下神经元随机响应及共振实验平台 |
CN105139071A (zh) * | 2015-07-27 | 2015-12-09 | 清华大学 | 一种以现场可编程门阵列的逻辑片为基本单元模拟生物神经元网络的方法 |
CN105160205A (zh) * | 2015-09-14 | 2015-12-16 | 天津大学 | 基于lnc模型的针刺神经电信号fpga编码分析平台 |
CN106845636A (zh) * | 2017-03-31 | 2017-06-13 | 兰州交通大学 | 基于声控的神经元动作电位发生器 |
CN106909970A (zh) * | 2017-01-12 | 2017-06-30 | 南京大学 | 一种基于近似计算的二值权重卷积神经网络硬件加速器计算模块 |
CN107992329A (zh) * | 2017-07-20 | 2018-05-04 | 上海寒武纪信息科技有限公司 | 一种计算方法及相关产品 |
CN108319804A (zh) * | 2018-04-17 | 2018-07-24 | 福州大学 | 一种低资源调用的8192点基2 dit asic电路设计方法 |
CN109155001A (zh) * | 2016-11-28 | 2019-01-04 | 华为技术有限公司 | 基于脉冲神经网络的信号处理方法和装置 |
CN109352644A (zh) * | 2018-09-14 | 2019-02-19 | 天津大学 | 基于cpg神经元网络的机械臂运动节律控制方法 |
CN109670585A (zh) * | 2018-12-29 | 2019-04-23 | 中国人民解放军陆军工程大学 | 神经元仿生电路和神经形态系统 |
CN109697509A (zh) * | 2017-10-24 | 2019-04-30 | 上海寒武纪信息科技有限公司 | 处理方法及装置、运算方法及装置 |
-
2019
- 2019-06-14 CN CN201910513802.5A patent/CN110245750B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110016068A1 (en) * | 2009-07-15 | 2011-01-20 | The Intellisis Corporation | Constant memory implementation of a phase-model neural network |
CN104689473A (zh) * | 2015-02-02 | 2015-06-10 | 天津大学 | 基于fpga的电刺激下神经元随机响应及共振实验平台 |
CN105139071A (zh) * | 2015-07-27 | 2015-12-09 | 清华大学 | 一种以现场可编程门阵列的逻辑片为基本单元模拟生物神经元网络的方法 |
CN105160205A (zh) * | 2015-09-14 | 2015-12-16 | 天津大学 | 基于lnc模型的针刺神经电信号fpga编码分析平台 |
CN109155001A (zh) * | 2016-11-28 | 2019-01-04 | 华为技术有限公司 | 基于脉冲神经网络的信号处理方法和装置 |
CN106909970A (zh) * | 2017-01-12 | 2017-06-30 | 南京大学 | 一种基于近似计算的二值权重卷积神经网络硬件加速器计算模块 |
CN106845636A (zh) * | 2017-03-31 | 2017-06-13 | 兰州交通大学 | 基于声控的神经元动作电位发生器 |
CN107992329A (zh) * | 2017-07-20 | 2018-05-04 | 上海寒武纪信息科技有限公司 | 一种计算方法及相关产品 |
CN109697509A (zh) * | 2017-10-24 | 2019-04-30 | 上海寒武纪信息科技有限公司 | 处理方法及装置、运算方法及装置 |
CN108319804A (zh) * | 2018-04-17 | 2018-07-24 | 福州大学 | 一种低资源调用的8192点基2 dit asic电路设计方法 |
CN109352644A (zh) * | 2018-09-14 | 2019-02-19 | 天津大学 | 基于cpg神经元网络的机械臂运动节律控制方法 |
CN109670585A (zh) * | 2018-12-29 | 2019-04-23 | 中国人民解放军陆军工程大学 | 神经元仿生电路和神经形态系统 |
Non-Patent Citations (4)
Title |
---|
SAFA YAGHINI BONABI 等: "FPGA implementation of a biological neural network based on the Hodgkin-Huxley neuron model", 《INTERNATIONAL CONFERENCE ON NEURAL INFORMATION PROCESSING》 * |
孙凡 等: "基于FPGA的基底核神经网络的实现", 《天津职业技术师范大学学报》 * |
王金龙: "基于HH模型神经元动作电位的模拟与实现", 《中国优秀硕士学位论文全文数据库 基础科学辑》 * |
闻佳 等: "基于HH模型的神经元网络的数值模拟与FPGA实现", 《航天医学与医学工程》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021068253A1 (zh) * | 2019-10-12 | 2021-04-15 | 深圳鲲云信息科技有限公司 | 定制数据流硬件模拟仿真方法、装置、设备及存储介质 |
CN113272813A (zh) * | 2019-10-12 | 2021-08-17 | 深圳鲲云信息科技有限公司 | 定制数据流硬件模拟仿真方法、装置、设备及存储介质 |
CN113272813B (zh) * | 2019-10-12 | 2023-05-05 | 深圳鲲云信息科技有限公司 | 定制数据流硬件模拟仿真方法、装置、设备及存储介质 |
CN112947262A (zh) * | 2021-04-16 | 2021-06-11 | 西南科技大学 | 一种fpga开发板 |
Also Published As
Publication number | Publication date |
---|---|
CN110245750B (zh) | 2022-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | Design and analysis of approximate redundant binary multipliers | |
Rezai et al. | High-throughput modular multiplication and exponentiation algorithms using multibit-scan–multibit-shift technique | |
CN106951211B (zh) | 一种可重构定浮点通用乘法器 | |
CN110245750A (zh) | 一种基于fpga的神经网络数值模拟方法 | |
Sivanandam et al. | Design and performance analysis of reconfigurable modified Vedic multiplier with 3-1-1-2 compressor | |
CN111563598B (zh) | 预估量子计算模拟时间的方法、系统 | |
CN110276447A (zh) | 一种计算装置及方法 | |
CN110163350A (zh) | 一种计算装置及方法 | |
Chervyakov et al. | Residue number system-based solution for reducing the hardware cost of a convolutional neural network | |
CN105913118A (zh) | 一种基于概率计算的人工神经网络硬件实现装置 | |
Venkatachalam et al. | Approximate sum-of-products designs based on distributed arithmetic | |
CN108256644A (zh) | 微处理器电路以及执行神经网络运算的方法 | |
Chen et al. | A throughput-optimized channel-oriented processing element array for convolutional neural networks | |
Frias et al. | A new scalable parallel adder based on spiking neural P systems, dendritic behavior, rules on the synapses and astrocyte-like control to compute multiple signed numbers | |
Dadda | Composite parallel counters | |
Basha et al. | Design and Implementation of Radix-4 Based High Speed Multiplier for ALU's Using Minimal Partial Products | |
CN113222156B (zh) | 一种待执行操作的量子模拟方法、装置 | |
Anumandla et al. | Field programmable gate arrays‐based differential evolution coprocessor: a case study of spectrum allocation in cognitive radio network | |
Vestias et al. | Parallel decimal multipliers and squarers using Karatsuba-Ofman's algorithm | |
KR20080050054A (ko) | 성긴 w-NAF 키 생성방법,이를 이용한 연산 방법 및암호화 방법 | |
CN103699729B (zh) | 模乘法器 | |
CN110555519A (zh) | 一种基于符号随机计算的低复杂度卷积神经网络 | |
Gallin et al. | Architecture level optimizations for Kummer based HECC on FPGAs | |
CN104461469A (zh) | 一种采用gpu并行化实现sm2算法的方法 | |
CN110506255A (zh) | 节能型可变功率加法器及其使用方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |