0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA集群的NEST仿真器设计

电子设计 来源:PYNQ开源社区 作者:PYNQ开源社区 2020-11-12 16:45 次阅读

本案例来源于第三届全国大学生FPGA创新设计竞赛中江南大学的OpenHEC lab团队,他们的作品基于PYNQ开源软件框架。PYNQ框架提供了完整的访问FPGA资源的Python library,通过高层次的封装,让开发者通过Python API就可以轻松调用FPGA内的模块或算法,加速产品开发部署。

由于篇幅有限,我们将其作品分为两期进行介绍。这期我们主要介绍本作品的设计概述 和最终能达到的效果,下一期将会向大家展示作品详细的加速设计。有关作品的资料可以在参考文献中的GitHub链接自行下载

第一部分 设计概述

1.1、设计目的

  • 通过基于SNN的类脑计算方式更好地解决无监督的图像识别问题通过软硬件协同的方式更好地探索大规模、低功耗类脑系统的设计空间
  • 通过开源开放推动更多人开展基于FPGA的类脑体系结构研究与学习[1]。

1.2、技术特点

  • 提供基于脉冲神经网络的图像识别的解决方案;
  • 支持开源类脑计算仿真框架PYNN[2]、脉冲神经网络仿真器NEST[3];
  • 提供基于类脑计算的神经元模块硬件加速和突触模块硬件加速模块;
  • 支持PYNQ集群,采用MPI多进程和OpenMP多线程设计。

第二部分 系统组成及功能说明

2.1、基于脉冲网络的皮质层视觉仿真模型介绍

基于脉冲神经网络的皮质层视觉仿真模型由5层尖峰神经元组成。层与层之间以脉冲的方式进行信息传递,C1-S2层之间采用STDP(Spike-Timing-Dependent Plasticity)算法对对象特征进行学习。该网络架构属于麻省理工学院Riesenhuber&Poggio提出的HMAX模型中的一种[5][6],通过模拟哺乳动物脑皮层视觉,实现对图像识别的功能,如图1所示。

2.2、基于PYNQ集群的类脑计算平台介绍

本系统由包含PYNN类脑框架、NEST仿真器、FPGA神经元和STDP硬件模块。如图2所示,顶层应用设计语言为Python,在PYNN架构协助下调用NEST仿真器,各种命令通过python interpreter和SLI interpreter解释后,进入NEST kernel。根据各种命令进行底层网络创建包括神经元创建、突触连接创建、仿真时间设置等。

在此基础上,本组设计了FPGA神经元加速模块和FPGA STDP突触加速模块,根据不网络拓扑和计算要求,为不同计算密集点提供加速模块。

图2 类脑计算平台整体框架

2.3、通用的类脑仿真实验平台

如图3所示,本课题的通用平台集成8块PYNQ板,板级连接遵循TCP/IP协议。PYNQ-Z2 开发板以 ZYNQ XC7Z020 FPGA为核心,配备有以太网HDMI输入/输出,MIC输入,音频输出,Arduino 接口树莓派接口,2 个 Pmod,用户 LED,按钮和开关。

2.4、NEST系统介绍

NEST作为一款非常流行的类脑模拟器开源软件,应用广泛。NEST一大优势是可用于模拟任何规模的脉冲神经网络,如可模拟哺乳动物的视觉或听觉皮层这样的信息处理模型。也可模拟网络活动的动力学模型,比如层状皮质网络或平衡随机网络以及学习和可塑性模型。同时NEST的另一大优势就是支持集成式的MPI、OpenMP通讯协议,可以进行分布式计算大大提高仿真速度。

如图2所示,NEST的主体结构分为创建模型、连接模型,模拟仿真。仿真模块分为突触传递、更新神经元、MPI传输。针对对应用计算密集点分析,本设计主要是对于更新神经元模块和突触模块进行加速。

第三部分 完成情况及性能参数

3.1、软硬件环境介绍

  • NEST仿真器: NEST 2.14.0版本。
  • 皮质层视觉仿真模型:最小延迟为1ms,仿真精度为0.1ms,总生物仿真时间为50ms,神经元数量为48904,突触数量为275456。
  • FPGA设计软件:Xilinx Vivado 2018、Xilinx Vivado HLS 2018。
  • CPU:Inter Xenon E5-2620,其内存为128GB DDR3。
  • FPGA集群系统:FPGA集群包含8个Xilinx PYNQ节点,每个节点包括PS(Process System)端的ARM A9双核处理器系统和一个PL(可编程逻辑)端的FPGA器件。FPGA时钟频率为100MHZ。FPGA板卡之间采用1000Mbps网络带宽的以太网进行通信,并采用TCP/IP协议。

3.2、皮质层视觉模型仿真结果

本文NEST仿真器中神经元计算模块采用单精度浮点数据精度,与原NEST仿真器的神经元计算模块双精度浮点数据精度相比,在皮质层视觉模型仿真图像分类的准确率和脉冲发射率方面并无差别,其结果如表1所示。

3.3、性能评估

本文实现基于FPGA集群的脉冲神经网络仿真器NEST,以皮质层视觉模型仿真为案例,分别对比Inter服务器版CPU Xenon E5-2620和ARM A9双核CPU,其时钟频率、内存、性能等,如表2所示:

本文中实现的基于FPGA集群的NEST仿真器,在计算能效方面,其单个节点能效是ARM A9的30倍,是Inter Xeon E5-2620的56.10倍;FPGA集群的能效是Inter Xeon E5-2620的43.93倍,是ARM A9的23.54倍。在速度方面,单个节点速度是ARM A9的33.21倍,是Inter Xeon E5-2620的1.97倍;FPGA集群的速度是ARM A9的208倍,是Inter Xeon E5-2620的12.36倍。

