CN115115043A - 片上-片间互连的神经网络芯片硬件架构设计方法及系统 - Google Patents
片上-片间互连的神经网络芯片硬件架构设计方法及系统 Download PDFInfo
- Publication number
- CN115115043A CN115115043A CN202210699505.6A CN202210699505A CN115115043A CN 115115043 A CN115115043 A CN 115115043A CN 202210699505 A CN202210699505 A CN 202210699505A CN 115115043 A CN115115043 A CN 115115043A
- Authority
- CN
- China
- Prior art keywords
- chip
- neural network
- performance
- hardware
- hardware architecture
- 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.)
- Pending
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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种片上‑片间互连的神经网络芯片硬件架构设计方法及系统,针对算力划分、缓存层次结构设计进行硬件架构探索,在探索过程中针对神经网络中最为重要的卷积层进行计算和数据访存建模,从而得到芯片延时性能、能量消耗指标。基于探索得到的各层次规模配置,针对常见拓扑进行评估,并探索了适用于神经网络通信流量的互连拓扑。通过芯片规模、缓存层次及片上互连拓扑的研究,得到完整的基于片上‑片间互连的神经网络芯片硬件架构。最终设计的神经网络芯片硬件架构优化了系统延时与能量,达到了低延迟、高能效的目标。
Description
技术领域
本发明涉及神经网络芯片硬件架构探索领域,具体地,涉及一种基于Chiplet片上-片间互连的神经网络芯片硬件架构设计方法及系统。同时提供了一种相应的终端及计算机可读存储介质。
背景技术
近年来,深度神经网络(Deep Neural Network,DNN),尤其是卷积神经网络(Convolutional Neural Network,CNN)在包括人脸识别、语言识别和自动驾驶等多个领域中取得了出色的表现,并成功应用在各种人工智能设备上。相比传统的机器学习算法,神经网络无需依赖人工特征提取,通过端到端的训练,即可执行识别或分类任务。然而,这些操作需要大量的计算和存储,传统的基于中央处理器(Central Processing Unit,CPU)的架构已经无法满足其性能和能效需求,各种人工智能(Artificial Intelligence,AI)芯片应运而生。
随着深度学习的飞速发展,不断增长的计算资源和存储资源也导致芯片面积增大,制造成本大幅提升,由此推动了Chiplet技术的发展。Chiplet技术将芯片划分为多个“芯粒”,单芯粒面积相比传统SoC更小,因此,在AI芯片上,利用片间互连(Network onPackage,NoP)连接多个神经网络Chiplet的设计成为有前途的研究方向。然而Chiplet技术也为神经网络芯片硬件架构设计带来了新的挑战。
一方面,由于神经网络数据流的独特特点,在神经网络芯片设计中复杂的神经元连接和通信模式为互连架构设计又提出了全新的挑战,将传统的多核处理器的互连架构直接引入神经网络芯片中并不高效。如何设计具有高能效、低延时、适应神经网络数据流的片上-片间互连架构成为新的挑战。互连拓扑作为互连网络的核心,现有研究中对非mesh互连拓扑的研究不够充分,针对路由器复杂的硬件结构带来的能量和面积开销,现有基于环路的无路由设计是有前景的解决方案,但是尚未针对神经网络数据流进行评估与优化。
另一方面,在神经网络芯片中引入Chiplet技术后,各Chiplet的存储、计算资源的配置成为需要探索的重要问题。在给定性能要求下,如何选择合适的Chiplet规模:也即MAC单元的数量和每个缓存级别的存储大小。具有较少Chiplet的系统会带来更大的单个Chiplet面积,但通信开销小。相反,具有大量小尺寸Chiplet的大规模系统会导致复杂的片间互连,同时却能够节省芯片开发成本。现有研究较少关注算力划分问题,并且也往往仅关注了数据访存次数,未考虑互连架构中的通信对系统带来的影响,此外往往涉及的Chiplet数目较少,可扩展性不强。
目前没有发现同本发明类似技术的说明或报道,也尚未收集到国内外类似的资料。
发明内容
本发明针对现有技术中存在的上述不足,提供了一种片上-片间互连的神经网络芯片硬件架构设计方法及系统。同时提供了一种相应的终端及计算机可读存储介质。其中,片上-片间表示完整的片上系统加片间系统。
根据本发明的一个方面,提供了一种片上-片间互连的神经网络芯片硬件架构设计方法,包括:
基于神经网络芯片算力与存储大小,确定芯片硬件规模探索设计空间;
基于所述硬件规模探索设计空间,从中按序选择一种硬件架构规模参数配置;
针对所述硬件架构规模参数配置,进行性能评价,并选择最优性能作为该硬件架构规模参数的性能;
基于所述硬件架构规模参数的性能,与现有硬件架构性能进行比较,若优于现有硬件架构性能,则保留该性能为最优架构性能;
遍历整个硬件规模探索设计空间,获得最终的最优架构性能,则该最终的最优架构性能对应的硬件架构规模参数即为芯片硬件规模探索的结果,进而得到给定算力与存储大小情况下的最优算力划分和缓存层次规模;
基于所述芯片硬件规模探索的结果,分析神经网络数据流特点,进行神经网络通信数据流提取,得到神经网络通信数据流配置空间;
基于所述神经网络通信数据流配置空间,进行片上互连拓扑结构性能评估,比较各拓扑结构性能,得到最优的片上互连拓扑结构
基于所述芯片硬件规模探索的结果与所述最优的片上互连拓扑结构,结合得到基于神经网络芯片硬件架构探索的最终输出,即为最优的神经网络芯片硬件架构。
可选地,所述确定芯片硬件规模探索设计空间,包括:
基于Package-Chiplet-PE三层次硬件架构,给定芯片算力,明确PE内部MAC数目、每个Chiplet内PE数目以及Chiplet数目,确定算力划分的设计空间,满足如下公式:
NMAC=Nchip×NPE×Nsize×Nlane
其中,NMAC表示算力对应的乘累加器数目,Nchip表示Chiplet数目,NPE表示每个Chiplet片内的PE数目,Nsize表示vector-MAC尺寸,Nlane表示每个PE内的vector-MAC的数目;;Package表示完整系统包含多个芯粒,Chiplet表示芯粒,PE表示处理单元,MAC表示乘累加器,vector-MAC:多个乘累加器组成的向量乘累加器。
针对PE内的L1缓存与L2缓存,分别进行缓存划分,探索划分后L1缓存和L2缓存下的输入特征图缓存、权重缓存以及输出特征图缓存的大小;
基于上述步骤,获得芯片硬件规模探索设计空间。
可选地,所述针对所述硬件架构规模参数配置,进行性能评价,并选择最优性能作为该硬件架构规模参数的性能,包括:
基于选择的所述硬件架构规模参数,进行神经网络模型映射;
基于所述硬件架构规模参数和映射得到的神经网络模型,随机生成所述神经网络模型映射编码,基于所述神经网络模型映射编码,通过构建的计算模型与数据访存模型,提取对应映射方案的计算量与通信量;
基于提取的所述计算量与通信量,计算延时与能量,得到该映射方案的能量延时积性能,并与该硬件架构规模参数下的历史最优性能进行比较,保留更优性能作为该映射方案对应的性能;
对映射得到的所述神经网络模型进行多次迭代后,选择最优性能作为该硬件架构规模参数的性能。
可选地,所述构建计算模型,得到计算任务导致的延时性能指标non_stall_lat;其中,计算方法包括:
runtimeP=P3×P2×P1×PP3×PP2
runtimeQ=Q3×Q2×Q1×PQ3×PQ2
runtimeK=K3×K2×K1×PK3×PK2×PK0
runtimeC=C3×C2×C1×PC0
式中,runtimeP表示实际映射方案的循环展开与循环分块中,P维度所需的计算量,P表示卷积层中理论的P维度的计算量,util.表示计算资源的利用率,通过计算资源利用率计算无阻塞延时non_stall_lat作为延时性能;C为输入特征图通道,P、Q、K分别为输出特征图、高、通道,R、S分别为卷积核宽、高,runtimeQ表示映射方案下Q维度所需的计算量,runtimeK表示映射方案下K维度所需的计算量,runtimeC表示映射方案下C维度所需的计算量,P1~P3分别为三个硬件层次(PE、Chiplet、Package)下P维度的循环分块参数,PP3为P维度在Package层次内(不同Chiplet间的)的循环展开参数,PP2为P维度在Chiplet层次内(不同PE间)的循环展开参数,Q1~Q3分别为三个硬件层次(PE、Chiplet、Package)下Q维度的循环分块参数,K1~K3分别为三个硬件层次(PE、Chiplet、Package)下K维度的循环分块参数,C1~C3分别为三个硬件层次(PE、Chiplet、Package)下C维度的循环分块参数,PK0为K维度在PE层次内(不同乘累加器间)的循环展开参数、PK2、PK3分别为K维度在Chiplet层次和Package层次内的循环展开参数,PC0为C维度在PE层次内(不同乘累加器间)的循环展开参数,MAC_num为完整系统即Package内的乘累加器总数。
可选地,所述数据访存模型的工作过程,包括:
分别针对输入特征图、权重和输出特征图的数据,确定数据流中的每个维度参数是否为相关参数;
从数据流最内层for循环开始,依据参数是否相关,计算得到该层for循环处的输入特征图、输出特征图和权重的存储资源需求;
分别针对L1和L2缓存下输入特征图、权重和输出特征图的共6个存储单元,依据每一个所述存储单元的容量和每层for循环处的存储资源需求,确定6个存储单元的瓶颈点;
依据各个存储单元的瓶颈点和瓶颈点处所需要的数据传输量,计算得到该卷积层在PE层次和L2缓存之间以及chiplet层次和DRAM之间的数据传输总量,即为映射方案的通信量;
基于计算得到的数据传输总量信息,根据设定的指标得到数据传输所导致的能量开销,即为系统的能量开销。
可选地,所述基于所述芯片硬件规模探索的结果,分析神经网络数据流特点,进行神经网络通信数据流提取,包括:
基于芯片硬件规模探索的结果,对神经网络通信流量进行分析,其中通信流量为PE内L2缓存下的输入特征图、权重以及输出特征图与PE集群间的数据交互;
基于硬件架构规模中的PE数目,确定PE的并行度来源,通过对PE进行分组,得到PE间数据共享情况,提取出通信流;
基于不同神经网络模型与神经网络模型的不同层,进行数据流分析,得到神经网络模型不同层可以通过输入特征图数据量、权重数据量、输出特征图数据量三种数据流量的不同比重来表示,其中,卷积层可能输入数据量与输出数据量较多而权重数据量较少,全连接层可能权重数据量较多而输入数据量和输出数据量较少,通过对与L1缓存、L2缓存和DRAM的三种数据流量(即输入特征图数据量、权重数据量、输出特征图数据量)的比例的扫描,来表征不同神经网络层的特征;
结合所述通信流与所述数据流量,得到完整的神经网络通信数据流配置空间。
可选地,所述进行片上互连拓扑结构性能评估,包括:
基于所述神经网络通信数据流配置空间,针对不同的PE分组情况,扫描L1缓存、L2缓存和DRAM数据流量的比例,作为性能评价的输入;
评估通信数据流下的互连架构性能,通过评估每条链路的拥塞度degrate_ratio,寻找最大的拥塞度max(degrate_ratio)作为互连架构在该通信数据流下的性能;
遍历片上互连拓扑结构,迭代上述步骤,得到不同PE分组情况下的各拓扑结构随着数据流量比例而变化的最大拥塞度,完成片上互连拓扑结构性能评估。
可选地,所述数据流特点,包括:通信的模式以及数据流的统计信息;其中:
所述通信的模式,包括:单播、多播和广播;
所述数据流的统计信息,包括:发送节点、目的节点和通信量。
可选地,所述片上互连拓扑结构,包括:常见拓扑结构和基于环路的无路由片上拓扑结构;其中:
所述常见拓扑结构,包括:Mesh拓扑、CMesh拓扑和Torus拓扑;
所述基于环形的无路由片上拓扑结构,包括:3个分别对应于输入特征图二级缓存AL2、权重二级缓存WL2和输出特征图二级缓存OL2的二级缓存和16个处理器单元PE共19个节点,所述19个节点通过各自对应的注入-接收接口与四个环路进行数据交互,四个所述环路实现了不同节点间的数据通信;其中,所述注入-接收接口具有任意的数据流动方向,四个所述环路是单向的环路,数据包在所述环路上每个周期前进一跳;
通过片上互连拓扑结构性能评估,得到的最优的片上互连拓扑结构即为基于环路的无路由片上拓扑结构。
根据本发明的另一个方面,提供了一种片上-片间互连的神经网络芯片硬件架构设计系统,片上-片间表示考虑的系统是完整的片上系统加上片间系统,包括:
参数配置模块,该模块基于神经网络芯片算力与存储大小,确定芯片硬件规模探索设计空间;基于所述硬件规模探索设计空间,从中按序选择一种硬件架构规模参数配置;
性能评价模块,该模块针对所述硬件架构规模参数配置,进行性能评价,并选择最优性能作为该硬件架构规模参数的性能;基于所述硬件架构规模参数的性能,与现有硬件架构性能进行比较,若优于现有硬件架构性能,则保留该性能为最优架构性能;遍历整个硬件规模探索设计空间,获得最终的最优架构性能,则该最终的最优架构性能对应的硬件架构规模参数即为芯片硬件规模探索的结果,进而得到给定算力与存储大小情况下的最优算力划分和缓存层次规模;
通信数据流提取模块,该模块基于所述芯片硬件规模探索的结果,分析神经网络数据流特点,进行神经网络通信数据流提取,得到神经网络通信数据流配置空间;
硬件架构构建模块,该模块基于所述神经网络通信数据流配置空间,进行片上互连拓扑结构性能评估,得到最优的片上互连拓扑结构;基于所述芯片硬件规模探索的结果与所述最优的片上互连拓扑结构,结合得到基于神经网络芯片硬件架构探索的最终输出,即为最优的神经网络芯片硬件架构。
根据本发明的第三个方面,提供了一种片上-片间互连的神经网络芯片硬件架构,采用上述任一项所述的设计方法构建得到。
根据本发明的第四个方面,提供了一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时可用于执行上述任一项所述的方法。
根据本发明的第五个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可用于执行上述任一项所述的方法。
由于采用了上述技术方案,本发明与现有技术相比,具有如下至少一项的有益效果:
本发明提供的片上-片间互连的神经网络芯片硬件架构设计方法及系统,基于对卷积层的数据流的全面分析,建立了详细的计算和各级存储访存模型,得到准确可靠的延时与能量消耗指标。
本发明提供的片上-片间互连的神经网络芯片硬件架构设计方法及系统,针对芯片粒度划分、L1和L2缓存大小配置以及各类数据缓存大小的分配问题的硬件设计空间探索,通过硬件设计空间探索,得到的方案相比其他方案达到2.47%~87.99%的EDP降低。
本发明提供的片上-片间互连的神经网络芯片硬件架构设计方法及系统,提出了针对神经网络片上通信流量特点的基于环路的片上网络无路由拓扑,在降低片上网络面积的同时,提升了通信性能。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明一实施例中片上-片间互连的神经网络芯片硬件架构设计方法的工作流程图。
图2为本发明一优选实施例中片上-片间互连的神经网络芯片硬件架构设计方法的工作流程图。
图3为本发明一优选实施例中片上-片间互连的神经网络芯片硬件整体架构示意图。
图4为本发明一优选实施例中片上通信数据流量图。
图5为本发明一优选实施例中常见互连拓扑结构示意图。
图6为本发明一优选实施例中基于环路的无路由拓扑结构示意图。
图7为本发明一实施例中片上-片间互连的神经网络芯片硬件架构设计系统的组成模块示意图。
具体实施方式
下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
图1为本发明一实施例提供的片上-片间互连的神经网络芯片硬件架构设计方法的工作流程图。其中,片上-片间表示完整的片上系统加上片间系统。
如图1所示,该实施例提供的片上-片间互连的神经网络芯片硬件架构设计方法,可以包括如下步骤:
S100,基于神经网络芯片算力与存储大小,确定芯片硬件规模探索设计空间;
S200,基于硬件规模探索设计空间,从中按序选择一种硬件架构规模参数配置;
S300,针对硬件架构规模参数配置,进行性能评价,并选择最优性能作为该硬件架构规模参数的性能;
S400,基于硬件架构规模参数的性能,与现有硬件架构性能进行比较,若优于现有硬件架构性能,则保留该性能为最优架构性能;
S500,遍历整个硬件规模探索设计空间,获得最终的最优架构性能,则该最终的最优架构性能对应的硬件架构规模参数即为芯片硬件规模探索的结果,进而得到给定算力与存储大小情况下的最优算力划分和缓存层次规模;
S600,基于芯片硬件规模探索的结果,分析神经网络数据流特点,进行神经网络通信数据流提取,得到神经网络通信数据流配置空间;
S700,基于神经网络通信数据流配置空间,进行片上互连拓扑结构性能评估,比较各拓扑结构性能,得到最优的片上互连拓扑结构;
S800,基于芯片硬件规模探索的结果与最优的片上互连拓扑结构,结合得到基于神经网络芯片硬件架构探索的最终输出,即为最优的神经网络芯片硬件架构。
在S600的一优选实施例中,数据流特点关注于通信的模式(单播、多播、广播)以及数据流的统计信息(包含发送节点与目的节点以及通信量)。
在S700的一优选实施例中,片上互连拓扑结构,包括针对常见拓扑与基于环路的无路由拓扑结构。进一步地,基于环路的无路由拓扑结构,是根据数据流特点(多播数据流)与片上通信的拥塞最大链路(二级缓存对应的链路)这两个特点提出来的。该基于环路的无路由拓扑结构,即为得到的最优的片上互连拓扑结构,该结构验证了结合PE间存在数据共享情况,更好的适应了数据共享下的多播数据流,并且缓解了片上通信最拥塞的链路(二级缓存对应的链路)。
进一步地,该基于环路的无路由拓扑结构,包括:3个二级缓存(分别对应于输入特征图二级缓存AL2,权重二级缓存WL2,输出特征图二级缓存OL2)和16个处理器单元PE,这19个节点(3个二级缓存节点+16个PE节点)通过各自对应的注入-接收接口与四个环路(环路1,环路2,环路3,环路4)进行数据交互,四个环路实现了不同节点间的数据通信。其中注入-接收接口不同于传统的路由器它只决定本地的数据包去哪个环路(注入过程)和环路的数据包是否接收到本地节点(接收过程),它不进行方向的选择,故相比传统的路由器其设计复杂度更低,面积开销更小。四个环路是单向的环路,数据包在环路上每个周期前进一跳(hops)。这样的设计下,二级缓存节点处的链路更多,带宽更大,能缓解片上网络在二级缓存上的拥塞,同时环路的设计,天然的是石英与多播数据流,因为传到环路上的数据会途径该环路上的所有节点。
在该实施例中,片间互连可以采用常用的mesh,该实施例针对片上系统和片间系统进行了硬件探索,其中片间部分集中在硬件规模探索。
尽管互连网络在多核芯片设计中已经逐渐趋于成熟,能够解决复杂多核互连的问题,然而,在神经网络芯片设计中复杂的神经元连接和通信模式为互连架构设计又提出了全新的挑战。本发明上述实施例提供的片上-片间互连的神经网络芯片硬件架构设计方法,针对算力划分、缓存层次结构设计进行硬件架构探索,在探索过程中针对神经网络中最为重要的层——卷积层进行计算和数据访存建模,从而得到芯片吞吐、能量消耗指标。基于探索得到的各层次规模配置,针对常见拓扑进行评估,并探索了适用于神经网络通信流量的互连拓扑。通过芯片规模、缓存层次及片上互连拓扑的研究,得到完整的基于片上-片间互连的神经网络芯片硬件架构。最终设计的神经网络芯片硬件架构优化了系统延时与能量,达到了低延迟、高能效的目标。
下面结合附图以及相应的优选实施例和具体应用实例,对本发明上述实施例提供的片上-片间互连的神经网络芯片硬件架构设计方法的技术方案进一步说明。
图2为本发明一优选实施例提供的片上-片间互连的神经网络芯片硬件架构设计方法的工作流程图。
如图2所示,该实施例提供的片上-片间互连的神经网络芯片硬件架构设计方法,针对基于片上-片间互连的神经网络芯片的能效与延时,将片上-片间互连架构的优势更好适应神经网络芯片,通过卷积层计算和数据访存模型,实现基于片上-片间互连的神经网络芯片硬件规模探索,并探索互连拓扑结构,构建了适用于神经网络通信流量的互连拓扑架构。
如图2所示,该优选实施例,提供的片上-片间互连的神经网络芯片硬件架构设计方法,可以包括如下步骤:
步骤1:基于神经网络芯片算力与存储大小,明确芯片硬件规模探索设计空间(包含算力划分、缓存层次规模);
步骤2:基于步骤1的硬件规模探索设计空间,从中按序选择一种硬件架构规模参数配置;
步骤3:针对步骤2选择的硬件架构规模参数配置,进行性能评价,选择对应的最优映射效果的性能为该硬件规模参数的性能;
步骤4:基于步骤3的架构性能,比较是否优于现有架构性能,若优则保留其为最优架构性能;
步骤5:判断是否遍历完整个硬件规模参数设计空间,若没有则跳转到步骤2,若遍历完整,则最优架构性能对应硬件规模参数就是芯片硬件规模探索的结果,明确了给定算力与存储大小情况下的最优算力划分、缓存层次规模;
步骤6:基于步骤5的芯片硬件规模参数,分析神经网络数据流特点,进行神经网络通信数据流提取;
步骤7:基于步骤6提取的通信数据流,进行片上互连拓扑结构性能评估,比较各拓扑结构性能,得到最优的互连拓扑结构;其中,片上互连拓扑结构常见拓扑结构和本优选实施例中建立的基于环路的无路由片上拓扑结构;该基于环路的无路由片上拓扑结构包括:3个分别对应于输入特征图二级缓存AL2、权重二级缓存WL2和输出特征图二级缓存OL2的二级缓存和16个处理器单元PE共19个节点,所述19个节点通过各自对应的注入-接收接口与四个环路进行数据交互,四个所述环路实现了不同节点间的数据通信;其中,所述注入-接收接口具有任意的数据流动方向,四个所述环路是单向的环路,数据包在所述环路上每个周期前进一跳;
步骤8:基于步骤5的最优硬件规模参数与步骤7的最优片上互连拓扑结构,结合得到神经网络芯片硬件架构探索算法的最终输出,最优的硬件架构。
具体的步骤1中明确芯片硬件规模设计空间的步骤为:
步骤1-1:基于Package-Chiplet-PE三层次硬件架构,给定芯片算力,明确PE内部MAC数目、每个Chiplet内PE数目以及Chiplet数目,确定算力划分的设计空间,满足如下公式:
NMAC=Nchip×NPE×Nsize×Nlane
其中,NMAC表示算力对应的乘累加器数目,Nchip表示Chiplet数目,NPE表示每个Chiplet片内的PE数目,Nsize表示基于NVDLA的vector-MAC尺寸,Nlane表示每个PE内的vector-MAC的数目;Package表示完整系统包含多个芯粒,Chiplet表示芯粒,PE表示处理单元,MAC表示乘累加器,vector-MAC:多个乘累加器组成的向量乘累加器;
步骤1-2:针对L1缓存与L2缓存,基于基本的缓存大小,进行缓存划分,探索输入特征图缓存(AL1、AL2)、权重缓存(WL1、WL2)、输出特征图(OL1、OL2)缓存的大小;
步骤1-3:基于步骤1-1与1-2,明确完整的硬件规模探索设计空间;
具体的步骤3中芯片硬件规模参数方案的性能评价的步骤为:
步骤3-1:基于所选择的芯片硬件规模参数,进行神经网络模型映射;
步骤3-2:基于芯片硬件规模参数,随机神经网络模型映射的编码,基于本发明的计算模型与数据访存模型,提取对应映射方案的计算量与通信量;
步骤3-3:基于步骤3-2的计算量与通信量,计算延时与能量,并得到该映射方案的能量延时积性能,与该芯片硬件规模参数下的历史最优性能比较,保留更优性能为最优性能;
步骤3-4:步骤3-2和步骤3-3的随机神经网络模型映射迭代M次后,选择最优性能为该芯片硬件规模参数的性能;
具体的步骤6中的神经网络通信流量分析与提取的步骤为:
步骤6-1:神经网络通信流量分析,基于片上硬件架构,通信流量为AL2、WL2、OL2与PE集群间的数据交互;
步骤6-2:基于硬件规模中的PE数目,对于PE的并行度来源进行明确,通过对PE进行分组,得到PE间数据共享情况,提取出通信流;
步骤6-3:基于不同神经网络模型与神经网络模型的不同层,进行数据流分析,通过对与三种缓存对应的三种数据流量的比例的扫描,来表征不同神经网络层的特征;
步骤6-4:结合步骤6-2提取的通信流与步骤6-3提取的数据流量,得到完整的神经网络通信数据流配置空间;
具体的步骤7中的片上网络拓扑性能评价的步骤为:
步骤7-1:基于步骤6得到的神经网络通信数据流配置空间,针对不同的PE分组情况,扫描三种数据流量的比例,作为性能评价的输入;
步骤7-2:评估通信数据流下的互连架构性能,通过评估每条链路的拥塞度degrate_ratio,寻找最大的拥塞度max(degrate_ratio)作为互连架构在该数据流下的性能;
步骤7-3:遍历常见的Mesh、CMesh、Torus与本发明提出的基于环路的无路由拓扑,迭代步骤7-1与7-2,得到不同PE分组情况下的各拓扑结构随着数据流量比例而变化的最大拥塞度。
下面结合以具体应用实例,对本发明上述实施例提供的技术方案进一步描述。
该具体应用实例中,设置算力为128TOPS,PE运行频率为1Ghz,基于NVDLA的vector-MAC的尺寸为16,每个PE内的vector-MAC数目为16,其中片上-片间互连的神经网络芯片硬件整体架构如图3所示。
本发明的算法流程如图2所示,包括以下步骤:
步骤1:基于神经网络芯片算力与存储大小,明确芯片硬件规模探索设计空间(包含算力划分、缓存层次规模);
步骤1-1:基于Package-Chiplet-PE三层次硬件架构,给定芯片算力128TOPS,计算对应的乘累加器MAC数目为:
根据给定的vector-MAC参数(Nsize=16、Nlane=16),根据公式:
NMAC=Nchip×NPE×Nsize×Nlane
可得算力划分的设计空间就是明确Chiplet数目Nchip与PE数目NPE,满足如下公式:
Nchip×NPE=256
则(Nchip,NPE)取值可为(1,256)、(2,128)、(4,64)、(8,32)、(16,16)、(32,8)、(64,4),构成了算力划分的设计空间:
步骤1-2:针对L1缓存与L2缓存,基于基本的缓存大小,进行缓存划分,探索输入特征图缓存(AL1、AL2)、权重缓存(WL1、WL2)、输出特征图(OL1、OL2)缓存的大小;
步骤1-2-1:基于PE内L1缓存的基础大小11KB,进行L1缓存划分。首先对L1缓存基础大小进行一定的压缩或扩展,遍历0.5×到16×的情况,等价于遍历几种L1缓存大小。其次针对各种L1缓存大小,遍历5种WAO的比例WAO_L1_ratio,假设,WAO比例为[8,2,1]和L1基础单元大小为1KB,则对应这WL1的大小为8KB,AL1的大小为2KB,OL1的大小为1KB;
步骤1-2-2:基于L1缓存划分,进行L2缓存划分。通过改变L2_ratio来扩展或压缩L2缓存的大小,满足以下公式:
WL2_size=NPE×WL1_size×L2_ratio
AL2_size=NPE×AL1_size×L2_ratio
OL2_size=NPE×OL1_size×L2_ratio
以L2_ratio=2、NPE=16为例,基于步骤1-2-1的举例结果,可得WL2的大小为256KB,AL2的大小为64KB,OL2的大小为32KB;
步骤1-3:基于步骤1-1与1-2,明确完整的硬件规模探索设计空间,完整的设计空间参数如表1所示;
表1
步骤2:基于步骤1的硬件规模探索设计空间,从中按序选择一种硬件架构规模参数配置;
步骤3:针对步骤2选择的硬件架构规模参数配置,进行性能评价,选择对应的最优映射效果的性能为该硬件规模参数的性能;下面假设步骤2所选取的硬件配置为NChip=16、NPE=16、L1base=1KB、L2ratio=2;
步骤3-1:基于所选择的芯片硬件规模参数,进行神经网络模型映射;本发明考量的神经网络映射主要是针对卷积层的For循环表达形式,进行循环展开、循环分块、循环顺序的探索,三者均基于Package-Chiplet-PE三个层次,具体For循环映射结果的程序示例如下所示,每个层次都包含for与parallel_for,for表示的是循环分块,parallel_for表示的是循环展开,每个层次内的for语句的顺序,表示的循环顺序,for语句与parrallel_for语句内的维度主要为6个维度,分别是,输入特征图通道C,输出特征图宽P、高Q、通道K,卷积核宽R、高S,具体的,以K维度以及PE数目为例,需要满足的关系式如下所示:
PK0×PK2×PK3×K1×K2×K3≥K
PP2×PQ2×PK2≥NPE
程序示例:
步骤3-2:基于芯片硬件规模参数,随机神经网络模型映射的编码,基于本发明的计算模型与数据访存模型,提取对应映射方案的计算量与通信量;
步骤3-2-1:神经网络模型映射编码,通过34个数据组成一个编码,34个数据中,8个数据来表示循环展开,14个数据表示循环分块,14个数据表示循环顺序,通过在规定约束下随机设置34个数据的数值,来随机生成神经网络映射编码;
步骤3-2-2:基于神经网络映射编码,提取对应的计算量,计算模型的公式如下所示:
runtimeP=P3×P2×P1×PP3×PP2
runtimeQ=Q3×Q2×Q1×PQ3×PQ2
runtimeK=K3×K2×K1×PK3×PK2×PK0
runtimeC=C3×C2×C1×PC0
以P维度为例,runtimeP表示了实际映射方案的循环展开与循环分块中,P维度所需的计算量,P表示卷积层中理论的P维度的计算量,util.则表示了计算资源的利用率,通过计算资源利用率就可以来计算无阻塞延时non_stall_lat作为延时性能;C为输入特征图通道,P、Q、K分别为输出特征图、高、通道,R、S分别为卷积核宽、高,runtimeQ表示映射方案下Q维度所需的计算量,runtimeK表示映射方案下K维度所需的计算量,runtimeC表示映射方案下C维度所需的计算量,P1~P3分别为三个硬件层次(PE、Chiplet、Package)下P维度的循环分块参数,PP3为P维度在Package层次内(不同Chiplet间的)的循环展开参数,PP2为P维度在Chiplet层次内(不同PE间)的循环展开参数,Q1~Q3分别为三个硬件层次(PE、Chiplet、Package)下Q维度的循环分块参数,K1~K3分别为三个硬件层次(PE、Chiplet、Package)下K维度的循环分块参数,C1~C3分别为三个硬件层次(PE、Chiplet、Package)下C维度的循环分块参数,PK0为K维度在PE层次内(不同乘累加器间)的循环展开参数、PK2、PK3分别为K维度在Chiplet层次和Package层次内的循环展开参数,PC0为C维度在PE层次内(不同乘累加器间)的循环展开参数,MAC_num为完整系统即Package内的乘累加器总数;
步骤3-2-3:基于神经网络映射编码,提取对应的通信量,其中本发明提出的数据访存模型具体工作过程的步骤为:
步骤3-2-3-1:分别针对输入特征图、权重和输出特征图3种类型的数据,确定数据流中的每个维度参数是否为相关参数。相关参数代表该维度参数数值的变化会直接引起对应数据的改变。例如时序for循环参数C1,对于输入特征图和权重来说是相关参数,因为c1数值改变之后,会导致输入特征图和权重要切换通道;而该参数对输出特征图是非相关参数,这是由于如果仅有c1数值改变,对应的输出特征图像素点依然是相同的,不会影响输出缓存的存储需求;
步骤3-2-3-2:从数据流最内层for循环开始,依据参数是否相关,计算得到该层for循环处的输入特征图、输出特征图和权重的存储资源需求。该存储资源需求如果能够被满足,意味着在该层for循环内部运算过程中,无需发起对更外层存储的读写请求;
步骤3-2-3-3:分别针对WL1、AL1、OL1、WL2、AL2和OL2共6个存储单元,依据其容量和每层for循环处的存储资源需求,确定6个存储单元的瓶颈点(Stuck Position,SP);
步骤3-2-3-4:依据各个存储单元的SP点和SP点处所需要的数据传输量,可以计算得到该卷积层在PE和L2缓存之间、chiplet和DRAM之间的数据传输总量;
按照上述步骤3-2-3-1到3-2-3-4,表2展示了部分数据流下,各个参数是否是权重W、输入特征图A和输出特征图O的相关参数,T代表相关,F代表不相关。从下到上,代表for循环从内侧到外侧变化。依据各参数的相关关系,从最内层循环开始向外侧推,可以依据图中公式计算得到WL1、AL1和OL1的存储需求。基于提取出来的数据传输总量信息,就可以根据一定的指标得到数据传输所导致的能量开销;
表2
步骤3-3:基于步骤2-2的计算量与通信量,计算延时与能量,并得到该映射方案的能量延时积性能,与该芯片硬件规模参数下的历史最优性能比较,保留更优性能为最优性能;
步骤3-4:步骤2-2和步骤2-3的随机神经网络模型映射迭代M次后,选择最优性能为该芯片硬件规模参数的性能;
步骤4:基于步骤3的架构性能,比较是否优于现有架构性能,若优则保留其为最优架构性能;
步骤5:判断是否遍历完整个硬件规模参数设计空间,若没有则跳转到步骤2,若遍历完整,则最优架构性能对应硬件规模参数就是芯片硬件规模探索的结果,明确了给定算力与存储大小情况下的最优算力划分、缓存层次规模;
步骤6:基于步骤5的芯片硬件规模参数,分析神经网络数据流特点,进行神经网络通信数据流提取;
步骤6-1:神经网络通信流量分析,基于片上硬件架构,通信流量为AL2、WL2、OL2与PE集群间的数据交互;
步骤6-2:基于硬件规模中的PE数目,对于PE的并行度来源进行明确,通过对PE进行分组,得到PE间数据共享情况,提取出通信流,以NPE=16为例,从L2缓存到PE的通信流量主要可以分为如图4所示的3大类型,图中颜色一致的PE表示需要的数据相同,分别列出来不同PE并行度配置下的输入特征图与权重的数据共享情况,其中以PP2或PQ2为16,PK2为1时为例,片上的16个PE共享权重,可以通过WL2广播得到,而所需要的输入特征图各不相同,因此需要从AL2单播供给数据;
步骤6-3:基于不同神经网络模型与神经网络模型的不同层,进行数据流分析,通过对与三种缓存对应的三种数据流量的比例的扫描,来表征不同神经网络层的特征,通过扫描act_ratio和wgt_ratio来进行三种数据流量的比例的改变,act_ratio和wgt_ratio分别表示1个输出结果(PE发送至OL2)数据下,有多少个输入特征图数据和权重数据要从AL2和WL2发送至PE,如act_ratio=4代表着平均每读取4个输入特征图数据,可以计算完毕并写入1个输出特征图结果。该比例的不同体现了不同网络层的不同运算特征,广泛地覆盖了输入特征图、权重和输出数目的数量的不同状况;
步骤6-4:结合步骤6-2提取的通信流与步骤6-3提取的数据流量,得到完整的神经网络通信数据流配置空间,通信流明确了三类缓存(WL2、AL2、OL2)需要与哪些PE通信哪部分数据以及通信的数据量的多少,以图4的中PP2或PQ2为16,PK2为1举例,通信流明确了WL2需要广播给所有PE相同的权重数据,AL2需要给16个PE单播不同的数据,数据流量明确了WL2、AL2、OL2需要给PE的数据数目,以wgt_ratio为4,agt_ratio为2举例,结合通信流,表明了PE每产生一个输出数据,WL2需要广播给所有的PE相同的4个权重数据,AL2需要单播给16个PE不同的2个输入数据,即单播32个输入数据。
步骤7:基于步骤6提取的通信数据流,进行片上互连拓扑结构性能评估,比较常见拓扑与本发明提出的基于环路的无路由拓扑结构,得到最优的互连拓扑结构;
步骤7-1:基于步骤6得到的神经网络通信数据流配置空间,针对不同的PE分组情况,扫描三种数据流量的比例,作为性能评价的输入;
步骤7-2:评估通信数据流下的互连架构性能,本发明基于XY路由算法,通过评估每条链路的拥塞度degrate_ratio,在此处拥塞度也就是链路上的通信总量/链路带宽,寻找所有链路中最大的拥塞度max(degrate_ratio)作为互连架构在该数据流下的性能;
步骤7-3:遍历常见的Mesh、CMesh、Torus与本发明提出的基于环路的无路由拓扑,如图5和图6展示了常见的拓扑与本发明提出的基于环路的无路由拓扑结构,迭代步骤7-1与7-2,得到不同PE分组情况下的各拓扑结构随着数据流量比例而变化的最大拥塞度。
步骤8:基于步骤5的最优硬件规模参数与步骤7的最优片上互连拓扑结构,结合得到神经网络芯片硬件架构探索算法的最终输出,最优的硬件架构。
图7为本发明一实施例提供的基于片上-片间互连的神经网络芯片硬件架构设计系统的组成模块示意图。
如图7所示,该实施例提供的片上-片间互连的神经网络芯片硬件架构设计系统,可以包括如下模块:
参数配置模块,该模块基于神经网络芯片算力与存储大小,确定芯片硬件规模探索设计空间;基于硬件规模探索设计空间,从中按序选择一种硬件架构规模参数配置;
性能评价模块,该模块针对硬件架构规模参数配置,进行性能评价,并选择最优性能作为该硬件架构规模参数的性能;基于硬件架构规模参数的性能,与现有硬件架构性能进行比较,若优于现有硬件架构性能,则保留该性能为最优架构性能;遍历整个硬件规模探索设计空间,获得最终的最优架构性能,则该最终的最优架构性能对应的硬件架构规模参数即为芯片硬件规模探索的结果,进而得到给定算力与存储大小情况下的最优算力划分和缓存层次规模;
通信数据流提取模块,该模块基于芯片硬件规模探索的结果,分析神经网络数据流特点,进行神经网络通信数据流提取,得到神经网络通信数据流配置空间;
硬件架构构建模块,该模块基于神经网络通信数据流配置空间,进行片上互连拓扑结构性能评估,得到最优的片上互连拓扑结构;基于芯片硬件规模探索的结果与最优的片上互连拓扑结构,结合得到基于神经网络芯片硬件架构探索的最终输出,即为最优的神经网络芯片硬件架构。
需要说明的是,本发明提供的方法中的步骤,可以利用系统中对应的模块、装置、单元等予以实现,本领域技术人员可以参照方法的技术方案实现系统的组成,即,方法中的实施例可理解为构建系统的优选例,在此不予赘述。
本发明一实施例提供了一种基于片上-片间互连的神经网络芯片硬件架构,该神经网络芯片硬件架构采用本发明上述实施例中任一项设计方法构建得到。
本发明一实施例提供了一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时可用于执行本发明上述实施例中任一项方法。
本发明一实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可用于执行本发明上述实施例中任一项方法。
可选地,存储器,用于存储程序;存储器,可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-access memory,缩写:RAM),如静态随机存取存储器(英文:static random-access memory,缩写:SRAM),双倍数据率同步动态随机存取存储器(英文:Double Data Rate Synchronous Dynamic Random Access Memory,缩写:DDR SDRAM)等;存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory)。存储器用于存储计算机程序(如实现上述方法的应用程序、功能模块等)、计算机指令等,上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器中。并且上述的计算机程序、计算机指令、数据等可以被处理器调用。
上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器中。并且上述的计算机程序、计算机指令、数据等可以被处理器调用。
处理器,用于执行存储器存储的计算机程序,以实现上述实施例涉及的方法中的各个步骤。具体可以参见前面方法实施例中的相关描述。
处理器和存储器可以是独立结构,也可以是集成在一起的集成结构。当处理器和存储器是独立结构时,存储器、处理器可以通过总线耦合连接。
本发明上述实施例提供的片上-片间互连的神经网络芯片硬件架构设计方法及系统,基于对卷积层的数据流的全面分析,建立了详细的计算模型各级数据访存模型,得到准确可靠的延时与能量消耗指标;提出了针对芯片粒度划分、L1和L2缓存大小配置以及各类数据缓存大小的分配问题的硬件设计空间探索方法,通过硬件设计空间探索,得到的方案相比其他方案达到2.47%~87.99%的EDP降低;提出了针对神经网络片上通信流量特点的基于Ring(环形)的片上网络无路由拓扑,在降低片上网络面积的同时,提升了通信性能。
本发明上述实施例中未尽事宜均为本领域公知技术。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
Claims (11)
1.一种片上-片间互连的神经网络芯片硬件架构设计方法,其特点在于,包括:
基于神经网络芯片算力与存储大小,确定芯片硬件规模探索设计空间;
基于所述硬件规模探索设计空间,从中按序选择一种硬件架构规模参数配置;
针对所述硬件架构规模参数配置,进行性能评价,并选择最优性能作为该硬件架构规模参数的性能;
基于所述硬件架构规模参数的性能,与现有硬件架构性能进行比较,若优于现有硬件架构性能,则保留该性能为最优架构性能;
遍历整个硬件规模探索设计空间,获得最终的最优架构性能,则该最终的最优架构性能对应的硬件架构规模参数即为芯片硬件规模探索的结果,进而得到给定算力与存储大小情况下的最优算力划分和缓存层次规模;
基于所述芯片硬件规模探索的结果,分析神经网络数据流特点,进行神经网络通信数据流提取,得到神经网络通信数据流配置空间;
基于所述神经网络通信数据流配置空间,进行片上互连拓扑结构性能评估,比较各拓扑结构性能,得到最优的片上互连拓扑结构;
基于所述芯片硬件规模探索的结果与所述最优的片上互连拓扑结构,结合得到基于神经网络芯片硬件架构探索的最终输出,即为最优的神经网络芯片硬件架构。
2.根据权利要求1所述的片上-片间互连的神经网络芯片硬件架构设计方法,其特征在于,所述确定芯片硬件规模探索设计空间,包括:
基于Package-Chiplet-PE三层次硬件架构,给定芯片算力,明确PE内部MAC数目、每个Chiplet内PE数目以及Chiplet数目,确定算力划分的设计空间,满足如下公式:
NMAC=Nchip×NPE×Nsize×Nlane
其中,NMAC表示算力对应的乘累加器数目,Nchip表示Chiplet数目,NPE表示每个Chiplet片内的PE数目,Nsize表示vector-MAC尺寸,Nlane表示每个PE内的vector-MAC的数目;Package表示完整系统包含多个芯粒,Chiplet表示芯粒,PE表示处理单元,MAC表示乘累加器,vector-MAC:多个乘累加器组成的向量乘累加器;
针对PE内的L1缓存与L2缓存,分别进行缓存划分,探索划分后L1缓存和L2缓存下的输入特征图缓存、权重缓存以及输出特征图缓存的大小;
基于上述步骤,获得芯片硬件规模探索设计空间。
3.根据权利要求1所述的片上-片间互连的神经网络芯片硬件架构设计方法,其特征在于,所述针对所述硬件架构规模参数配置,进行性能评价,并选择最优性能作为该硬件架构规模参数的性能,包括:
基于选择的所述硬件架构规模参数,进行神经网络模型映射;
基于所述硬件架构规模参数和映射得到的神经网络模型,随机生成所述神经网络模型映射编码,并基于所述神经网络模型映射编码,通过构建的计算模型与数据访存模型,提取对应映射方案的计算量与通信量;
基于提取的所述计算量与通信量,计算延时与能量,得到该映射方案的能量延时积性能,并与该硬件架构规模参数下的历史最优性能进行比较,保留更优性能作为该映射方案对应的性能;
对映射得到的所述神经网络模型进行多次迭代后,选择最优性能作为该硬件架构规模参数的性能。
4.根据权利要求3所述的片上-片间互连的神经网络芯片硬件架构设计方法,其特征在于,所述构建计算模型,得到计算任务导致的延时性能指标non_stall_lat;其中,计算方法包括:
runtimeP=P3×P2×P1×PP3×PP2
runtimeQ=Q3×Q2×Q1×PQ3×PQ2
runtimeK=K3×K2×K1×PK3×PK2×PK0
runtimeC=C3×C2×C1×PC0
式中,runtimeP表示实际映射方案的循环展开与循环分块中,P维度所需的计算量,P表示卷积层中理论的P维度的计算量,util.表示计算资源的利用率,通过计算资源利用率计算无阻塞延时non_stall_lat作为延时性能;C为输入特征图通道,P、Q、K分别为输出特征图、高、通道,R、S分别为卷积核宽、高,runtimeQ表示映射方案下Q维度所需的计算量,runtimeK表示映射方案下K维度所需的计算量,runtimeC表示映射方案下C维度所需的计算量,P1~P3分别为三个硬件层次即PE、Chiplet和Package下P维度的循环分块参数,PP3为P维度在Package层次内不同Chiplet间的循环展开参数,PP2为P维度在Chiplet层次内不同PE间的循环展开参数,Q1~Q3分别为三个硬件层次即PE、Chiplet和Package下Q维度的循环分块参数,K1~K3分别为三个硬件层次即PE、Chiplet和Package下K维度的循环分块参数,C1~C3分别为三个硬件层次即PE、Chiplet和Package下C维度的循环分块参数,PK0为K维度在PE层次内不同乘累加器间的循环展开参数、PK2、PK3分别为K维度在Chiplet层次和Package层次内的循环展开参数,PC0为C维度在PE层次内不同乘累加器间的循环展开参数,MAC_num为完整系统即Package内的乘累加器总数;
所述数据访存模型的工作过程,包括:
分别针对输入特征图、权重和输出特征图的数据,确定数据流中的每个维度参数是否为相关参数;
从数据流最内层for循环开始,依据参数是否相关,计算得到该层for循环处的输入特征图、输出特征图和权重的存储资源需求;
分别针对L1和L2缓存下输入特征图、权重和输出特征图的共6个存储单元,依据每一个所述存储单元的容量和每层for循环处的存储资源需求,确定6个存储单元的瓶颈点;
依据各个存储单元的瓶颈点和瓶颈点处所需要的数据传输量,计算得到该卷积层在PE层次和L2缓存之间以及chiplet层次和DRAM之间的数据传输总量,即为映射方案的通信量;
基于计算得到的数据传输总量信息,根据设定的指标得到数据传输所导致的能量开销。
5.根据权利要求1所述的片上-片间互连的神经网络芯片硬件架构设计方法,其特征在于,所述基于所述芯片硬件规模探索的结果,分析神经网络数据流特点,进行神经网络通信数据流提取,包括:
基于芯片硬件规模探索的结果,对神经网络通信流量进行分析,其中通信流量为PE内L2缓存下的输入特征图、权重以及输出特征图与PE集群间的数据交互;
基于硬件架构规模中的PE数目,确定PE的并行度来源,通过对PE进行分组,得到PE间数据共享情况,提取出通信流;
基于不同神经网络模型与神经网络模型的不同层,进行数据流分析,得到神经网络模型不同层通过输入特征图数据量、权重数据量、输出特征图数据量三种数据流量的不同比重来表示,通过对与L1缓存、L2缓存和DRAM的三种数据流量的比例的扫描,来表征不同神经网络层的特征;
结合所述通信流与所述数据流量,得到完整的神经网络通信数据流配置空间。
6.根据权利要求1所述的片上-片间互连的神经网络芯片硬件架构设计方法,其特征在于,所述进行片上互连拓扑结构性能评估,包括:
基于所述神经网络通信数据流配置空间,针对不同的PE分组情况,扫描L1缓存、L2缓存和DRAM数据流量的比例,作为性能评价的输入;
评估通信数据流下的互连架构性能,通过评估每条链路的拥塞度degrate_ratio,寻找最大的拥塞度max(degrate_ratio)作为互连架构在该通信数据流下的性能;
遍历片上互连拓扑结构,迭代上述步骤,得到不同PE分组情况下的各拓扑结构随着数据流量比例而变化的最大拥塞度,完成片上互连拓扑结构性能评估。
7.根据权利要求1-6中任一项所述的片上-片间互连的神经网络芯片硬件架构设计方法,其特征在于,还包括如下任意一项或任意多项:
-所述数据流特点,包括:通信的模式以及数据流的统计信息;其中:
所述通信的模式,包括:单播、多播和广播;
所述数据流的统计信息,包括:发送节点、目的节点和通信量;
-所述片上互连拓扑结构,包括:常见拓扑结构和建立的基于环路的无路由片上拓扑结构;其中:
所述常见拓扑结构,包括:Mesh拓扑、CMesh拓扑和Torus拓扑;
所述基于环路的无路由片上拓扑结构,包括:3个分别对应于输入特征图二级缓存AL2、权重二级缓存WL2和输出特征图二级缓存OL2的二级缓存和16个处理器单元PE共19个节点,所述19个节点通过各自对应的注入-接收接口与四个环路进行数据交互,四个所述环路实现了不同节点间的数据通信;其中,所述注入-接收接口具有任意的数据流动方向,四个所述环路是单向的环路,数据包在所述环路上每个周期前进一跳;
通过片上互连拓扑结构性能评估,得到的最优的片上互连拓扑结构即为基于环路的无路由片上拓扑结构。
8.一种片上-片间互连的神经网络芯片硬件架构设计系统,片上-片间表示考虑的系统是完整的片上系统加上片间系统,其特点在于,包括:
参数配置模块,该模块基于神经网络芯片算力与存储大小,确定芯片硬件规模探索设计空间;基于所述硬件规模探索设计空间,从中按序选择一种硬件架构规模参数配置;
性能评价模块,该模块针对所述硬件架构规模参数配置,进行性能评价,并选择最优性能作为该硬件架构规模参数的性能;基于所述硬件架构规模参数的性能,与现有硬件架构性能进行比较,若优于现有硬件架构性能,则保留该性能为最优架构性能;遍历整个硬件规模探索设计空间,获得最终的最优架构性能,则该最终的最优架构性能对应的硬件架构规模参数即为芯片硬件规模探索的结果,进而得到给定算力与存储大小情况下的最优算力划分和缓存层次规模;
通信数据流提取模块,该模块基于所述芯片硬件规模探索的结果,分析神经网络数据流特点,进行神经网络通信数据流提取,得到神经网络通信数据流配置空间;
硬件架构构建模块,该模块基于所述神经网络通信数据流配置空间,进行片上互连拓扑结构性能评估,得到最优的片上互连拓扑结构;基于所述芯片硬件规模探索的结果与所述最优的片上互连拓扑结构,结合得到基于神经网络芯片硬件架构探索的最终输出,即为最优的神经网络芯片硬件架构。
9.一种片上-片间互连的神经网络芯片硬件架构,其特征在于,采用权利要求1-6中任一项所述的设计方法构建得到。
10.一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时可用于执行权利要求1-7中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时可用于执行权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210699505.6A CN115115043A (zh) | 2022-06-20 | 2022-06-20 | 片上-片间互连的神经网络芯片硬件架构设计方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210699505.6A CN115115043A (zh) | 2022-06-20 | 2022-06-20 | 片上-片间互连的神经网络芯片硬件架构设计方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115115043A true CN115115043A (zh) | 2022-09-27 |
Family
ID=83327571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210699505.6A Pending CN115115043A (zh) | 2022-06-20 | 2022-06-20 | 片上-片间互连的神经网络芯片硬件架构设计方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115115043A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115460128A (zh) * | 2022-11-09 | 2022-12-09 | 之江实验室 | 一种面向多芯粒组合芯片的片上网络仿真系统 |
CN115713103A (zh) * | 2022-11-24 | 2023-02-24 | 辉羲智能科技(上海)有限公司 | 片上-片间互连的神经网络芯片联合性能预测方法及系统 |
CN115794732A (zh) * | 2023-01-29 | 2023-03-14 | 北京超摩科技有限公司 | 一种基于芯粒的片上网络和封装上网络分层互连系统 |
CN115796249A (zh) * | 2022-11-22 | 2023-03-14 | 辉羲智能科技(上海)有限公司 | 面向chiplet互连的神经网络芯片层切换映射方法 |
CN115829017A (zh) * | 2023-02-20 | 2023-03-21 | 之江实验室 | 一种基于芯粒的数据处理的方法、装置、介质及设备 |
CN116614433A (zh) * | 2023-07-18 | 2023-08-18 | 太初(无锡)电子科技有限公司 | 一种人工智能芯片、数据传输方法及数据传输系统 |
-
2022
- 2022-06-20 CN CN202210699505.6A patent/CN115115043A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115460128A (zh) * | 2022-11-09 | 2022-12-09 | 之江实验室 | 一种面向多芯粒组合芯片的片上网络仿真系统 |
CN115796249A (zh) * | 2022-11-22 | 2023-03-14 | 辉羲智能科技(上海)有限公司 | 面向chiplet互连的神经网络芯片层切换映射方法 |
CN115713103A (zh) * | 2022-11-24 | 2023-02-24 | 辉羲智能科技(上海)有限公司 | 片上-片间互连的神经网络芯片联合性能预测方法及系统 |
CN115713103B (zh) * | 2022-11-24 | 2023-08-18 | 辉羲智能科技(上海)有限公司 | 片上-片间互连的神经网络芯片联合性能预测方法及系统 |
CN115794732A (zh) * | 2023-01-29 | 2023-03-14 | 北京超摩科技有限公司 | 一种基于芯粒的片上网络和封装上网络分层互连系统 |
CN115829017A (zh) * | 2023-02-20 | 2023-03-21 | 之江实验室 | 一种基于芯粒的数据处理的方法、装置、介质及设备 |
CN116614433A (zh) * | 2023-07-18 | 2023-08-18 | 太初(无锡)电子科技有限公司 | 一种人工智能芯片、数据传输方法及数据传输系统 |
CN116614433B (zh) * | 2023-07-18 | 2023-10-24 | 太初(无锡)电子科技有限公司 | 一种人工智能芯片、数据传输方法及数据传输系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115115043A (zh) | 片上-片间互连的神经网络芯片硬件架构设计方法及系统 | |
CN111178519A (zh) | 卷积神经网络加速引擎、卷积神经网络加速系统及方法 | |
Sommer | Shortest-path queries in static networks | |
Botea et al. | Near optimal hierarchical path-finding. | |
CN104391907B (zh) | 一种可变解析度的快速路径搜寻方法 | |
CN112883241B (zh) | 基于连通分量生成优化的超级计算机基准测试加速方法 | |
CN109189720A (zh) | 层次化片上网络拓扑结构及其路由方法 | |
CN112181867A (zh) | 基于多目标遗传算法的片上网络内存控制器布局方法 | |
CN102902590B (zh) | 面向并行数字地形分析海量dem部署与调度方法 | |
CN106709503A (zh) | 一种基于密度的大型空间数据聚类算法k‑dbscan | |
CN102065019A (zh) | 基于区域划分的片上网络快速ip核映射方法 | |
WO2024051388A1 (zh) | 一种基于禁忌搜索算法的神经网络片上映射方法和装置 | |
CN111783320A (zh) | 针对指定应用的类脑处理器NoC设计空间探索方法、系统及介质 | |
CN103778191A (zh) | 一种顾及空间邻近关系的矢量等高线数据划分方法 | |
CN116720549A (zh) | 一种基于cnn输入全缓存的fpga多核二维卷积加速优化方法 | |
CN103428804A (zh) | 寻找片上网络任务与节点间映射方案及网络编码位置方法 | |
CN114969234A (zh) | 一种面向全量城市路网的向量表征方法 | |
CN115713103B (zh) | 片上-片间互连的神经网络芯片联合性能预测方法及系统 | |
Kreutz et al. | Energy and latency evaluation of noc topologies | |
CN108198084A (zh) | 一种复杂网络重叠社区发现方法 | |
Thakore et al. | Performance analysis of parallel object-oriented query processing algorithms | |
Russo et al. | LAMBDA: An open framework for deep neural network accelerators simulation | |
CN115796249B (zh) | 面向chiplet互连的神经网络芯片层切换映射方法 | |
CN109587080A (zh) | 一种基于拓扑划分的片上网络快速映射算法 | |
CN109583006A (zh) | 一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法 |
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 |