CN112613598B - 一种基于fpga模拟的阻变神经网络加速器评估方法 - Google Patents

一种基于fpga模拟的阻变神经网络加速器评估方法 Download PDF

Info

Publication number
CN112613598B
CN112613598B CN202011454516.5A CN202011454516A CN112613598B CN 112613598 B CN112613598 B CN 112613598B CN 202011454516 A CN202011454516 A CN 202011454516A CN 112613598 B CN112613598 B CN 112613598B
Authority
CN
China
Prior art keywords
neural network
vector
fpga
simulation
instruction
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.)
Active
Application number
CN202011454516.5A
Other languages
English (en)
Other versions
CN112613598A (zh
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.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
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 Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN202011454516.5A priority Critical patent/CN112613598B/zh
Publication of CN112613598A publication Critical patent/CN112613598A/zh
Application granted granted Critical
Publication of CN112613598B publication Critical patent/CN112613598B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7817Specially adapted for signal processing, e.g. Harvard architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Signal Processing (AREA)
  • Neurology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于FPGA模拟的阻变神经网络加速器评估方法,涉及存算一体体系结构领域,包括存算一体通用指令集的编译、架构模型的建立、加速器的软硬件实现以及深度神经网络的性能评估。为加快仿真速度,本文通过分析现有阻变神经网络加速器的架构通用性,利用FPGA资源的高度并行性和运行时指令驱动的灵活模拟方式,通过对有限硬件资源的分时复用,支持主流阻变神经网络加速器架构和指令集的功能模拟,并针对主流网络给出详尽的性能评估。相比传统的硬件模拟器,本发明可以在不修改硬件结构的前提下支持更多神经网络的映射和性能评估;相比传统的软件模拟器,针对深度神经网络,本发明大大缩短了仿真时间。

Description

一种基于FPGA模拟的阻变神经网络加速器评估方法
技术领域
本发明涉及存算一体体系结构领域,尤其涉及一种基于FPGA模拟的阻变神经网络加速器评估方法。
背景技术
忆阻器阵列集成计算和存储功能,常通过非易失性阻性随机访问存储(ReRAM)实现。在神经元结构中,突触可以根据在其两端的神经元的激励发生变化,在忆阻器阵列中可以在ReRAM两端外加电压来改变其电导值进行神经计算。利用ReRAM器件的特性,可以外加数字电压,将电压进行数模转换得到模拟电压值,加在器件两端的模拟电压和器件预编程的电导值通过欧姆定律和基尔霍夫定律计算得出流出器件的电流值,将电流值进行模数转换得到计算的数字结果,实现存算一体的功能。
现阶段的存算一体神经网络加速器通常进行分层拓扑架构设计。有文献对存算一体神经网络加速器的架构进行Chip、Tile、IMA、Crossbar四层架构设计。Chip以集中网络的形式连接多个Tile;Tile通过多个共享总线连接多个IMA和累加器等功能单元;IMA通过共享总线连接多个Crossbar和数模转换器等功能单元。类似的,有文献提出类似的Chip、Tile、VMM、Crossbar的分层拓扑架构设计,数据可以在Tile间进行粗粒度的流水,减少Tile间不必要的数据流动。还有文献进行Node、Tile、Core的三层架构设计。特别的,Core包含多个流水的Crossbar运算单元和指令执行的流水线,数据在Core中和在Crossbar中都可以进行流水计算,提升内部访存带宽。
现有的面向存算一体神经网络加速器将标量计算全部放在CPU上进行,向量计算的向量规模也无需特殊指定。相较传统神经网络加速器指令集,现有的面向存算一体加速器的指令集,增加在不同层次间进行数据搬运的指令。随后又加入进行外积计算的OuterProduct Accumulate(OPA)指令及转置矩阵和向量乘法运算的指令MTVM,但不支持对ReRAM阵列的在线编程。
由于阻变器件的非理想特性,基于阻变器件的存算一体神经网络加速器需要在架构设计初期进行精确细致的仿真评估,以确保神经网络的精度符合设计要求。但传统阻变神经网络加速器软件模拟器仿真速度慢,难以应对大规模网络的架构评估需求。
因此,本领域的技术人员致力于开发一种基于FPGA模拟的阻变神经网络加速器评估方法,加快仿真速度,通过分析现有阻变神经网络加速器的架构通用性,利用FPGA资源的高度并行性和运行时指令驱动的灵活模拟方式,通过对有限硬件资源的分时复用,可支持主流阻变神经网络加速器架构和指令集的功能模拟,并针对主流网络给出详尽的性能评估。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是由于阻变器件的非理想特性,基于阻变器件的存算一体神经网络加速器需要在架构设计初期进行精确细致的仿真评估,以确保神经网络的精度符合设计要求。但传统阻变神经网络加速器软件模拟器仿真速度慢,难以应对大规模网络的架构评估需求。
为实现上述目的,本发明提供了一种基于FPGA模拟的阻变神经网络加速器评估方法,包括以下步骤:
步骤1、架构设计;
步骤2、指令集设计;
步骤3、加速器硬件设计,硬件并行;
步骤4、加速器软件库设计,通用指令集,软件调度分时复用方案。
进一步地,所述步骤1支持Core、Tile、Crossbar三层架构。
进一步地,所述步骤2指令集包括在线编程的LdWGT指令、用于配置的SetTile指令。
进一步地,所述步骤3硬件并行包括构建向量矩阵乘法运算模块、构建向量ALU运算模块。
进一步地,所述步骤3构建向量矩阵乘法运算模块:利用DSP搭建乘累加树数实现向量矩阵乘法模块,增加循环控制逻辑保证忆阻器阵列的模拟;插入触发器,使向量矩阵乘法运算模块单周期可以获得一个1×16的向量和16×16的矩阵的乘法运算结果。
进一步地,所述步骤3构建向量ALU运算模块:通过LUT和DSP搭建向量ALU运算模块,增加选择控制逻辑;插入触发器,使向量ALU运算模块单周期可以获得一个1×16的向量ALU运算结果。
进一步地,所述步骤4软件库包括构建指令转译库、构建分时复用软件方案库。
进一步地,所述步骤4构建指令转译库:对于由于ReRAM阵列规模和FPGA乘累加树规模不匹配的Store、Load、Pooling、Activation指令,增加字段转换为适配FPGA乘累加树规模的指令;对于由于ReRAM阵列的器件特性无法在FPGA上实现的指令,进行指令转换。
进一步地,所述步骤4构建分时复用软件方案库:将ReRAM规模的MVM向量和矩阵切分成符合硬件规模的向量和矩阵,通过对硬件资源的分时复用完成这个MVM运算。
进一步地,所述步骤3和所述步骤4实现在DIGILENT ZYBO-Z7开发板上。
在本发明的较佳实施方式中,基于FPGA模拟的阻变神经网络加速器评估方法,包括:设计基于FPGA资源的硬件系统,通过硬件并行的方式,解决传统存算一体架构软件模拟器仿真速度慢的问题。设计C++软件库,通过软件调度的分时复用方案进行任意规模的忆阻器阵列的仿真。通过通用的指令集设计,解决传统存算一体架构硬件模拟器灵活性差的问题。将上述软硬件设计实现在DIGILENT ZYBO-Z7开发板上。
基于FPGA模拟的阻变神经网络加速器,硬件并行减少仿真时间,包括:构建向量矩阵乘法运算模块:利用DSP搭建乘加树实现向量矩阵乘法模块,增加必要的循环控制逻辑保证忆阻器阵列的模拟。插入触发器,避免组合逻辑过长导致的时钟频率过低的问题,使向量矩阵乘法运算模块单周期可以获得一个1×16的向量和16×16的矩阵的乘法运算结果。构建向量ALU运算模块:通过LUT和DSP搭建向量ALU运算模块,增加必要的选择控制逻辑。插入触发器,避免组合逻辑过长导致的时钟频率过低的问题,使向量ALU运算模块单周期可以获得一个1×16的向量ALU运算结果。
C++软件库通过软件方式增加灵活性,包括:构建指令转译库:对于由于ReRAM阵列规模和FPGA乘累加树规模不匹配的Store、Load、Pooling、Activation指令,对指令增加index和size等字段转换为适配FPGA乘累加树规模的指令。对于由于ReRAM阵列的器件特性,无法在FPGA上实现的指令,进行如表2所示的指令转换。构建分时复用软件方案库:将ReRAM规模的MVM向量和矩阵切分成符合硬件规模的向量和矩阵,通过对硬件资源的分时复用完成这个MVM运算。
本发明与现有技术相比较,具有如下显而易见的实质性特点和显著优点:
1、加快仿真速度,通过分析现有阻变神经网络加速器的架构通用性,利用FPGA资源的高度并行性和运行时指令驱动的灵活模拟方式,通过对有限硬件资源的分时复用,该FPGA模拟器可支持主流阻变神经网络加速器架构和指令集的功能模拟,并针对主流网络给出详尽的性能评估。
2、相比传统的硬件模拟器,本发明可以在不修改硬件结构的前提下可以支持更多神经网络的映射和性能评估。
3、相比传统的软件模拟器,针对深度神经网络,本发明大大缩短了仿真时间。
4、针对不同规模的忆阻器阵列,本发明提出的阻变神经网络加速器相较软件仿真器MNSIM有的40×~252.9×速度提升;针对深度神经网络,加速器相较软件仿真DNNNeuroSim有至少194.7×的速度提升。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是本发明的一个较佳实施例的ReRAM阵列向量矩阵乘法运算原理图;
图2是本发明的一个较佳实施例的阻变神经网络加速器架构模型图;
图3是本发明的一个较佳实施例的阻变神经网络加速器计算流程;
图4是本发明的一个较佳实施例的阻变神经网络加速器硬件结构图;
图5是本发明的一个较佳实施例的FPGA中MVM运算调度;
图6是本发明的一个较佳实施例的运行流程。
具体实施方式
以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。
在附图中,结构相同的部件以相同数字标号表示,各处结构或功能相似的组件以相似数字标号表示。附图所示的每一组件的尺寸和厚度是任意示出的,本发明并没有限定每个组件的尺寸和厚度。为了使图示更清晰,附图中有些地方适当夸大了部件的厚度。
本发明涉及存算一体通用指令集的编译、架构模型的建立、加速器的软硬件实现以及深度神经网络的性能评估。为加快仿真速度,本发明提出一种基于FPGA模拟的阻变神经网络加速器评估方法,通过分析现有阻变神经网络加速器的架构通用性,利用FPGA资源的高度并行性和运行时指令驱动的灵活模拟方式,通过对有限硬件资源的分时复用,该FPGA模拟器可支持主流阻变神经网络加速器架构和指令集的功能模拟,并针对主流网络给出详尽的性能评估。
1、架构和指令集模型设计
1.1、架构设计
为对神经网络各层运算进行有效的资源分配,提升内部带宽并减少不必要数据的移动,神经网络加速器需要进行分层拓扑架构设计,基于FPGA模拟的阻变神经网络加速器支持Core、Tile、Crossbar的三层架构。
Crossbar主要进行向量和矩阵的乘法运算,每个Crossbar包含ReRAM阵列、保存输入输出数据的缓存单元和信号转换器等功能模块。Tile主要进行神经网络的层级运算,Tile包含存放数据的SRAM、一定数量的Crossbar和用于将Crossbar的计算结果进行激活操作的向量运算单元(ALU)。Core中主要进行网络级别的运算,Core中包含指令解码模块、一定数量的Tile、加载数据到各自Tile对应SRAM的加载单元(LU),保存数据到DRAM的存储单元(SU)和进行池化操作的向量运算单元(ALU)。DRAM保存编译产生的指令和数据,每个Core通过各自的指令队列连接在指令发射模块上接收指令,数据通过直接存储器访问(DMA)传递给各个Core。图1为ReRAM阵列向量阵乘法运算原理图。
1.2、指令集设计
由于忆阻器阵列加速器的器件和架构特点以及神经网络的计算特性,面向忆阻器阵列神经网络加速器的指令也有其特殊性。
基于FPGA模拟的阻变神经网络加速器在传统神经网络加速器指令的基础上新增在线编程的LdWGT指令,用于配置的SetTile指令等,指令集如表1所示。
在上述架构和指令集模型下,基于FPGA模拟的阻变神经网络加速器的运算流程如图3所示。
2、加速器软硬件设计
2.1、加速器硬件设计
本发明设计的加速器包含了阻变神经网络加速器架构模型的所有主要功能模块,包括DMA、DRAM、指令发射模块、指令队列、指令解码模块、数据加载模块、数据回存模块、SRAM、向量计算单元、向量矩阵乘法运算单元。由于硬件规模的限制,各个Core、Tile、Crossbar的运算任务只能串行进行,阻变神经网络加速器的向量矩阵乘法运算单元主要通过乘累加树实现。对比图2,图4中的指令队列接收每个Core的指令并经由指令解码模块发送到各个功能模块中执行。在指令的执行过程中,所有的Tile都通过同一数据加载模块和数据回存模块执行Load、Store指令和SRAM进行交互;所有的MVM指令和ALU指令分别在向量矩阵乘法运算单元和向量计算单元串行执行。
ReRAM阵列的规模往往很大,但FPGA存储和运算资源有限,ALU和MVM指令运算能力有限,因此需要将权值矩阵和输入向量进行分割重组,每次进行小规模的运算,将运算结果按照数据索引进行相应的累加。通过对FPGA硬件资源的分时复用完成较大规模ReRAM阵列的模拟。
可以通过修改硬件结构实现分时复用的硬件调度。但是由于积累全部ReRAM阵列规模的输入数据和权重数据计算模块才能开始计算,硬件上需要增加Buffer积累数据,同时计算单元在运行时也会长时间空等,造成不必要的性能损失。为降低硬件设计的复杂度并提升运行效率,本发明提供加速器的软件库支持分时复用的软件调度。
表1加速器指令集
Figure BDA0002828073520000051
Figure BDA0002828073520000061
2.2、加速器软件库设计
由于硬件设计上的差异,表1所述的指令集不能直接执行在阻变神经网络加速器上。设计C++软件库将表1所示指令的转换为硬件支持的指令,软件库同时支持分时复用的软件调度。
2.2.1、指令的重新翻译
表2指令转译表
Figure BDA0002828073520000062
编译器生成的指令是面向ReRAM规模的指令,其读写和进行运算的数据规模均是ReRAM的规模,而FPGA上实现的运算模块远达不到这样的规模,这样的指令送到硬件后端执行仅仅求得很小的部分和,与最终结果有很大的差距。需要将数据切分为适配FPGA运算模块的大小进行运算,并对Store、Load、Pooling、Activation指令增加index和size等字段转换为适配运算模块的指令,保证转换前后的指令进行相同的操作。
此外,由于ReRAM阵列的器件特性,部分指令无法在后端FPGA执行,如LdWGT等。FPGA硬件资源有限,多Core多Tile的并行计算只能串行进行,部分指令在串行系统中的功能与在并行系统中的功能有差异,如Move等。因此对上述指令进行如表2所示的指令转译。
2.2.1、软件分时复用调度方案
软件调度方案不改变后端硬件结构,而是在运行时对保存在DRAM上的指令的内容和数据的排布方式进行调整,硬件后端上执行的依旧是与算力相匹配的指令。
将ReRAM规模的输入向量和输出向量切分为n个FPGA乘累加树规模的子向量,ReRAM规模的权值矩阵相应的切分为n×n个FPGA乘累加树规模的子块矩阵。那么,编译生成的一条MVM指令进行ReRAM阵列规模的矩阵乘法运算在FPGA乘累加树上要分成n×n次实现。如图5所示,运算时主要以输入向量优先的方式进行调度。运行时,每次加载一个输入子向量和同一输入通道下的n个子块矩阵,分别进行向量矩阵乘法运算,相应得到n个输出子向量的部分和。阻变神经网络加速器一个周期可以获得一个子向量和子块矩阵的向量矩阵乘法的结果,因此一个ReRAM规模的向量矩阵乘法运算需要至少n×n个周期完成。
通过指令的重新翻译和MVM运算的调度,可以灵活地将更多的神经网络框架编译成基于FPGA模拟的阻变神经网络器支持的指令集,从而支持更多网络的性能评估。
本发明提出的基于FPGA模拟的阻变神经网络加速器评估方法研究与设计的核心技术主要包括以下两点:
1、在FPGA有限的硬件资源下,通过保留通用阻变神经网络加速器架构的主要功能模块的设计方式,串行进行各个忆阻器阵列的运算,完成架构仿真。
2、通过C++软件库进行指令的转译和硬件资源的分时复用,进行任意可变规模的ReRAM阵列的仿真。
本发明选取DIGILENT ZYBO-Z7开发板实现基于FPGA模拟的阻变神经网络加速器的软硬件设计。DIGILENT ZYBO-Z7上集成Xilinx ZYNQ-7020芯片和ARM Cortex-A9的处理器核。ARM Cortex-A9处理器上移植ubuntu 18.04操作系统,实现对整个硬件后端运行时的控制。FPGA芯片上实现了主要的运算和控制逻辑,资源使用情况如表3所示,FPGA片上存储(BRAM)和乘累加运算资源(DSP)已被充分利用。
在实验环境的约束下,阻变神经网络加速器工作在100MHz主频的时钟下,单周期可以获得一个1×16的向量和16×16的矩阵的乘法运算结果或1×16的向量运算结果。
具体实施方式如图6所示,共分为三个步骤:
步骤一:将神经网络框架编译生成表1所示通用阻变神经网络加速器指令,并在运行时转换为表2所示的FPGA上实现的神经网络加速器指令,并将训练好的网络权值和指令保存在DRAM上。之后,将输入图片保存在DRAM上。
步骤二:神经网络加速器将指令、输入向量和权值矩阵分批次加载到阻变神经网络加速器上。将ReRAM规模的输入向量和输出向量切分为n个FPGA乘累加树规模的子向量,ReRAM规模的权值矩阵相应的切分为n×n个FPGA乘累加树规模的子块矩阵。那么,编译生成的一条MVM指令进行ReRAM阵列规模的矩阵乘法运算在FPGA乘加树上要分成n×n次实现。如图5所示,运算时主要以输入向量优先的方式进行调度。运行时,每次加载一个输入子向量和同一输入通道下的n个子块矩阵,分别进行向量矩阵乘法运算,相应得到n个输出子向量的部分和。
步骤三:将运行的结果向量传回,并显示神经网络的最终输出结果。
本发明选取DIGILENT ZYBO-Z7开发板实现基于FPGA模拟的阻变神经网络加速器的软硬件设计。DIGILENT ZYBO-Z7上集成Xilinx ZYNQ-7020芯片和ARM Cortex-A9的处理器核。ARM Cortex-A9处理器上移植ubuntu 18.04操作系统,实现对整个硬件后端运行时的控制。FPGA芯片上实现了主要的运算和控制逻辑,资源使用情况如表3所示,FPGA片上存储(BRAM)和乘累加运算资源(DSP)已被充分利用。
在实验环境的约束下,阻变神经网络加速器工作在100MHz主频的时钟下,单周期可以获得一个1×16的向量和16×16的矩阵的乘法运算结果或1×16的向量运算结果。
表3资源使用情况
Figure BDA0002828073520000081
1、阵列性能评估
为评估加速器的阵列性能,本发明选取忆阻器阵列的软件模拟器MNSIM进行对比。针对不同规模的忆阻器阵列,阻变神经网络加速器的运行时间和加速比如表4所示。加速器主要通过提供并行的运算单元和流水运算对MVM操作进行硬件加速,但由于访存延迟无法忽略,对于不同规模的阵列,仿真时间并没有成倍的增加。MNSIM软件仿真平台主要通过高主频的CPU串行完成MVM,随着阵列规模的提升,MNSIM的仿真时间显著增加,本发明提出的阻变神经网络加速器可以获得40×~252.9×的加速效果。
2、网络性能评估
为评估加速器对神经网络的加速性能,本发明选取软件模拟器DNN NeuroSim进行对比,为和本发明提出的神经网络加速器的功能相匹配,省略了模拟器对功耗和面积的估算。映射VGG-8和Resnet等深度神经网络,并在
Figure BDA0002828073520000082
CoreTM i5-8500处理器运行模拟器。对比结果如表5所示,对小规模神经网络,本发明提出的神经网络加速器可以获得129.2倍的加速效果。对于深度神经网络Resnet,随着网络层数的提升,加速器可以获得194.7×~234.2×的加速比。
表4加速器对Crossbar运算加速效果
Figure BDA0002828073520000091
表5加速器对神经网络加速效果
Figure BDA0002828073520000092
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

Claims (4)

1.一种基于FPGA模拟的阻变神经网络加速器评估方法,其特征在于,包括以下步骤:
步骤1、架构设计;
步骤2、指令集设计;
步骤3、加速器硬件设计,硬件并行;
步骤4、加速器软件库设计,通用指令集,软件调度分时复用方案;
所述步骤3硬件并行包括构建向量矩阵乘法运算模块、构建向量ALU运算模块;
所述步骤3构建向量矩阵乘法运算模块:利用DSP搭建乘累加树实现向量矩阵乘法运算模块,增加循环控制逻辑保证忆阻器阵列的功能模拟;插入触发器,使向量矩阵乘法运算模块单周期可以获得一个1×16的向量和16×16的矩阵的乘法运算结果;
所述步骤3构建向量ALU运算模块:通过LUT和DSP搭建向量ALU运算模块,增加选择控制逻辑;插入触发器,使向量ALU运算模块单周期可以获得一个1×16的向量ALU运算结果;
所述步骤4软件库包括构建指令转译库、构建分时复用软件方案库;
所述步骤4构建指令转译库:对于由于ReRAM阵列规模和FPGA乘累加树规模不匹配的Store、Load、Pooling、Activation指令,增加字段转换为适配FPGA乘累加树规模的指令;对于由于ReRAM阵列的器件特性无法在FPGA上实现的指令,进行指令转换;
所述步骤4构建分时复用软件方案库:将ReRAM规模的MVM向量和矩阵切分成符合硬件规模的向量和矩阵,通过对硬件资源的分时复用完成这个MVM运算。
2.如权利要求1所述的基于FPGA模拟的阻变神经网络加速器评估方法,其特征在于,所述步骤1支持Core、Tile、Crossbar三层架构。
3.如权利要求1所述的基于FPGA模拟的阻变神经网络加速器评估方法,其特征在于,所述步骤2指令集包括在线编程的LdWGT指令、用于配置的SetTile指令。
4.如权利要求1所述的基于FPGA模拟的阻变神经网络加速器评估方法,其特征在于,所述步骤3和所述步骤4实现在DIGILENT ZYBO-Z7开发板上。
CN202011454516.5A 2020-12-10 2020-12-10 一种基于fpga模拟的阻变神经网络加速器评估方法 Active CN112613598B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011454516.5A CN112613598B (zh) 2020-12-10 2020-12-10 一种基于fpga模拟的阻变神经网络加速器评估方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011454516.5A CN112613598B (zh) 2020-12-10 2020-12-10 一种基于fpga模拟的阻变神经网络加速器评估方法

Publications (2)

Publication Number Publication Date
CN112613598A CN112613598A (zh) 2021-04-06
CN112613598B true CN112613598B (zh) 2023-04-07

Family

ID=75233833

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011454516.5A Active CN112613598B (zh) 2020-12-10 2020-12-10 一种基于fpga模拟的阻变神经网络加速器评估方法

Country Status (1)

Country Link
CN (1) CN112613598B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113869504B (zh) * 2021-12-02 2022-08-05 之江实验室 一种基于忆阻器可编程神经网络加速器
TWI825980B (zh) * 2022-09-07 2023-12-11 英業達股份有限公司 記憶體內計算的模擬器的設定方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016187706A1 (en) * 2015-05-22 2016-12-01 Socpra Sciences Et Génie S.E.C. Method and system for event-based neural networks
GB201913353D0 (en) * 2019-09-16 2019-10-30 Samsung Electronics Co Ltd Method for designing accelerator hardware
CN111523657A (zh) * 2020-04-26 2020-08-11 云知声智能科技股份有限公司 神经网络加速器创建方法及装置、电子设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108090560A (zh) * 2018-01-05 2018-05-29 中国科学技术大学苏州研究院 基于fpga的lstm递归神经网络硬件加速器的设计方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016187706A1 (en) * 2015-05-22 2016-12-01 Socpra Sciences Et Génie S.E.C. Method and system for event-based neural networks
GB201913353D0 (en) * 2019-09-16 2019-10-30 Samsung Electronics Co Ltd Method for designing accelerator hardware
CN111523657A (zh) * 2020-04-26 2020-08-11 云知声智能科技股份有限公司 神经网络加速器创建方法及装置、电子设备和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
An FPGA-Based Hardware Emulator for Neuromorphic Chip With RRAM;Tao Luo;《 IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems》;20200228;全文 *
RRAM-Based Analog Approximate Computing;Boxun Li;《IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems》;20151230;全文 *

Also Published As

Publication number Publication date
CN112613598A (zh) 2021-04-06

Similar Documents

Publication Publication Date Title
Qin et al. Sigma: A sparse and irregular gemm accelerator with flexible interconnects for dnn training
CN111542826A (zh) 支持模拟协处理器的数字架构
CN112613598B (zh) 一种基于fpga模拟的阻变神经网络加速器评估方法
Huynh Deep neural network accelerator based on FPGA
Wu et al. A flexible and efficient FPGA accelerator for various large-scale and lightweight CNNs
Xu et al. CaFPGA: An automatic generation model for CNN accelerator
Dazzi et al. Accelerating inference of convolutional neural networks using in-memory computing
Chen et al. Towards efficient allocation of graph convolutional networks on hybrid computation-in-memory architecture
Kiningham et al. Design and analysis of a hardware cnn accelerator
Que et al. Recurrent neural networks with column-wise matrix–vector multiplication on FPGAs
Asgari et al. Meissa: Multiplying matrices efficiently in a scalable systolic architecture
CN113158599B (zh) 基于量子信息学的芯片和芯片化eda装置
Mandal et al. COIN: Communication-aware in-memory acceleration for graph convolutional networks
Hadley et al. Designing a partially reconfigured system
Sridharan et al. X-former: In-memory acceleration of transformers
Ioannou et al. Streaming Overlay Architecture for Lightweight LSTM Computation on FPGA SoCs
CN111178492B (zh) 计算装置及相关产品、执行人工神经网络模型的计算方法
Rajat et al. A flexible design automation tool for accelerating quantized spectral CNNs
Lu et al. SparseNN: A performance-efficient accelerator for large-scale sparse neural networks
Tzanos et al. Hardware acceleration of transformer networks using fpgas
Liu et al. FPRA: A fine-grained parallel RRAM architecture
Chen et al. Exploiting on-chip heterogeneity of versal architecture for gnn inference acceleration
Zheng et al. An energy-efficient inference engine for a configurable reram-based neural network accelerator
Kesler et al. A hardware acceleration technique for gradient descent and conjugate gradient
US11900239B2 (en) Systems and methods for accelerating sparse neural network execution

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant