随着脉冲神经网络规模不断增大、功能越来越复杂,如何快速地验证神经网络硬件系统结构各部分的功能,并准确 地评估其性能成为设计者面临的严峻挑战。本文设计了一款可视化性能监测平台,用于脉冲神经网络硬件系统的功能验 证和性能监测。以 Xilinx Zynq-7000 器件为例,测试结果表明该监测平台具有轻量化设计、良好的人机交互界面和通用性 等优势,能够提高脉冲神经网络硬件系统的功能验证和性能评估效率,为其硬件系统设计提供了较好的辅助功能验证与性 能分析手段。
片上网络作为解决脉冲神经网络硬件结构的互联通信问题可行的方法之一,近年来得到广泛应用,研 究者们通常采用 Noxim [1]、DART [2]、AcENoC [3]和 Booksim [4]等片上网络验证测试平台来对硬件神经网 络进行辅助验证时。但是,这些片上网络验证测试平台应用于硬件神经网络进行辅助验证时,仍存在资源 估算准确性差、效率低等诸多问题。此外,FPGA 器件生产商提供的集成开发环境中的内置调试器(如 Altera SignalTap、Xilinx Chipscope 或 Lattice Reveal Analyser)引入了额外的硬件资源开销,并且只能实 时观察 FPGA 输入、输出和内部信号,不能较好地显示信号变化趋势。因此,亟需一种脉冲神经网络硬件 系统功能验证与性能评估平台来进一步提高硬件系统的开发效率。
本文以一个具体的脉冲神经网络硬件系统(基于脉冲神经网络的珠江—西江经济带生态环境预测系 统)为实例来说明在硬件系统设计的过程中如何对神经网络硬件系统的功能和性能进行验证和评估,并设 计了一种轻量化的脉冲神经网络硬件系统可视化性能监测平台来提高系统性能评估和功能验证的效率, 以此为脉冲神经网络硬件系统设计提供辅助的性能分析手段。
1 可视化性能监测需要解决的 3 个问题
根据脉冲神经网络及硬件结构的特性[5],在其功能验证和性能评估过程中,性能监测平台的设计需要 解决以下 3 个问题:
①轻量化的设计。
FPGA 是一种常用的脉冲神经网络硬件结构实现方案,例如,先前的工作可以在 FPGA 上实现1 7 2 8 个神经元[6]。对这些神经元进行监测,如果监测平台硬件开销过大,必将占用过多的 硬 件 资 源,然 而 FPGA 的硬件资源十分有限。因此,性能监测平台的轻量化设计是一个非常大的挑战。
②良好的人机交互界面。
为了方便设计者进行参数配置和分析监测结果,要求监测平台应具有良好的人机交互界面。通过人 机交互界面,用户可以直观地观察信号的波形、频率等信息,从而对功能的正确性做快速的判断;此界面还 可以实时记录及显示监测到的信号或数据包,方便用户查阅实时数据及历史数据。
③通用性。
提高性能监测平台的通用性能够显著改善系统性能评估和功能验证的效率。对于不同的被测设备, 可能无需改变或者微小地改变监测平台的设计就可以完成不同被测设备的功能验证与性能监测,显著提 高了系统验证的效率。
2 可视化性能监测平台的设计
2.1 系统整体架构
为实现脉冲神经网络硬件结构准确、高效的功能验证和性能监测,本文设计了一种轻量化的脉冲神经 网络硬件系统可视化性能监测平台,其设计思想为:ARM 处理器负责整个系统的逻辑控制、信号统计和 通信,通用计算机实现人机交互界面,仅仅需要在 FPGA 设备中构建基本数据采集模块,最大程度减少监 测平台占用的 FPGA 硬件资源,满足系统轻量化的设计需求。
图 1 是可视化性能监测平台的系统结构。图 1 中的监控目标是 Xilinx Zynq-7000 设备,其主控芯片 结构示意图如图 2 所示。Zynq-7000 芯片的内部结构分为处理器系统(processing system,PS)和可编程 逻辑(programble logic,PL)2 部分,即单块芯片中集成了 FPGA 器件和双核 ARM Cortex-A9 MPCore 处 理系统。ARM 和 FPGA 之间采用高速的 AXI 总线互相通讯。在提出的可视化性能监测平台中,利用了 Zynq-7000 芯片的上述特点,脉冲神经网络硬件结构在 FPGA 器件中完成(图 1 以一种基于二维网状拓扑 结构的脉冲神经网络硬件结构作为示例),使用 ARM 负责整个系统的逻辑控制及通讯,并且主机通过网 线连接到 Xilinx Zynq 7000 设备。监控软件在主机上运行,并基于 FPGA 上的脉冲神经网络数据提供.