CN101639901A - 基于多核技术的前馈神经网络硬件实现方法 - Google Patents

基于多核技术的前馈神经网络硬件实现方法 Download PDF

Info

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
Application number
CN200910067489A
Other languages
English (en)
Inventor
王连明
张文娟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN200910067489A priority Critical patent/CN101639901A/zh
Publication of CN101639901A publication Critical patent/CN101639901A/zh
Pending legal-status Critical Current

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提供时钟。
CN200910067489A 2009-09-03 2009-09-03 基于多核技术的前馈神经网络硬件实现方法 Pending CN101639901A (zh)

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)

* Cited by examiner, † Cited by third party
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 北京希姆计算科技有限公司 执行程序的编译方法、芯片、电子设备及计算机可读存储介质

Cited By (24)

* Cited by examiner, † Cited by third party
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
Balaji et al. PyCARL: A PyNN interface for hardware-software co-simulation of spiking neural network
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
CN108537331A (zh) 一种基于异步逻辑的可重构卷积神经网络加速电路
US20230168891A1 (en) In-memory computing processor, processing system, processing apparatus, deployment method of algorithm model
CN102207904B (zh) 用于对可重构处理器进行仿真的设备和方法
Maitre et al. EASEA: specification and execution of evolutionary algorithms on GPGPU
CN112580792B (zh) 一种神经网络多核张量处理器
CN109240704A (zh) 用于设计重用的多处理器编程工具包
CN114035916A (zh) 计算图的编译、调度方法及相关产品
Zhuang et al. High performance, low power matrix multiply design on acap: from architecture, design challenges and dse perspectives
da Silva et al. Exploring the dynamics of large-scale gene regulatory networks using hardware acceleration on a heterogeneous cpu-fpga platform
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
CN110262996A (zh) 一种基于高性能可重构计算的超级计算机
Ma et al. Darwin3: a large-scale neuromorphic chip with a novel ISA and on-chip learning
Fox Massively parallel neural computation
Vannel et al. Scalp: self-configurable 3-d cellular adaptive platform

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