本发明专利技术公开了一种基于FPGA模拟的阻变神经网络加速器评估方法,涉及存算一体体系结构领域,包括存算一体通用指令集的编译、架构模型的建立、加速器的软硬件实现以及深度神经网络的性能评估。为加快仿真速度,本文通过分析现有阻变神经网络加速器的架构通用性,利用FPGA资源的高度并行性和运行时指令驱动的灵活模拟方式,通过对有限硬件资源的分时复用,支持主流阻变神经网络加速器架构和指令集的功能模拟,并针对主流网络给出详尽的性能评估。相比传统的硬件模拟器,本发明专利技术可以在不修改硬件结构的前提下支持更多神经网络的映射和性能评估;相比传统的软件模拟器,针对深度神经网络,本发明专利技术大大缩短了仿真时间。
【技术实现步骤摘要】
一种基于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上进行,向量计算的向量规模也无需特殊指定。相较传统神经网络加速器指令集,现有的面向存算一体加速器的指令集,增加在不同层次间进行数据搬运的指令。随后又加入进行外积计算的OuterProductAccumulate(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实现在DIGILENTZYBO-Z7开发板上。在本专利技术的较佳实施方式中,基于FPGA模拟的阻变神经网络加速器评估方法,包括:设计基于FPGA资源的硬件系统,通过硬件并行的方式,解决传统存算一体架构软件模拟器仿真速度慢的问题。设计C++软件库,通过软件调度的分时复用方案进行任意规模的忆阻器阵列的仿真。通过通用的指令集设计,解决传统存算一体架构硬件模拟器灵活性差的问题。将上述软硬件设计实现在DIGILENTZYBO-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、相比传统的软件模拟器,本文档来自技高网...
【技术保护点】
1.一种基于FPGA模拟的阻变神经网络加速器评估方法,其特征在于,包括以下步骤:/n步骤1、架构设计;/n步骤2、指令集设计;/n步骤3、加速器硬件设计,硬件并行;/n步骤4、加速器软件库设计,通用指令集,软件调度分时复用方案。/n
【技术特征摘要】
1.一种基于FPGA模拟的阻变神经网络加速器评估方法,其特征在于,包括以下步骤:
步骤1、架构设计;
步骤2、指令集设计;
步骤3、加速器硬件设计,硬件并行;
步骤4、加速器软件库设计,通用指令集,软件调度分时复用方案。
2.如权利要求1所述的基于FPGA模拟的阻变神经网络加速器评估方法,其特征在于,所述步骤1支持Core、Tile、Crossbar三层架构。
3.如权利要求1所述的基于FPGA模拟的阻变神经网络加速器评估方法,其特征在于,所述步骤2指令集包括在线编程的LdWGT指令、用于配置的SetTile指令。
4.如权利要求1所述的基于FPGA模拟的阻变神经网络加速器评估方法,其特征在于,所述步骤3硬件并行包括构建向量矩阵乘法运算模块、构建向量ALU运算模块。
5.如权利要求4所述的基于FPGA模拟的阻变神经网络加速器评估方法,其特征在于,所述步骤3构建向量矩阵乘法运算模块:利用DSP搭建乘累加树实现向量矩阵乘法运算模块,增加循环控制逻辑保证忆阻器阵列的功能模拟;插入触发器,使向量矩阵乘法运算模块单周期可以获得一个1×16的向量和16×16的矩阵的乘法运算结果。
6.如权利要求4所述的基于FPGA模拟的阻变神...
【专利技术属性】
技术研发人员:景乃锋,石永泉,孙永帅,蒋剑飞,绳伟光,贺光辉,王琴,
申请(专利权)人:上海交通大学,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。