参考文献

1. https://github.com/OpenHEC/SNN-simulator-on-PYNQcluster.
2. http://neuralensemble.org/PyNN/.
3. https://www.nest-simulator.org/.
4. Masquelier, Timothée, Thorpe S J. Unsupervised Learning of Visual Features through Spike Timing Dependent Plasticity[J].PLoS Computational Biology, 2007, 3(2):e31.
5. Serre T, Wolf L, Poggio T (2005) Object recognition with features inspired by visual cortex. CVPR 2: 994–1000.
6. Riesenhuber M, Poggio T (1999) Hierarchical models of object recognition in cortex. Nat Neurosci 2: 1019–1025.

编辑:hfy
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21311

    浏览量

    593133
  • 仿真器
    +关注

    关注

    14

    文章

    988

    浏览量

    82989
  • 图像识别
    +关注

    关注

    8

    文章

    447

    浏览量

    37907
  • Nest
    +关注

    关注

    1

    文章

    47

    浏览量

    16169
收藏 人收藏

    评论

    相关推荐

    为什么需要仿真器

    为什么需要仿真器  软件模拟和目标 Monitor提供了一种经济的调试手段,对于很多设计来说已经足够。但是也有很多场合,需要利用仿真器来找到程序错误。 无论在哪一种场合,仿真器都能够
    发表于 08-11 14:18

    32仿真器问题

    做32仿真器仿真器连接电脑和32单片机后,仿真器上的ams1117 3,3和单片机上的ams1117 3,3芯片都异常发热,仿真器工作正常,能烧程序。就是发热异常,求高人指导,到底是
    发表于 08-10 12:04

    dsp仿真器

    ccs软件中的单步执行,是仿真器模拟的单步执行,还是通过仿真器能让dsp单步执行,然后再看各个寄存的值,仿真器有这个能力吗,我看到的各个值是dsp中的真实值吗
    发表于 11-24 19:53

    请问为什么我在选择FPGA终端Vi的执行模式的时候,第三方仿真器是灰色的呢?那怎么才能使用第三方仿真器啊?

    本帖最后由 一只耳朵怪 于 2018-5-24 09:53 编辑 LabVIEW中,开发FPGA的时候,可以选择执行模式,LabVIEW FPGA模块不是自带Xsim仿真器吗,为什么我在选择
    发表于 05-24 08:38

    仿真器是实时的吗

    您好,怎么知道仿真器是不是实时的呢,比如510的仿真器,和100的仿真器,它们的仿真时有什么区别呢,
    发表于 06-18 10:30

    如何去设计基于FPGA的硬件在环仿真器

    为何需要基于FPGA的硬件在环仿真器?如何去设计基于FPGA的硬件在环仿真器
    发表于 05-06 09:18

    怎样正确插拔FPGA开发板的JTAG仿真器呢?

    怎样正确插拔FPGA开发板的JTAG仿真器呢?如USB-Blaster等
    发表于 03-21 15:07

    什么是单片机仿真器_单片机仿真器有什么用_单片机仿真器怎么用

    本文首先介绍了单片机仿真器的原理及作用,其次介绍了单片机仿真器到底有什么用及功能特性,最后阐述了单片机仿真器的使用方法。
    发表于 04-16 09:49 1.6w次阅读

    基于FPGA集群NEST脉冲神经网络仿真器

    针对类脑计算系统中NEST脉冲神经网络仿真器运行速度慢和功耗高的问题,设计一种基于现场可编程逻辑门阵列(FPGA集群NEST脉冲神经网络
    发表于 03-19 10:35 10次下载
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>集群</b>的<b class='flag-5'>NEST</b>脉冲神经网络<b class='flag-5'>仿真器</b>

    STM32-DAP仿真器的使用(1)

    目录1 仿真器简介2 硬件连接3 仿真器配置4 下载程序1 仿真器简介 TIPS:JTAG包含SW2 硬件连接3 仿真器配置1 选择DAP仿真器
    发表于 11-18 09:36 71次下载
    STM32-DAP<b class='flag-5'>仿真器</b>的使用(1)

    仿真器是什么?语音芯片的仿真器有几种?

    对于单片机语音芯片来说,仿真器这一专用工具不仅可以调试您的程序,而且还可以帮助您识别设计工程中的一些潜在的硬件和软件问题。仿真器应用广泛这是毋庸置疑的,不仅单片机这一领域,连语音芯片的FPGA
    的头像 发表于 11-21 15:02 920次阅读
    <b class='flag-5'>仿真器</b>是什么?语音芯片的<b class='flag-5'>仿真器</b>有几种?

    量子计算机仿真器Qulacs的多SATA FPGA实现

    量子计算机仿真器Qulacs的多SATA FPGA实现 演讲ppt分享
    发表于 07-17 16:34 6次下载

    fpga仿真器接口定义

    FPGA(Field-Programmable Gate Array,现场可编程门阵列)仿真器接口的定义主要依赖于仿真器的具体设计和所支持的通信协议。在FPGA的设计和
    的头像 发表于 03-15 14:01 210次阅读

    fpga原型验证平台与硬件仿真器的区别

    FPGA原型验证平台与硬件仿真器在芯片设计和验证过程中各自发挥着独特的作用,它们之间存在明显的区别。
    的头像 发表于 03-15 15:07 288次阅读

    fpga仿真器是什么?它有哪些优势?

    FPGA仿真器是一种用于模拟FPGA(现场可编程门阵列)硬件行为的软件工具。它通过模拟FPGA内部的逻辑电路、时序和接口等,帮助工程师在FPGA
    的头像 发表于 03-15 15:15 273次阅读