CN112149816A - 支持深度神经网络推理加速的异构存算融合系统及方法 - Google Patents
支持深度神经网络推理加速的异构存算融合系统及方法 Download PDFInfo
- Publication number
- CN112149816A CN112149816A CN202011340107.2A CN202011340107A CN112149816A CN 112149816 A CN112149816 A CN 112149816A CN 202011340107 A CN202011340107 A CN 202011340107A CN 112149816 A CN112149816 A CN 112149816A
- Authority
- CN
- China
- Prior art keywords
- memory
- neural network
- data
- heterogeneous
- tile
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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/781—On-chip cache; Off-chip memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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/7817—Specially adapted for signal processing, e.g. Harvard architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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/7825—Globally asynchronous, locally synchronous, e.g. network on chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Memory System (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种支持深度神经网络推理加速的异构存算融合系统及方法,包括:主机处理器,用于控制和管理整个异构存算融合系统;非易失内存模块,与所述主机处理器相连,用于神经网络处理;3D堆叠内存模块,与所述主机处理器相连,用于神经网络处理;网络模块,与所述主机处理器相连,用于与外部主机连接;配置电路,与所述主机处理器相连,用于接收所述主机处理器的配置命令并控制电压发生器,也用于接收所述主机处理器的配置命令并配置3D堆叠内存模块;电压发生器,分别与所述非易失内存模块和配置电路相连,用于接收所述配置电路的控制命令,对所述非易失内存模块施加外部激励,调节其电导状态。
Description
技术领域
本发明涉及异构计算加速领域,更具体地,涉及一种支持深度神经网络推理加速的异构存算融合系统及方法。
背景技术
深度神经网络(DNN)已被广泛应用,比如物体检测、图像分类、语音识别、动作识别和场景理解等。深度神经网络通常具有模型参数量大(因而受内存容量限制)及高吞吐量(数据移动时内存带宽受限)的特点,需要大量的并行计算和内存访问。近几年提出的深度神经网络加速器,有的是基于3D堆叠内存的,有的是基于新型非易失内存的,已取得了很好的研究成果。
当前,面向深度神经网络计算的加速系统,在性能、能效等方面仍存在以下不足:由于片上面积和片上存储资源的限制,在片上不能完全存储整个神经网络模型和全部的特征图像。例如,在278nm制造工艺下,Eyeriss运行AlexNet模型性能能够达到170千兆操作数每秒每瓦特(GOPS, Giga Operations Per Second),但是在运行VGG16时性能急剧下降,能耗也急剧增加。3D堆叠内存容量大,例如,美光公司的混合内存立方体(Hybrid MemoryCube,HMC),满足DNN海量数据处理需求,但基于3D堆叠内存的近数据处理仍是整个计算系统的能效瓶颈。非易失性内存,如忆阻器,具有原位计算优势,其存算一体功能使其具有高能效,例如,PRIME和TIME利用ReRAM存储介质实现DNN预测和训练加速,处理DCNN训练时,TIME的能效比GPU高出126倍。虽然相比于3D堆叠内存,忆阻器能够进一步减少数据访存的开销和时延。但忆阻器受限于以下存在的问题:模拟电路处理导致数据精度下降和额外的模拟电路与数字电路转换开销、由于忆阻器布线带来的交叉开关矩阵的尺寸受限、写开销大和写不一致性问题。
总之,基于3D堆叠内存的深度神经网络计算的加速系统和基于忆阻器的深度神经网络计算的加速系统各自存在自己的优势和不足:前者存储容量大,但访存能耗高,后者高能效,但存储容量受限。
发明内容
本发明实施例的目的是提供一种支持深度神经网络推理加速的异构存算融合系统及方法,综合考虑DNN需求及3D堆叠内存和忆阻器的优缺点,以解决现有基于3D堆叠内存方案的低能效问题和基于忆阻器方案的存储容量受限问题,同时,该系统对深度神经网络计算、存储访问等特征进行了针对性优化。
为了实现上述目的,第一方面,本发明实施例提供一种支持深度神经网络推理加速的异构存算融合系统,包括:
主机处理器,用于控制和管理整个异构存算融合系统;
非易失内存模块,与所述主机处理器相连,用于神经网络处理;
3D堆叠内存模块,与所述主机处理器相连,用于神经网络处理;
网络模块,与所述主机处理器相连,用于与外部主机连接;
配置电路,与所述主机处理器相连,用于接收所述主机处理器的配置命令并控制电压发生器,也用于接收所述主机处理器的配置命令并配置3D堆叠内存模块;
电压发生器,分别与所述非易失内存模块和配置电路相连,用于接收所述配置电路的控制命令,对所述非易失内存模块施加外部激励,调节其电导状态。
第二方面,本发明实施例提供一种基于第一方面所述的一种支持深度神经网络推理加速的异构存算融合系统的加速方法,所述方法包括以下步骤:
步骤(1),配置异构融合存算加速系统的硬件配置资源和给出神经网络模型DNN描述;
步骤(2),对神经网络模型DNN逐层搜索调度方案,将一个或者多个上一层的输出特征图像或输入层特征图像连接作为当前层的输入特征图像,生成各个3D堆叠内存中的存储容器vault或非易失内存中的瓦片tile所存储的输入特征图像子集的索引;
步骤(3),搜索存储容器vault与瓦片tile形成的异构分区策略;
步骤(4),在给定的能效性能需求和硬件资源下,对步骤(3)形成的异构分区策略逐一搜索,搜索在一个存储容器vault或瓦片tile内能效性能最优的调度策略,执行步骤(5)获得面向SMPE的数据映射、循环分块及重排策略,以及面向CMPE的数据映射策略;
步骤(5),搜索面向SMPE的数据映射、循环分块及重排策略,以及面向CMPE的数据映射策略;
步骤(6),如果搜索到的神经网络层是最后一层,则将步骤(5)对应的策略作为总开销最小的调度方案并结束,否则将前K种优化策略所生成的输出特征图像布局作为下一神经网络的输入特征图像,跳转到步骤(2)执行。
进一步地,步骤(3),搜索存储容器vault与瓦片tile形成的异构分区策略,包括以下子步骤:
步骤(3.1)穷举出DNN神经网络层五个维度的并行展开粒度的所有分区方案,每个分区方案都检查五个维度的分区粒度是否能被DNN神经网络层的神经网络形状整除,同时相互为不等价方案,从而缓解在固定PE矩阵上的数据展开并行维度与处理神经网络层的模型参数不匹配,减少出现空间映射碎片或时间映射碎片,其中五个维度包括批处理N、输出特征图像通道M、输入特征图像通道C、卷积核高R和输出特征图像高E;
步骤(3.2)生成所有可行的分区方案的一个生成器;
步骤(3.3)每一个可行的分区方案,都会生成一个查找表,查找表的每一项表示一个存储容器vault或瓦片tile在当前神经网络层所需要存储和计算的输出特征图像子集的一个索引,统计在当前神经网络层中DRAM访问的总开销;
进一步地,步骤(5),搜索面向SMPE的数据映射、循环分块及重排策略,以及面向CMPE的数据映射策略,包括以下子步骤:
步骤(5.1)若是3D堆叠内存的物理PE矩阵,采用基于Row_Stationary的数据流映射策略,将逻辑PE矩阵映射到硬件上的物理PE矩阵中去,以PE矩阵处理流作为多层嵌套循环的最小处理粒度,PE矩阵处理流实现在Tn个批处理图像中,利用Tc个输入通道的特征平面计算Tm个输出通道的特征平面部分中间结果;循环分块将根据三个数据传输流对三层嵌套循环进行分块,其中三个数据传输流分别是:数据从DRAM流入片上的全局缓存、从片上全局缓存经过片上互联总线流入PE内的寄存器堆以及PE内从寄存器堆流入乘法累加单元中计算;每个循环子块对应于不同存储层之间的数据块的传递,以最小化总的数据访问开销,让每一个循环子块内不同的数据类型重新排列执行顺序;
步骤(5.2)若是非易失内存的物理PE矩阵,采用基于Row_Parallel的数据流映射策略,数据从DRAM流入非易失内存上的瓦片tile,非易失内存上的瓦片tile内的PE内实施原位计算,PE之间通过片内交换器switch实现数据交换。
根据以上技术方案,本发明具有如下有益效果:与现有技术相比,本发明与现有的深度神经网络加速系统形成鲜明对比,兼顾两种内存芯片的特性,实现近数据处理与存算一体两种架构的异构融合,能有效应对各种DNN应用对内存容量和高能效性能加速需求。
由3D堆叠内存和忆阻器共同构成的异构存算融合系统,兼顾存储容量和访存能效,克服以往系统存储容量受限(不能支持大规模神经网络计算)和能耗高问题,能高能效支持大规模深度神经网络计算加速;
可重配置的片上互联结构设计。针对深度神经网络计算这种“内存带宽密集型”负载特性,本发明充分利用3D堆叠内存近数据处理能力和非易失内存原位计算能力,为PE提供足够的带宽。
加速方法采用基于Q-learing技术,提出的能效性能分析工具实现了对能耗优化方案(或性能优化等方案)的高效搜索,能高效获得异构存算融合加速设备上灵活且可重配置的数据流调度方案。
本发明作为边缘端加速器使用,有效解决较大的神经网络这类计算密集型和内存密集型应用计算性能低和计算功耗高的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示例了本发明实施例的支持深度神经网络推理加速的异构存算融合系统的结构示意图。
图2示例了本发明实施例的基于支持深度神经网络推理加速的异构存算融合系统的加速方法工作流程图。
图3示例了本发明实施例的基于支持深度神经网络推理加速的异构存算融合系统的加速方法中的能效性能分析框架流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
为了描述方便,我们首先对所用术语作如下定义与解释:
3D堆叠内存:3D堆叠内存是通过硅穿孔技术将多个DRAM存储片和单个逻辑片进行堆叠,实现了DRAM到逻辑片上的高速传输。主流的产品有高带宽存储器(High BandwidthMemory,HBM)和混合存储立方体(Hybrid Memory Cube, HMC)等;
非易失内存:阻变存储器ReRAM相比于DRAM具有更高的存储密度,ReRAM读性能与DRAM相当,写性能由于重置操作的长时延而比DRAM慢五倍。ReRAM以交叉开关矩阵能够高效地表示数据矩阵,并且以模拟突触结构的方式实现矩阵向量多项式函数计算。输入数据由ReRAM字线上模拟输入电压表示,权值被编程到ReRAM的电导中,流到位线末端的电流被看作是矩阵向量乘的结果。在ReRAM上进行深度神经网络DNN的计算和数据的存储能够真正打破冯诺依曼体系结构,实现了存内计算,大大地减少数据传输开销。
相比于3D堆叠内存,ReRAM能够进一步减少数据访存的开销和时延。但ReRAM受限于以下存在的问题:模拟电路处理导致数据精度下降和额外的模拟电路与数字电路转换开销、由于ReRAM布线带来的交叉开关矩阵的尺寸受限、写开销大和写不一致性问题。
控制器:CPU的部件,如:X86芯片或ARM芯片;
网络模块:支持网络连接的高性能智能网卡,如:NVIDIA Mellanox ConnectX-6 Lx。
图1是本发明实施例提供的一种支持深度神经网络推理加速的异构存算融合系统的结构示意图。该异构存算融合系统包括:
主机处理器,用于控制和管理整个异构存算融合系统;
非易失内存模块,与所述主机处理器相连,用于神经网络处理;
3D堆叠内存模块,与所述主机处理器相连,用于神经网络处理;
网络模块,与所述主机处理器相连,用于与外部主机连接;
配置电路,与所述主机处理器相连,用于接收所述主机处理器的配置命令并控制电压发生器,也用于接收所述主机处理器的配置命令并配置3D堆叠内存模块;
电压发生器,分别与所述非易失内存模块和配置电路相连,用于接收所述配置电路的控制命令,对所述非易失内存模块施加外部激励,调节其电导状态。
在本申请一实施例中,如图1所示,所述主机处理器采用采用英特尔第7代(或更高)处理器,当然不限于此。
在本申请一实施例中,所述3D堆叠内存模块,采用的是镁光HMC,由多个DRAM和底层的逻辑片进行堆叠,通过硅穿孔技术互联,形成的多级存储结构纵向上划分为管理和访问相互独立的存储容器vault单元,存储容器vault单元之间采用2D网格的片上互联网络(NoC),每个存储容器vault逻辑片上都会放置一个直接与存储容器vault单元内存控制器连接的神经网络处理引擎。每一神经网络处理引擎中包括一个全局缓存(Global Buffer)和通过专用网络连接成2D矩阵的处理单元(为区别下述忆阻器的处理单元,3D堆叠内存的处理单元简称SMPE),SMPE主要由进行16位定点计算的ALU和0.5~1.0KB大小的本地寄存器堆(Register file)组成。所述3D堆叠内存模块采用近数据处理结构,用于存储卷积神经网络模型、输入特征图像和输出特征图像,以及对输入特征图像进行计算。
进一步地,图1中3D堆叠内存模块包括3D堆叠内存中:其DNN引擎,用于控制处理单元(SMPE)执行卷积神经网络处理;寄存器堆,用于存放数据;乘法累加单元,用于执行16位定点计算;逻辑控制单元,用于实现所述3D堆叠内存逻辑控制;全局缓存,用于存储特征图像数据和卷积核参数;片上网络,用于所述3D堆叠内存模块形成的片上系统的通信;所述寄存器堆、所述乘法累加单元、及所述逻辑控制单元构成所述3D堆叠内存模块的处理单元(SMPE),该处理单元实施存内计算。
进一步地,图1中DNN引擎,每个存储容器vault控制器上都会集成一个卷积神经网络处理引擎。本发明的处理引擎采用的是Eyeriss结构。Eyeriss采用逐层加速的方法,计算模块采用脉动计算矩阵的方式实现,每个处理单元SMPE都有独立的存储,计算和控制模块,而且能够和邻接PE节点进行数据交互,因此能够让SMPE产生的计算结果多在SMPE矩阵中进行处理,有效的降低对片上存储带宽的依赖。Eyeriss数据流采用Row-Sationary策略,能够最小化空间结构上数据移动的能量开销。
在本申请一实施例中,如图1所示,所述非易失内存模块采用忆阻器存算一体处理结构,包括忆阻器,(VTEAM模式的)忆阻器采用FloatPIM内存架构,由32个瓦片tile组成,每个瓦片tile有256个内存块(交叉阵列crossbar memory)形成的处理单元(简称CMPE),所述内存块有行驱动器row driver和列驱动器column driver,内存块之间通过交换器switch连接保证并行数据传输,每个瓦片tile有个控制单元,所述控制单元通过行驱动器和列驱动器操作内存块中的交叉阵列crossbar来实现乘或者加操作,以及快速数据传送。
进一步地,图1中所述非易失内存采用忆阻器,包括控制单元,用于发出的控制信号对所述非易失内存模块中各个部分加以控制;模数变换器,用于将模拟形式的连续信号转换为数字形式的离散信号;交叉内存处理单元(CMPE),用于实施存内计算;片上解码器,用于数字信号数据流解码还原成模拟信号;移位加单元,用于通过移位的方式实现加操作;多路复用器,用于在一个信道同时传输多路信号;输入和输出寄存器,分别用于配置为接收指令和输出计算结果。
图2是本发明实施例提供的一种支持深度神经网络推理加速的异构存算融合系统的加速方法的工作流程图。图2中系统运行过程主要分为两个阶段,第一阶段将DNN模型编译为系统上的配置信息指令集,第二个阶段是在系统上执行卷积神经网络推理。DNN的层和卷积参数的多样性要求灵活高效的计算模式,以优化功耗和性能。阶段一将DNN以有向无环图表示的拓扑结构描述和异构融合硬件资源信息的描述作为能效性能分析框架的输入,该能效性能分析框架将按照吞吐率(或能耗,或算法精度)产生每一层的最佳计算模式。调度框架产生的每一层的配置参数将通过异构设备特定指令汇编器,将调度策略编码为相应的配置信息指令集。第二阶段是系统执行阶段。首先,系统加载主机处理器上的配置指令分别到3D堆叠内存的逻辑片上的控制逻辑单元(或非易失内存的控制单元)中来可重配置相应寄存器等功能单元的参数和信号,同时将模型参数加载到每个存储容器vault(或瓦片tile(图2中的忆阻器形成的存内计算部分的①))上来实现模型并行处理(图2中的3D堆叠内存部分的①)。系统逐一处理每一层的计算(图2中的忆阻器形成的存内计算部分的②③)(若是3D堆叠内存,并在计算完后写回到DRAM中去(图2中的3D堆叠内存部分的②③④))。当执行完所有计算再向控制器返回预测结果。
下面对该方法做详细描述:
本实施例提供一种基于上述的一种支持深度神经网络推理加速的异构存算融合系统的加速方法,所述方法包括以下步骤:
步骤(1),配置异构融合存算加速系统运行时的信息,包括以下子步骤:
(1.1)配置异构融合存算加速系统的硬件配置资源;其中所述加速设备硬件配置资源包括:3D堆叠内存芯片与忆阻器芯片;针对3D堆叠内存,含3D-Memory 存储容器vault矩阵大小、全局缓存容量、寄存器文件堆容量、各存储层访问开销、单个计算开销和批处理大小;针对忆阻器,含交叉阵列crossbar阵列大小、移位器shifter层数、交换器switch数、I/O缓存大小和瓦片tile大小。
(1.2)给出神经网络模型DNN描述,依次给出DNN各层类型、卷积核大小、输入通道数和输出通道数;其中神经网络模型表示为<N,M,C,R,E>,其中,N是特征图像的批处理大小,M是输出特征图像通道数,C是输入特征图像通道数,R是卷积核的高,E是输出特征图像的高。
步骤(2),对DNN逐层搜索调度方案,将一个或者多个上一层的输出特征图像或输入层特征图像连接作为当前层的输入特征图像,生成各个3D堆叠内存中的存储容器vault或非易失内存中的瓦片tile所存储的输入特征图像子集的索引;
步骤(3),搜索存储容器vault与瓦片tile形成的异构分区策略,包括以下子步骤:
(3.1)穷举出DNN神经网络层五个维度(批处理N,输出特征图像通道M,输入特征图像通道C,卷积核高R,输出特征图像高E)的并行展开粒度的所有分区方案,每个分区方案都检查五个维度的分区粒度是否能被DNN神经网络层的神经网络形状整除,同时相互为不等价方案,从而缓解在固定PE矩阵上的数据展开并行维度与处理神经网络层的模型参数不匹配,减少出现空间映射碎片或时间映射碎片;
(3.2)生成所有可行的分区方案的一个生成器;
(3.3)每一个可行的分区方案,都会生成一个查找表,查找表的每一项表示一个存储容器vault或瓦片tile在当前神经网络层所需要存储和计算的输出特征图像子集的一个索引,统计在当前神经网络层中DRAM访问的总开销;
步骤(4),在给定的能效性能需求和硬件资源下,对步骤(3)形成的异构分区策略逐一搜索,搜索在一个存储容器vault或瓦片tile内能效性能最优的调度策略;
步骤(5),搜索面向SMPE的数据映射、循环分块及重排策略,以及面向CMPE的数据映射策略,包括以下子步骤:
(5.1)若是3D堆叠内存的物理PE矩阵,采用基于Row_Stationary的数据流映射策略,将逻辑PE矩阵映射到硬件上的物理PE矩阵中去,以PE矩阵处理流作为多层嵌套循环的最小处理粒度,PE矩阵处理流实现在Tn个批处理图像中,利用Tc个输入通道的特征平面计算Tm个输出通道的特征平面部分中间结果;循环分块将根据三个数据传输流对三层嵌套循环进行分块,其中三个数据传输流分别是:数据从DRAM流入片上的全局缓存、从片上全局缓存经过片上互联总线流入PE内的寄存器堆以及PE内从寄存器堆流入乘法累加单元中计算;每个循环子块对应于不同存储层之间的数据块的传递,以最小化总的数据访问开销,让每一个循环子块内不同的数据类型重新排列执行顺序;
(5.2)若是非易失内存的物理PE矩阵,采用基于Row_Parallel的数据流映射策略,数据从DRAM流入非易失内存上的瓦片tile,非易失内存上的瓦片tile内的PE内实施原位计算,PE之间通过片内交换器switch实现数据交换。
步骤(6),如果搜索到的神经网络层是最后一层,则将步骤(5)对应的策略作为总开销最小的调度方案并结束,否则将前K种优化策略所生成的输出特征图像布局作为下一神经网络的输入特征图像,跳转到步骤(2)执行。
图3示例了本发明实施例的基于支持深度神经网络推理加速的异构存算融合系统的加速方法中的能效性能分析框架流程图。将DNN以有向无环图表示的拓扑结构描述和异构融合硬件资源信息的描述作为能效性能分析框架的输入。能效性能分析框架为每一神经网络层搜索调度方案,量化了存储层级中每一层的存储成本和卷积计算成本。在对每一次的搜索中,DNN输入特征图像模型的分区方案或是上一层的输出特征图像分区方案作为该层的输入特征图像分区方案,描述了存储容器vault与瓦片tile内所存储的神经网络层输入特征图像子集范围。面向SMPE和面向CMPE,采用启发式搜索和强化学习中的Q-learning技术检索数据流的最佳映射方式,能效性能分析框架以吞吐率(或能耗,或算法精度)最优作为筛选,对存储容器vault(或瓦片tile)形成的异构分区策略,异构分区、数据映射、循环分块及重排策略等策略的可行方案进行搜索。这些方案中依照其总能耗开销(或总吞吐率,或算法精度),保留总能耗开销(或总吞吐率,或算法精度)前K小(K为能效性能分析框架的输入参数,如果是总吞吐率或算法精度应为前K大)的调度策略到缓存中作为下一层数据流调度策略搜素的依据。当搜索完所有的神经网络层后,从缓存中取出总能耗开销最小的DNN数据流调度策略作为输出。
下面对该框架做详细描述:
采用如下异构分区策略将所执行的神经网络层划分存储容器vault(或瓦片tile)数目大小的神经网络层计算任务子集,包括批处理分区,输入特征图通道分区,输出特征图通道分区,特征平面分区以及混合前面四种分区方案。形成如下异构分区策略:采用批处理分区,不同存储容器vault(或瓦片tile)存储整个DNN模型来处理不同的输入特征图像,存储容器vault之间无卷积核传递的通信开销,但不会改善单个输入特征图像处理时间;采用输入特征图像通道分区,不同存储容器vault(或瓦片tile)处理不同的输入特征图像通道的计算,存储容器vault(或瓦片tile)之间由于需要累加计算输出特征图像的部分中间结果而导致大量的通信开销;采用输出特征通道分区,存储容器vault(或瓦片tile)之间计算相互独立的输入特征图像通道,能够最小化卷积核的DRAM访问;采用特征平面分区,存储容器vault(或瓦片tile)之间处理不同的输入特征图像平面的一个子集计算,局部性原理使大部分的数据在同一个存储容器vault(或瓦片tile)中,因此最小化远程存储容器vault(或瓦片tile)的访问开销。通过将多个分区策略和不同的神经网络层进行匹配,权衡存储容器vault(或瓦片tile)之间通信开销和DRAM访问开销使开销最小。
对神经网络模型的<N,M,C,R,E>根据存储容器vault与瓦片tile形成的异构分区
矩阵的维度穷举出可行的分组映射策略<Tn,Tm,Tc,Tr,Te>,(其中,N是特征图像的批处理
大小,M是输出特征图像通道数,C是输入特征图像通道数,R是卷积核(Filter)的高,E是输
出特征图像的高,Tn表示批处理图像并行,Tm表示特征图像并行,Tc表示特征图像并行,Tr
表示突触并行,Te表示神经元并行,)计算引擎内总矩阵利用率是矩阵数据处理流完成这五
重循环迭代的总计算量与系统提供最大算力(即SMPE和CMPE形成的总的PE数目)和迭代次
数之比,即;
若是3D堆叠内存的物理PE矩阵,采用基于Row_Stationary的数据流映射策略,该策略是将逻辑PE矩阵映射到硬件上的物理PE矩阵中去。以PE矩阵处理流作为多层嵌套循环的最小处理粒度,PE矩阵处理流实现在Tn个批处理图像中,利用Tc个输入通道的特征平面计算Tm个输出通道的特征平面部分中间结果;循环分块将根据三个数据传输流对三层嵌套循环进行分块。三个数据传输流分别是,数据从DRAM流入片上的全局缓存、从片上全局缓存经过片上互联总线流入PE内的寄存器堆以及PE内从寄存器堆流入乘法累加单元中计算。每个循环子块对应于不同存储层之间的数据块的传递,以最小化总的数据访问开销,让每一个循环子块内不同的数据类型重新排列执行顺序。
若是非易失内存的物理PE矩阵,若是非易失内存的物理PE矩阵,采用基于Row_Parallel的数据流映射策略,数据从DRAM流入非易失内存上的瓦片tile,非易失内存上的瓦片tile内的PE内实施原位计算,PE之间通过片内交换器switch实现数据交换。
在给定的能效性能需求和硬件资源下,对上述异构分区、数据映射、循环分块及重排策略逐一搜索,搜索在一个存储容器vault(或瓦片tile)内能效性能最优的调度策略,为了增加搜索效率,采用启发式搜索(Heuristics)和强化学习中的Q-learning技术,具体为,启发式搜索是基于模拟退火算法寻找起始调度策略,在已经评估的调度策略当中寻找最好的,机器学习部分是通过Q-Learning选择方向,每次预测不同方向的Q值,选择最大的,也会去除已访问的调度策略以避免回溯。主要包括以下三点:
(A)若优先考虑处理速度,则按最大化吞吐率方案搜索,此时,定义吞吐率计算函数为:Throughput= ,其中S为内存芯片数量,T为时间段, 为监控在时刻timet采集的内存芯片stacks的I/O吞吐率,使用Throughput作为奖励函数值;
(B)若优先考虑能耗,则按最小化能耗方案搜索,此时,定义能耗计算函数为:Energy= ,其中S为内存芯片数量,T为时间段,为监控在时刻timet采集的内存芯片stacks的能耗,使用Energy作为
奖励函数值;
(C)若优先考虑算法精度,则按最大化算法精度方案搜索,此时,定义算法精度计算函
数为:Precision= ,其中S为内存芯片数量,T为时间
段, 为监控在时刻timet采集的内存芯片stacks的算法精度,使用Precision作为奖励函数值。
总结,可行的异构分区策略会进入卷积映射策略搜索,根据异构处理单元PE物理特性生成逻辑处理单元PE矩阵,为了将逻辑处理单元PE矩阵映射到物理具体的计算矩阵中去,会将逻辑处理单元PE矩阵进行折叠或者是冗余,这个过程中没有被分配的处理单元PE处于空等状态导致利用率的下降,能效性能分析框架会移除利用率低下的映射策略。若物理PE矩阵能够容纳多个逻辑处理单元PE矩阵,则以启发式最小化剩余迭代次数进一步展开执行循环。数据是否移动以及如何移动与存储在不同特性的存储介质相关,同时,数据在不同存储层的访问次数和在该存储层上的数据重用相关,进一步描述,和在某一存储层嵌套循环上访问次序相关。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种支持深度神经网络推理加速的异构存算融合系统,其特征在于,包括:
主机处理器,用于控制和管理整个异构存算融合系统;
非易失内存模块,与所述主机处理器相连,用于神经网络处理;
3D堆叠内存模块,与所述主机处理器相连,用于神经网络处理;
网络模块,与所述主机处理器相连,用于与外部主机连接;
配置电路,与所述主机处理器相连,用于接收所述主机处理器的配置命令并控制电压发生器,也用于接收所述主机处理器的配置命令并配置3D堆叠内存模块;
电压发生器,分别与所述非易失内存模块和配置电路相连,用于接收所述配置电路的控制命令,对所述非易失内存模块施加外部激励,调节其电导状态。
2.根据权利要求1所述的一种支持深度神经网络推理加速的异构存算融合系统,其特征在于,所述非易失内存模块采用忆阻器存算一体处理结构,包括忆阻器,所述忆阻器采用FloatPIM内存架构,由32个瓦片tile组成,每个瓦片tile有256个内存块,所述内存块有行驱动器row driver和列驱动器column driver,内存块之间通过交换器switch连接保证并行数据传输,每个瓦片tile有个控制单元,所述控制单元通过行驱动器和列驱动器操作内存块中的交叉阵列crossbar来实现乘或者加操作,以及快速数据传送。
3.根据权利要求1所述的一种支持深度神经网络推理加速的异构存算融合系统,其特征在于,所述非易失内存模块,包括:
控制单元,用于发出的控制信号对所述非易失内存模块中各个部分加以控制;
模数变换器,用于将模拟形式的连续信号转换为数字形式的离散信号;
交叉内存处理单元CMPE,用于实施存内计算;
片上解码器,用于数字信号数据流解码还原成模拟信号;
移位加单元,用于通过移位的方式实现加操作;
多路复用器,用于在一个信道同时传输多路信号;
输入和输出寄存器,分别用于配置为接收指令和输出计算结果。
4.根据权利要求1所述的一种支持深度神经网络推理加速的异构存算融合系统,其特征在于,所述3D堆叠内存模块,包括:
DNN引擎,用于控制处理单元执行卷积神经网络处理;
寄存器堆,用于存放数据;
乘法累加单元,用于执行16位定点计算;
逻辑控制单元,用于实现所述3D堆叠内存逻辑控制;
全局缓存,用于存储特征图像数据和卷积核参数;
片上网络,用于所述3D堆叠内存模块形成的片上系统的通信;
所述寄存器堆、所述乘法累加单元、及所述逻辑控制单元构成所述3D堆叠内存模块的处理单元SMPE,该处理单元实施存内计算。
5.一种基于权利要求1所述的一种支持深度神经网络推理加速的异构存算融合系统的加速方法,其特征在于,所述方法包括以下步骤:
步骤(1),配置异构融合存算加速系统的硬件配置资源和给出神经网络模型DNN描述;
步骤(2),对神经网络模型DNN逐层搜索调度方案,将一个或者多个上一层的输出特征图像或输入层特征图像连接作为当前层的输入特征图像,生成各个3D堆叠内存中的存储容器vault或非易失内存中的瓦片tile所存储的输入特征图像子集的索引;
步骤(3),搜索存储容器vault与瓦片tile形成的异构分区策略;
步骤(4),在给定的能效性能需求和硬件资源下,对步骤(3)形成的异构分区策略逐一搜索,搜索在一个存储容器vault或瓦片tile内能效性能最优的调度策略;
步骤(5),搜索面向SMPE的数据映射、循环分块及重排策略,以及面向CMPE的数据映射策略;
步骤(6),如果搜索到的神经网络层是最后一层,则将步骤(5)对应的策略作为总开销最小的调度方案并结束,否则将前K种优化策略所生成的输出特征图像布局作为下一神经网络的输入特征图像,跳转到步骤(2)执行。
6.根据权利要求5所述的加速方法,其特征在于,所述加速设备硬件配置资源包括:3D堆叠内存芯片与忆阻器芯片;
针对3D堆叠内存,含3D-Memory 存储容器vault矩阵大小、全局缓存容量、寄存器文件堆容量、各存储层访问开销、单个计算开销和批处理大小;
针对忆阻器,含交叉阵列crossbar阵列大小、移位器shifter层数、交换器switch数、I/O缓存大小和瓦片tile大小。
7.根据权利要求5所述的加速方法,其特征在于,步骤(3),搜索存储容器vault与瓦片tile形成的异构分区策略,包括以下子步骤:
步骤(3.1)穷举出DNN神经网络层五个维度的并行展开粒度的所有分区方案,每个分区方案都检查五个维度的分区粒度是否能被DNN神经网络层的神经网络形状整除,同时相互为不等价方案,从而缓解在固定PE矩阵上的数据展开并行维度与处理神经网络层的模型参数不匹配,减少出现空间映射碎片或时间映射碎片,其中五个维度包括批处理N、输出特征图像通道M、输入特征图像通道C、卷积核高R和输出特征图像高E;
步骤(3.2)生成所有可行的分区方案的一个生成器;
步骤(3.3)每一个可行的分区方案,都会生成一个查找表,查找表的每一项表示一个存储容器vault或瓦片tile在当前神经网络层所需要存储和计算的输出特征图像子集的一个索引,统计在当前神经网络层中DRAM访问的总开销。
8.根据权利要求5所述的加速方法,其特征在于,步骤(5),搜索面向SMPE的数据映射、循环分块及重排策略,以及面向CMPE的数据映射策略,包括以下子步骤:
步骤(5.1)若是3D堆叠内存的物理PE矩阵,采用基于Row_Stationary的数据流映射策略,将逻辑PE矩阵映射到硬件上的物理PE矩阵中去,以PE矩阵处理流作为多层嵌套循环的最小处理粒度,PE矩阵处理流实现在Tn个批处理图像中,利用Tc个输入通道的特征平面计算Tm个输出通道的特征平面部分中间结果;循环分块将根据三个数据传输流对三层嵌套循环进行分块,其中三个数据传输流分别是:数据从DRAM流入片上的全局缓存、从片上全局缓存经过片上互联总线流入PE内的寄存器堆以及PE内从寄存器堆流入乘法累加单元中计算;每个循环子块对应于不同存储层之间的数据块的传递,以最小化总的数据访问开销,让每一个循环子块内不同的数据类型重新排列执行顺序;
步骤(5.2)若是非易失内存的物理PE矩阵,采用基于Row_Parallel的数据流映射策略,数据从DRAM流入非易失内存上的瓦片tile,非易失内存上的瓦片tile内的PE内实施原位计算,PE之间通过片内交换器switch实现数据交换。
9.根据权利要求8所述的加速方法,其特征在于,搜索异构分区、数据映射、循环分块及重排策略时,采用启发式搜索和强化学习中的Q-learning技术。
10.根据权利要求8所述的加速方法,其特征在于,步骤(3)和(5)中,搜索策略,具体包括:
(A)若优先考虑处理速度,则按最大化吞吐率方案搜索,此时,
(B)若优先考虑能耗,则按最小化能耗方案搜索,此时,
(C)若优先考虑算法精度,则按最大化算法精度方案搜索,此时,
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011340107.2A CN112149816B (zh) | 2020-11-25 | 2020-11-25 | 支持深度神经网络推理加速的异构存算融合系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011340107.2A CN112149816B (zh) | 2020-11-25 | 2020-11-25 | 支持深度神经网络推理加速的异构存算融合系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112149816A true CN112149816A (zh) | 2020-12-29 |
CN112149816B CN112149816B (zh) | 2021-02-12 |
Family
ID=73887200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011340107.2A Active CN112149816B (zh) | 2020-11-25 | 2020-11-25 | 支持深度神经网络推理加速的异构存算融合系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112149816B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112836814A (zh) * | 2021-03-02 | 2021-05-25 | 清华大学 | 存算一体处理器、处理系统以及算法模型的部署方法 |
CN113065647A (zh) * | 2021-03-30 | 2021-07-02 | 西安电子科技大学 | 加速神经网络的计算-存储通信系统及通信方法 |
CN113238715A (zh) * | 2021-06-03 | 2021-08-10 | 上海新氦类脑智能科技有限公司 | 智能文件系统、及其配置方法、智能辅助计算设备和介质 |
CN114611697A (zh) * | 2022-05-11 | 2022-06-10 | 上海登临科技有限公司 | 神经网络量化及部署方法、系统、电子设备及存储介质 |
CN114827312A (zh) * | 2022-05-09 | 2022-07-29 | 浙江锐文科技有限公司 | 在智能网卡/dpu内自适应延迟及吞吐率需求的方法及装置 |
CN115186821A (zh) * | 2022-09-13 | 2022-10-14 | 之江实验室 | 面向芯粒的神经网络推理开销估计方法及装置、电子设备 |
CN115373630A (zh) * | 2022-10-24 | 2022-11-22 | 北京麟卓信息科技有限公司 | 一种面向异构芯片的矩阵乘法运算过程优化方法 |
CN116306855A (zh) * | 2023-05-17 | 2023-06-23 | 之江实验室 | 一种基于存算一体系统的数据处理方法及装置 |
CN116414456A (zh) * | 2023-01-19 | 2023-07-11 | 杭州知存智能科技有限公司 | 存算芯片内的加权融合变换部件、存算电路及协同计算方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110543332A (zh) * | 2017-04-24 | 2019-12-06 | 英特尔公司 | 使用低精度和高精度的混合推理 |
CN111178519A (zh) * | 2019-12-27 | 2020-05-19 | 华中科技大学 | 卷积神经网络加速引擎、卷积神经网络加速系统及方法 |
US20200193275A1 (en) * | 2018-12-12 | 2020-06-18 | Industrial Technology Research Institute | Deep neural networks (dnn) hardware accelerator and operation method thereof |
-
2020
- 2020-11-25 CN CN202011340107.2A patent/CN112149816B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110543332A (zh) * | 2017-04-24 | 2019-12-06 | 英特尔公司 | 使用低精度和高精度的混合推理 |
US20200193275A1 (en) * | 2018-12-12 | 2020-06-18 | Industrial Technology Research Institute | Deep neural networks (dnn) hardware accelerator and operation method thereof |
CN111178519A (zh) * | 2019-12-27 | 2020-05-19 | 华中科技大学 | 卷积神经网络加速引擎、卷积神经网络加速系统及方法 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022183759A1 (zh) * | 2021-03-02 | 2022-09-09 | 清华大学 | 存算一体处理器、处理系统、处理装置以及算法模型的部署方法 |
CN112836814A (zh) * | 2021-03-02 | 2021-05-25 | 清华大学 | 存算一体处理器、处理系统以及算法模型的部署方法 |
CN113065647B (zh) * | 2021-03-30 | 2023-04-25 | 西安电子科技大学 | 加速神经网络的计算-存储通信系统及通信方法 |
CN113065647A (zh) * | 2021-03-30 | 2021-07-02 | 西安电子科技大学 | 加速神经网络的计算-存储通信系统及通信方法 |
CN113238715A (zh) * | 2021-06-03 | 2021-08-10 | 上海新氦类脑智能科技有限公司 | 智能文件系统、及其配置方法、智能辅助计算设备和介质 |
CN113238715B (zh) * | 2021-06-03 | 2022-08-30 | 上海新氦类脑智能科技有限公司 | 智能文件系统、及其配置方法、智能辅助计算设备和介质 |
CN114827312A (zh) * | 2022-05-09 | 2022-07-29 | 浙江锐文科技有限公司 | 在智能网卡/dpu内自适应延迟及吞吐率需求的方法及装置 |
CN114827312B (zh) * | 2022-05-09 | 2022-09-16 | 浙江锐文科技有限公司 | 在智能网卡/dpu内自适应延迟及吞吐率需求的方法及装置 |
CN114611697A (zh) * | 2022-05-11 | 2022-06-10 | 上海登临科技有限公司 | 神经网络量化及部署方法、系统、电子设备及存储介质 |
CN115186821A (zh) * | 2022-09-13 | 2022-10-14 | 之江实验室 | 面向芯粒的神经网络推理开销估计方法及装置、电子设备 |
CN115373630B (zh) * | 2022-10-24 | 2022-12-20 | 北京麟卓信息科技有限公司 | 一种面向异构芯片的矩阵乘法运算过程优化方法 |
CN115373630A (zh) * | 2022-10-24 | 2022-11-22 | 北京麟卓信息科技有限公司 | 一种面向异构芯片的矩阵乘法运算过程优化方法 |
CN116414456A (zh) * | 2023-01-19 | 2023-07-11 | 杭州知存智能科技有限公司 | 存算芯片内的加权融合变换部件、存算电路及协同计算方法 |
CN116414456B (zh) * | 2023-01-19 | 2024-01-19 | 杭州知存智能科技有限公司 | 存算芯片内的加权融合变换部件、存算电路及协同计算方法 |
CN116306855A (zh) * | 2023-05-17 | 2023-06-23 | 之江实验室 | 一种基于存算一体系统的数据处理方法及装置 |
CN116306855B (zh) * | 2023-05-17 | 2023-09-01 | 之江实验室 | 一种基于存算一体系统的数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112149816B (zh) | 2021-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112149816B (zh) | 支持深度神经网络推理加速的异构存算融合系统及方法 | |
Kim et al. | Neurocube: A programmable digital neuromorphic architecture with high-density 3D memory | |
CN111178519B (zh) | 卷积神经网络加速引擎、卷积神经网络加速系统及方法 | |
KR102589968B1 (ko) | 3 차원 적층 구조를 갖는 뉴로모픽 회로 및 이를 포함하는 반도체 장치 | |
CN107689948A (zh) | 应用于神经网络硬件加速系统的高效数据访存管理装置 | |
CN110334799A (zh) | 基于存算一体的神经网络推理与训练加速器及其运行方法 | |
CN107203807B (zh) | 神经网络加速器的片上缓存带宽均衡方法、系统及其装置 | |
CN111124675B (zh) | 一种面向图计算的异构存内计算设备及其运行方法 | |
Mao et al. | Lergan: A zero-free, low data movement and pim-based gan architecture | |
US10073802B2 (en) | Inter-cluster data communication network for a dynamic shared communication platform | |
CN113597621A (zh) | 计算资源分配技术及神经网络系统 | |
Firuzan et al. | Reconfigurable network-on-chip for 3D neural network accelerators | |
Joardar et al. | REGENT: A heterogeneous ReRAM/GPU-based architecture enabled by NoC for training CNNs | |
Houshmand et al. | Opportunities and limitations of emerging analog in-memory compute DNN architectures | |
Catthoor et al. | Very large-scale neuromorphic systems for biological signal processing | |
Liu et al. | Bit-transformer: Transforming bit-level sparsity into higher preformance in reram-based accelerator | |
CN113261015A (zh) | 神经网络系统及数据处理技术 | |
Luo et al. | Codg-reram: An algorithm-hardware co-design to accelerate semi-structured gnns on reram | |
Delaye et al. | Deep learning challenges and solutions with xilinx fpgas | |
Yoshida et al. | The approach to multiple instruction execution in the GMICRO/400 processor | |
Nair et al. | Fpga acceleration of gcn in light of the symmetry of graph adjacency matrix | |
Liu et al. | Era-bs: Boosting the efficiency of reram-based pim accelerator with fine-grained bit-level sparsity | |
Ji et al. | Hubpa: High utilization bidirectional pipeline architecture for neuromorphic computing | |
Xia et al. | COCOA: Content-oriented configurable architecture based on highly-adaptive data transmission networks | |
US11966358B1 (en) | Neural processor |
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 |