CN101639901A - 基于多核技术的前馈神经网络硬件实现方法 - Google Patents
基于多核技术的前馈神经网络硬件实现方法 Download PDFInfo
- Publication number
- CN101639901A CN101639901A CN200910067489A CN200910067489A CN101639901A CN 101639901 A CN101639901 A CN 101639901A CN 200910067489 A CN200910067489 A CN 200910067489A CN 200910067489 A CN200910067489 A CN 200910067489A CN 101639901 A CN101639901 A CN 101639901A
- Authority
- CN
- China
- Prior art keywords
- neural network
- processor
- core
- master control
- feedforward neural
- 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.)
- Pending
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
一种基于多核技术的前馈神经网络硬件实现方法,涉及一种基于特定计算模型的计算机系统,采用NIOS II软核处理器在其FPGA开发系统中利用Quartus II软件创建多核处理器系统,其中处理器核的个数只受芯片规模的限制,每个处理器核都可以单独编程,且多个处理器核可以同时运行各自的程序,通过对单核进行程序设计,仿真任何类型的神经元的特性;在网络学习过程中,各个单核并行计算输入输出量,并完成相应权值和阈值的调整;将各个单核的输入输出通过多端口存储器进行数据交换,仿真任意结构的前馈神经网络,实现神经网络高速、分布、并行计算的目的。
Description
技术领域
本发明涉及一种基于特定计算模型的计算机系统,特别涉及一种基于多核技术的前馈神经网络的硬件实现方法。
背景技术
目前,人工神经网络的应用方法主要是基于通用计算机的软件仿真,这种实现方法虽然具有应用灵活且不需要专用硬件等优点,但存在的主要问题是:因为通用计算机按指令顺序运行程序,因此,无法真正仿真生物神经网络高速、分布、并行计算的特性。而基于纯硬件的实现方法,如采用模拟电路、数字电路或混合电路的实现方法,只能仿真特定网络,且难以仿真神经网络的权值存储和结构自适应。另外,通过将已有微控制器,如DSP、单片机等进行组合,仿真神经网络的方法造价高、电路规模大,不能实现规模较大的神经网络仿真。
发明内容
本发明提供一种基于多核技术的前馈神经网络硬件实现方法,该方法不仅能实现对前馈神经网络高速、分布、并行特性最有效地仿真,而且造价低,电路规模小,能实现规模较大的前馈神经网络仿真。
本发明解决其技术问题所采用的技术方案是:使用Altera公司推出了NIOS II软核处理器在其FPGA开发系统中利用Quartus II软件创建多核处理器系统,其中处理器核的个数只受芯片规模的限制,每个处理器核都可以单独编程,且多个处理器核可以同时运行各自的程序。通过对单核进行程序设计,可仿真任何类型的神经元的特性;在网络学习过程中,各个单核并行计算输入输出量,并完成相应权值和阈值的调整;将各个单核的输入输出通过多端口存储器进行数据交换,仿真任意结构的前馈神经网络,实现神经网络高速、分布、并行计算的目的。
本发明的有益效果是,可以利用多核处理器系统建立前馈神经网络系统,实现神经网络高速、分布、并行计算的特性,系统造价低,结构简单,能够实现较大规模的前馈神经网络的仿真。
附图说明
图1是在FPGA系统中实现神经网络的结构示意图。
图2是NIOS II软核系统配置示意图。
图3是输入层NIOS II软核配置示意图。
图4是隐层NIOS II软核配置示意图。
图5是输出层NIOS II软核配置示意图。
图6是实现前馈神经网络的硬件设计图。
图7是主控核程序流程图。
图8是单神经元处理器核程序流程
图9是多核处理器系统程序流程图。
具体实施方式
如图1所示,用一个核作为主控核,主控核负责管理邻接表存储器空间。每个神经元都在邻接表存储器空间中对应一段固定的连续空间,其中,一部分是权值空间,用于存储自身权值,还有一部分是指令空间,用于存储主控核的指令。主控核根据网络结构要求,将每个神经元输入权值的存储地址以指令的方式存储在相应神经元的指令空间中,每个神经元只需根据该指令读取输入的权值进行计算即可,而不用关心网络结构。利用这一结构,也可以修改每个神经元计算时所使用的激励函数形式,从而形成更复杂的神经网络。
具体实现方法是:利用Quartus II软件中的SOPC Builder将处理器、存储器和其它外设模块连接起来构成一个所需要的完整的系统,如图2所示。在系统中添加了处理器、定时器、存储器、UART、PIO等IP核,其中每一个处理器都对应一个定时器,作为其系统时间;flash存储器用于存放复位地址;SDRAM用来存放异常地址;片上存储器用于存放前馈神经网络运算的数据;三态桥用于连接片外存储器;UART用于串口通信;每个PIO核对应一个处理器用于测试处理器的运行状态。前馈神经网络输入层以处理器cpu1为例,如图3所示。Avalon Switch Fabric是Altera公司开发的用于NIOS嵌入式处理器的参数化接口总线,cpu1的指令主端口通过Avalon总线与三态桥(Avalon Tri-State Bridge)、SDRAM控制器(SDRAMController)及双端口存储器(memory1,memory3)相连。cpu1的数据主端口通过Avalon总线除了与三态桥、SDRAM控制器及双端口存储器相连外,还与PIO(pio_1)和定时器(cpu1_timer)相连。三态桥(Avalon Tri-State Bridge)的主端口连接到Avalon总线上,从端口连接Flash存储器。cpu1运算结果分别存储在双端口存储器1和双端口存储器3中的指定位置,存储位置由软件编程决定,存储器用于与隐层和输出层处理器进行数据交换。前馈神经网络隐层以处理器cpu7为例,如图4所示。cpu7的指令主端口和数据主端口连接方式与cpu1相似,但其中使用PIO(pio_7)和定时器(cpu7_timer)。隐层的运算结果分别存储在双端口存储器1和双端口存储器2中的指定位置,用于与输入层和输出层处理器进行数据交换。前馈神经网络输出层以处理器cpu8为例,如图5所示。cpu8的指令主端口和数据主端口连接方式与cpu1相似,其中使用PIO(pio_8)和定时器(cpu8_timer)。另一不同之处在于,cpu8的数据主端口通过Avalon总线又连接了系统ID(sysid)和UART(uart_1)。系统ID是一个简单的只读设备,它为SOPC Builder系统提供唯一的标识符。NIOS II处理器系统使用系统ID去验证可执行程序是否针对实际的在FPGA中配置的硬件映像,若可执行程序中期望的ID与FPGA中系统ID不匹配,软件有可能无法正确执行,所以在系统中要加入系统ID保证系统正常运行。由于cpu8用作输出层处理器,为了方便用户观察并分析数据,在系统中添加UART核,将cpu8计算的结果通过串口发送到计算机上。
在Quartus II软件中,利用在SOPC Builder中构建的软核模块,添加锁相环模块,构建了一个用于实现BP网络的硬件结构,如图6所示。由于硬件配置系统中添加了SDRAM用于存放异常地址,所以在NIOSII系统之外需要添加SDRAM的时钟信号,加入锁相环模块为SDRAM提供时钟,并使其更加稳定。这个过程需要注意的是,FPGA芯片的选择是否正确,引脚的分配情况,尤其注意将不用的引脚应置成三态。编译硬件系统,生成FPGA的下载文件,扩展名为.sof。
硬件系统建立结束后,进入软件集成开发环境NIOS IDE。在软件开发环境中建立各个处理器的应用工程。根据前馈神经网络的原理,在各个处理器的应用工程中用C/C++语言程序编写各神经元的实现方法。主控核、单神经元处理器核及多核处理器系统的流程图分别如图7图8和图9所示。
Claims (5)
1、一种基于多核技术的前馈神经网络硬件实现方法,其特征在于:采用NIOS II软核处理器在其FPGA开发系统中利用Quartus II软件创建多核处理器系统,其中处理器核的个数只受芯片规模的限制,每个处理器核都可以单独编程,且多个处理器核可以同时运行各自的程序,通过对单核进行程序设计,仿真任何类型的神经元的特性;在网络学习过程中,各个单核并行计算输入输出量,并完成相应权值和阈值的调整;将各个单核的输入输出通过多端口存储器进行数据交换,仿真任意结构的前馈神经网络,实现神经网络高速、分布、并行计算的目的。
2、根据权利要求1所述的神经网络硬件实现方法,其特征在于:用一个核作为主控核,主控核负责管理邻接表存储器空间,每个神经元都在邻接表存储器空间中对应一段固定的连续空间,其中,一部分是权值空间,用于存储自身权值,还有一部分是指令空间,用于存储主控核的指令,主控核根据网络结构要求,将每个神经元输入权值的存储地址以指令的方式存储在相应神经元的指令空间中,每个神经元需根据该指令读取输入的权值进行计算。
3、根据权利要求2所述的神经网络硬件实现方法,其特征在于:用一个核作为主控核,主控核负责管理邻接表存储器空间,每个神经元都在邻接表存储器空间中对应一段固定的连续空间,修改每个神经元计算时所使用的激励函数形式,从而形成更复杂的神经网络。
4、根据权利要求1所述的神经网络硬件实现方法,其特征在于:利用Quartus II软件中的SOPC Builder将处理器、存储器和其它外设模块连接起来构成一个完整的系统,在系统中添加了处理器、定时器、存储器、UART、PIO作为IP核,其中每一个处理器都对应一个定时器,作为其系统时间;flash存储器用于存放复位地址;SDRAM用来存放异常地址;片上存储器用于存放前馈神经网络运算的数据;三态桥用于连接片外存储器;UART用于串口通信;每个PIO核对应一个处理器用于测试处理器的运行状态。
5、根据权利要求1所述的神经网络硬件实现方法,其特征在于:在Quartus II软件中,利用在SOPC Builder中构建的软核模块,添加锁相环模块,构建了一个用于实现BP网络的硬件结构,硬件配置系统中添加SDRAM用于存放异常地址,在NIOS II系统之外添加SDRAM的时钟信号,加入锁相环模块为SDRAM提供时钟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910067489A CN101639901A (zh) | 2009-09-03 | 2009-09-03 | 基于多核技术的前馈神经网络硬件实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910067489A CN101639901A (zh) | 2009-09-03 | 2009-09-03 | 基于多核技术的前馈神经网络硬件实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101639901A true CN101639901A (zh) | 2010-02-03 |
Family
ID=41614873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910067489A Pending CN101639901A (zh) | 2009-09-03 | 2009-09-03 | 基于多核技术的前馈神经网络硬件实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101639901A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929158A (zh) * | 2012-10-30 | 2013-02-13 | 北京华力创通科技股份有限公司 | 一种多核多模型并行分布式实时仿真系统 |
US8990130B2 (en) | 2012-11-21 | 2015-03-24 | International Business Machines Corporation | Consolidating multiple neurosynaptic cores into one memory |
US9159020B2 (en) | 2012-09-14 | 2015-10-13 | International Business Machines Corporation | Multiplexing physical neurons to optimize power and area |
CN105719000A (zh) * | 2016-01-21 | 2016-06-29 | 广西师范大学 | 一种神经元硬件结构及用这种结构模拟脉冲神经网络的方法 |
CN105930902A (zh) * | 2016-04-18 | 2016-09-07 | 中国科学院计算技术研究所 | 一种神经网络的处理方法、系统 |
CN106919977A (zh) * | 2015-12-25 | 2017-07-04 | 科大讯飞股份有限公司 | 一种前馈序列记忆神经网络及其构建方法和系统 |
CN106991476A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 用于执行人工神经网络正向运算的装置和方法 |
US9852006B2 (en) | 2014-03-28 | 2017-12-26 | International Business Machines Corporation | Consolidating multiple neurosynaptic core circuits into one reconfigurable memory block maintaining neuronal information for the core circuits |
WO2020186364A1 (en) * | 2019-03-18 | 2020-09-24 | SiliconIntervention Inc. | Multiport memory with analog port |
US10949314B2 (en) * | 2018-04-20 | 2021-03-16 | EMC IP Holding Company LLC | Method and apparatus for failure recovery of storage device |
US11023360B2 (en) * | 2018-11-14 | 2021-06-01 | The Mathworks, Inc. | Systems and methods for configuring programmable logic devices for deep learning networks |
WO2022141344A1 (zh) * | 2020-12-31 | 2022-07-07 | 北京希姆计算科技有限公司 | 执行程序的编译方法、芯片、电子设备及计算机可读存储介质 |
-
2009
- 2009-09-03 CN CN200910067489A patent/CN101639901A/zh active Pending
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9159020B2 (en) | 2012-09-14 | 2015-10-13 | International Business Machines Corporation | Multiplexing physical neurons to optimize power and area |
US10713561B2 (en) | 2012-09-14 | 2020-07-14 | International Business Machines Corporation | Multiplexing physical neurons to optimize power and area |
CN102929158A (zh) * | 2012-10-30 | 2013-02-13 | 北京华力创通科技股份有限公司 | 一种多核多模型并行分布式实时仿真系统 |
US8990130B2 (en) | 2012-11-21 | 2015-03-24 | International Business Machines Corporation | Consolidating multiple neurosynaptic cores into one memory |
US9852006B2 (en) | 2014-03-28 | 2017-12-26 | International Business Machines Corporation | Consolidating multiple neurosynaptic core circuits into one reconfigurable memory block maintaining neuronal information for the core circuits |
CN106919977B (zh) * | 2015-12-25 | 2022-05-17 | 科大讯飞股份有限公司 | 一种前馈序列记忆神经网络及其构建方法和系统 |
CN106919977A (zh) * | 2015-12-25 | 2017-07-04 | 科大讯飞股份有限公司 | 一种前馈序列记忆神经网络及其构建方法和系统 |
CN106991476A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 用于执行人工神经网络正向运算的装置和方法 |
CN105719000B (zh) * | 2016-01-21 | 2018-02-16 | 广西师范大学 | 一种神经元硬件装置及用这种装置模拟脉冲神经网络的方法 |
CN105719000A (zh) * | 2016-01-21 | 2016-06-29 | 广西师范大学 | 一种神经元硬件结构及用这种结构模拟脉冲神经网络的方法 |
CN105930902A (zh) * | 2016-04-18 | 2016-09-07 | 中国科学院计算技术研究所 | 一种神经网络的处理方法、系统 |
CN108416436A (zh) * | 2016-04-18 | 2018-08-17 | 中国科学院计算技术研究所 | 使用多核心处理模块进行神经网络划分的方法及其系统 |
CN108416437A (zh) * | 2016-04-18 | 2018-08-17 | 中国科学院计算技术研究所 | 用于乘加运算的人工神经网络的处理系统及方法 |
US11580367B2 (en) | 2016-04-18 | 2023-02-14 | Institute Of Computing Technology, Chinese Academy Of Sciences | Method and system for processing neural network |
CN108510064A (zh) * | 2016-04-18 | 2018-09-07 | 中国科学院计算技术研究所 | 包括多个核心处理模块的人工神经网络的处理系统及方法 |
CN108510064B (zh) * | 2016-04-18 | 2021-12-10 | 中国科学院计算技术研究所 | 包括多个核心处理模块的人工神经网络的处理系统及方法 |
CN108416437B (zh) * | 2016-04-18 | 2021-08-03 | 中国科学院计算技术研究所 | 用于乘加运算的人工神经网络的处理系统及方法 |
CN108416436B (zh) * | 2016-04-18 | 2021-06-01 | 中国科学院计算技术研究所 | 使用多核心处理模块进行神经网络划分的方法及其系统 |
US10949314B2 (en) * | 2018-04-20 | 2021-03-16 | EMC IP Holding Company LLC | Method and apparatus for failure recovery of storage device |
US11023360B2 (en) * | 2018-11-14 | 2021-06-01 | The Mathworks, Inc. | Systems and methods for configuring programmable logic devices for deep learning networks |
CN111708723A (zh) * | 2019-03-18 | 2020-09-25 | 硅谷介入有限公司 | 具有模拟端口的多端口存储器 |
CN111708723B (zh) * | 2019-03-18 | 2022-12-20 | 硅谷介入有限公司 | 具有模拟端口的多端口存储器和用于神经网络的装置 |
WO2020186364A1 (en) * | 2019-03-18 | 2020-09-24 | SiliconIntervention Inc. | Multiport memory with analog port |
WO2022141344A1 (zh) * | 2020-12-31 | 2022-07-07 | 北京希姆计算科技有限公司 | 执行程序的编译方法、芯片、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101639901A (zh) | 基于多核技术的前馈神经网络硬件实现方法 | |
Jin et al. | Modeling spiking neural networks on SpiNNaker | |
CN106201651A (zh) | 神经形态芯片的模拟器 | |
Wawrzynek et al. | RAMP: Research accelerator for multiple processors | |
Painkras et al. | SpiNNaker: A 1-W 18-core system-on-chip for massively-parallel neural network simulation | |
Furber et al. | High-performance computing for systems of spiking neurons | |
CN103150264B (zh) | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 | |
Wang et al. | FPDeep: Scalable acceleration of CNN training on deeply-pipelined FPGA clusters | |
WO2020173237A1 (zh) | 一种类脑计算芯片及计算设备 | |
CN108537331A (zh) | 一种基于异步逻辑的可重构卷积神经网络加速电路 | |
US20230168891A1 (en) | In-memory computing processor, processing system, processing apparatus, deployment method of algorithm model | |
CN111433758A (zh) | 可编程运算与控制芯片、设计方法及其装置 | |
CN102207904B (zh) | 用于对可重构处理器进行仿真的设备和方法 | |
CN112580792B (zh) | 一种神经网络多核张量处理器 | |
Maitre et al. | EASEA: specification and execution of evolutionary algorithms on GPGPU | |
Sobe et al. | FREVO: A tool for evolving and evaluating self-organizing systems | |
Zhuang et al. | High performance, low power matrix multiply design on acap: from architecture, design challenges and dse perspectives | |
CN109240704A (zh) | 用于设计重用的多处理器编程工具包 | |
CN114548390A (zh) | 一种基于risc-v和神经形态计算的异构架构处理系统 | |
Farahini et al. | A scalable custom simulation machine for the Bayesian confidence propagation neural network model of the brain | |
Gepner | Machine learning and high-performance computing hybrid systems, a new way of performance acceleration in engineering and scientific applications | |
Sankaralingam et al. | The Mozart reuse exposed dataflow processor for AI and beyond: Industrial product | |
CN110262996A (zh) | 一种基于高性能可重构计算的超级计算机 | |
Wei et al. | Multi-core ARM-based hardware-accelerated computation for spiking neural networks | |
Ma et al. | Darwin3: a large-scale neuromorphic chip with a novel ISA and on-chip learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20100203 |