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
    +关注

    关注

    1627

    文章

    21684

    浏览量

    602266
  • 仿真器
    +关注

    关注

    14

    文章

    1016

    浏览量

    83671
  • 图像识别
    +关注

    关注

    9

    文章

    519

    浏览量

    38245
  • Nest
    +关注

    关注

    1

    文章

    47

    浏览量

    16249
收藏 人收藏

    评论

    相关推荐

    基于FPGA的类脑计算平台 —PYNQ 集群的无监督图像识别类脑计算系统

    模拟,可为 SNN 算法开发者和神经学家提供理想满意的类脑仿真实验平台。 (2)本设计提供的基于 NEST 仿真器FPGA
    发表于 06-25 18:35

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

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

    基于VC的飞行仿真器导航仿真系统开发

    飞行仿真器导航系统为飞行仿真器的其他系统提供重要的相关信息,包括飞机的位置、高度、速度、加速度以及飞机当前姿态等参数,飞行仿真器导航系统的研究是飞行仿真器
    发表于 01-11 11:30 37次下载

    Ansoft仿真器

    Ansoft仿真器 Ansoft用于射频、模拟和混合信号电路设计的新一代仿真器Nexxim是Ansoft新一代电路仿真工具,能够快速精确地仿真复杂和大规模的模拟和混合信号电路
    发表于 04-06 13:59 93次下载

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

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

    米尔科技ULINKpro D 仿真器介绍

    ULINKpro D仿真器是ULINKpro仿真器的精简版,拥有ULINKpro同样高性能的调试功能,只是精简了ULINKpro的ETM跟踪功能。ULINKpro D仿真器可以在DS-5和KEIL MDK上使用,是性价比最高的D
    的头像 发表于 11-15 14:43 2668次阅读
    米尔科技ULINKpro D <b class='flag-5'>仿真器</b>介绍

    ModelSim仿真器的主要特点以及用法解析

    ModelSim是工业界最优秀的语言仿真器,它提供最友好的调试环境,是作FPGA、ASIC设计的RTL级和门级电路仿真的首选。
    发表于 11-19 14:54 4202次阅读
    ModelSim<b class='flag-5'>仿真器</b>的主要特点以及用法解析

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

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

    ADI公司基于USB的仿真器和基于USB的高性能仿真器产品亮点

    ADI公司基于USB的仿真器和基于USB的高性能仿真器产品亮点
    发表于 05-26 19:24 11次下载
    ADI公司基于USB的<b class='flag-5'>仿真器</b>和基于USB的高性能<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 1397次阅读
    <b class='flag-5'>仿真器</b>是什么?语音芯片的<b class='flag-5'>仿真器</b>有几种?

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

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

    fpga仿真器接口定义

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

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

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

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

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