CN112149369B - 基于芯粒架构的多核封装级系统及其面向芯粒的任务映射方法 - Google Patents

基于芯粒架构的多核封装级系统及其面向芯粒的任务映射方法 Download PDF

Info

Publication number
CN112149369B
CN112149369B CN202010997893.7A CN202010997893A CN112149369B CN 112149369 B CN112149369 B CN 112149369B CN 202010997893 A CN202010997893 A CN 202010997893A CN 112149369 B CN112149369 B CN 112149369B
Authority
CN
China
Prior art keywords
core
unit
units
task
data
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
CN202010997893.7A
Other languages
English (en)
Other versions
CN112149369A (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.)
Cross Information Core Technology Research Institute Xi'an Co ltd
Original Assignee
Cross Information Core Technology Research Institute Xi'an Co ltd
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 Cross Information Core Technology Research Institute Xi'an Co ltd filed Critical Cross Information Core Technology Research Institute Xi'an Co ltd
Priority to CN202010997893.7A priority Critical patent/CN112149369B/zh
Publication of CN112149369A publication Critical patent/CN112149369A/zh
Application granted granted Critical
Publication of CN112149369B publication Critical patent/CN112149369B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • 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/82Architectures of general purpose stored program computers data or demand driven
    • G06F15/825Dataflow computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2113/00Details relating to the application field
    • G06F2113/18Chip packaging
    • 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)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Geometry (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Architecture (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)

Abstract

本发明一种基于芯粒架构的多核封装级系统及其面向芯粒的任务映射方法,所述系统包括核心单元、芯粒单元和封装单元;核心单元包括多个并行的处理单元,以及多个处理单元共享的L1本地缓冲单元;L1本地缓冲单元仅用于存储权重数据;芯粒单元包括多个并行的核心单元,以及多个核心单元共享的L2共享缓冲单元;L2共享缓冲单元仅用于存储激活数据;封装单元包括多个并行且互联的芯粒单元,以及多个芯粒单元共享的DRAM存储。所述方法通过对芯粒Chiplet计算映射、芯粒Chiplet间的计算映射、芯粒Chiplet内PE阵列计算映射的数据分配模板,以及每层计算的规模分配进行方案搜索,以实现更少的片间通信、更小的片上存储以及更少的DRAM访问。

Description

基于芯粒架构的多核封装级系统及其面向芯粒的任务映射 方法
技术领域
本发明涉及多核芯片系统及映射方法,具体为面向芯粒架构与系统的深度神经网络高效任务映射与调度方法。
背景技术
随着芯片制造尺寸的不断减小,依赖尺寸缩减的摩尔定律的发展进度已趋缓,并且采用先进工艺节点下,成本开销非常大。因此在先进工艺节点下需要控制芯片的面积。十年前,由于“功耗墙”的存在,处理器的设计从提升主频迁移到多核设计;现在,由于“成本墙”的存在,处理器的设计从提升集成密度即将需要迁移到多芯片封装的方案。
为了解决“成本墙”的问题,芯粒(Chiplet)技术应运而生。Chiplet是一颗颗商品化的、具有某一功能特征的芯片,如CPU,GPU,Accelerator,MEM IO,芯片通过集成若干数量的Chiplet来提升集成度,构成封装级系统(SoP)。对于同种Chiplet,芯片制造所需的光刻掩模板是可以复用的,而解耦出来的不同类型Chiplet可以采用不同制造工艺,从而降低了芯片制造成本,同时也获得了更高的集成度,另外小面积芯片亦可提升制造的良率。目前已有包括AMD,Intel在内的许多厂商通过Chiplet方案来提升CPU集成。在AMD的Zeppelin设计中,他们在封装上集成四个Chiplet,实现32核处理器的设计,同时降低了70%的成本,并提高了17%的良率。
尤其在AI计算领域,由于大数据和机器学习的革命对计算资源提出了前所未有的需求,同样需要AI处理器具备高集成度的特点,以满足高算力的需求。Tesla FSD采用14nm工艺,在314mm2面积下实现72TOPS算力;华为昇腾910采用7nm工艺,在1228mm2面积下实现512TOPS算力;阿里含光800采用12nm工艺,在709mm2面积下实现825TOPS算力。由此可见,实现高算力的同时,带来了较大的面积开销。因此NVIDIA基于Chiplet方案设计了AI计算芯片Simba。Simba采用16nm工艺,每个Chiplet只有6mm2,最高算力为4TOPS;通过36个Chiplet的集成,可以实现最高127.8TOPS的算力,与Tesla FSD相比,Simba只需16nm工艺下约6mm2的掩模板成本,即可实现近1.8倍的算力。然而,Simba的Chiplet方案仅实现计算核心集成,数据由FPGA提供到一个Chiplet再路由到整个封装上网络(NoP),系统中并不包含DDR PHY等部分的集成。
此外,单芯片多核CPU的编译已在过去十多年中有了充分的研究,但是面向多芯片多核CPU的编译仍存在研究的空间,旨在降低片间的通信开销,使得相关任务可以更好地聚集在单芯片上,从而降低通信开销。
特别地,在AI领域中,虽然面向单芯片深度神经网络DNN的计算映射已得到深入的研究,但是并没有针对Chiplet系统下的研究。在Simba所采用的6×6Chiplet网络中,虽然对NoP数据路由做路径优化、对Chiplet集群作任务划分,但是对卷积计算的循环展开与循环折叠策略是静态的,导致Chiplet通信没有得到优化,且每个Chiplet亦需配备高达640KB的SRAM,访存的开销较大。
现有技术中,系统级的Chiplet需要解决以下问题:1)Chiplet之间的互联形式;2)Chiplet和DRAM的分配形式。
1)Chiplet之间的互联常见为2D-Mesh NoC的形式,虽然扩展性良好,却需要带来比较复杂的NoC硬件设计以及与NoC配套的路由算法,且大规模NoC存在较明显的不同步问题。
2)Chiplet与DRAM之间的互联方案。目前已有方案中,可归纳为两大类:在NVIDIA的Simba中,仅有部分Chiplet与DRAM互联,再由此路由至其他Chiplet;在AMD方案中,每个Chiplet均可访问所有DRAM,只是有时延的差异。前者存在较大的路由时延问题,后者难以避免会出现访问冲突导致带宽效率下降的问题。AI任务中存在许多共享的数据,一是需要降低访问冲突,二是需要减少冗余数据拷贝,故需与DNN映射配合起来,寻找合适解决方案。
发明内容
针对现有技术中存在的问题,本发明提供一种基于芯粒架构的多核封装级系统及其面向芯粒的任务映射方法,结构简单,设计合理,并行层次多,访存开销小。
本发明是通过以下技术方案来实现:
基于芯粒架构的多核封装级系统,包括核心单元、芯粒单元和封装单元;
所述的核心单元包括多个并行的处理单元,以及多个处理单元共享的L1本地缓冲单元;L1本地缓冲单元仅用于存储权重数据;
所述的芯粒单元包括多个并行的核心单元,以及多个核心单元共享的L2共享缓冲单元;L2共享缓冲单元仅用于存储激活数据;
所述的封装单元包括多个并行且互联的芯粒单元,以及多个芯粒单元共享的DRAM存储。
优选的,所述的封装单元中多个的芯粒单元之间采用环状总线进行环状互联。
优选的,所述的芯粒层级和封装层级采用输出稳定数据流OS,在核心层级上采用权重稳定数据流WS。
优选的,L1本地缓冲单元中,输入采用SRAM进行缓冲,输出采用寄存器缓冲。
基于芯粒架构的多核封装级系统面向芯粒的任务映射方法,基于芯粒架构的多核封装级系统如上任意一项方案所述,所述方法包括,
在核心单元进行任务处理的核心层级上,任意核心单元内的多个处理单元并行处理该核心单元任务;
在芯粒单元进行任务处理的芯粒层级上,任意芯粒单元内的多个核心单元并行处理该芯粒单元任务;
在封装单元进行任务处理的封装层级上,任意封装单元内的多个芯粒单元并行处理该封装单元任务;
将各层级中的不同并行单元进行划分,以并行单元一次处理的量为单位,规划循环展开的次序以及次数,对各层级中的任务进行处理。
优选的,在核心单元任务处理时,
采用多组向量乘法对不同处理单元进行划分处理核心单元任务,实现对输出通道并行度为向量乘法组数的输出;
采用WS数据流形式,将固定权重在缓冲端口的数据复用输出缓冲矩阵大小的次数,遍历一个卷积核尺寸大小的权重进行累加计算,实现对输入通道的累加计算。
优选的,在芯粒单元任务处理时,
采用Kc,Xc和Yc三个维度对核心单元进行划分对芯粒单元任务进行处理;其中,Xc和Yc为特征图的长宽大小;Kc为输出通道数量;
在一个芯粒单元的若干核心单元中,对Kc-Yc-Xc进行不同数目的分配,对划分后的芯粒单元任务进行处理。
优选的,在封装单元任务处理时,
当多个芯粒单元之间以输出通道维度切割封装单元任务,多个芯粒单元之间共用相同的激活输入;按照输入通道划分为Kp组分配到不同的芯粒单元上,每组包含C0×C1个输入通道;其中,Kp为输出通道维度,C0为多组向量乘法中每组向量乘法的规模,C1为核心层级中的循环系数;当芯粒单元完成一组运算后,将按照环状互联把本地的一组激活输入传送到下一个芯粒单元,同时接收来自前一个芯粒单元的一组激活输入;循环传递Kp次后,完成所有输入通道的累加计算;
当多个芯粒单元之间以平面方向切割封装单元任务时,多个芯粒单元之间将会共用相同的权重;按照输出通道划分Yp组分配到不同芯粒单元上,每组包含K0个输出通道;其中,Yp为平面方向维度,K0为多组向量乘法中向量乘法的组数;当芯粒单元完成一组运算后,将按照环状互联将本地的一组权重传送到下一个芯粒单元,同时接收来自前一个芯粒单元的一组权重;循环传递Yp-1次后,完成Yp×K0组输出通道的计算;
采用Y2-X2-K2或K2-Y2-X2的循环次序,对划分后的封装单元任务进行处理;其中,Y2-X2-K2为行循环—列循环—输出通道循环次序;K2-Y2-X2为输出通道循环-行循环-列循环次序。
进一步,当多个芯粒单元之间以输出通道维度切割封装单元任务,多个芯粒单元之间共用相同的激活输入,进行激活输入的复用,激活输入的复用的数据量为C1×C0×((X0-1)×s+FX)×((Y0-1)×s+FY),其中,C0为多组向量乘法中每组向量乘法的规模,C1为核心层级中的循环系数,X0和Y0为分配到一个计算核心单元中所处理的输出特征图的列数与行数,FX和FY为卷积核的列数与行数,s为卷积计算的步长。
优选的,在芯粒单元任务处理时,当输出特征图大小不是芯粒单元任务大小的整数倍时,在输出特征图的通道方向根据存储64比特位宽进行数据补齐。
与现有技术相比,本发明具有以下有益的技术效果:
本发明基于芯粒架构的多核封装级系统,作为SoC级多核芯粒Chiplet系统与传统的多核系统不同,它在并行维度上增加了一级,即封装上芯粒间互联的层级。通过对程序任务进行分解,和对数据共享之间的设定,使得分配在同一芯粒上的计算任务关联性大能够进行数据的共享,而分配在不同芯粒上的计算任务关联性小进行更高效率的数据继承,提高了系统处理效率和减小了对访存的占用。
本发明所述方法通过对芯粒Chiplet计算映射、芯粒Chiplet间的计算映射、芯粒Chiplet内PE阵列计算映射的数据分配模板,以及每层计算的规模分配进行方案搜索,以实现更少的片间通信、更小的片上存储以及更少的DRAM访问,以提供DNN在Chiplet系统中最优的映射方案。针对AI芯片的设计场景中程序任务的多层嵌套循环,将复杂的卷积操作等计算通过合适的循环展开与循环折叠方式,减少Chiplet之间的数据通信,同时通过一定程度的数据传输来实现数据共享,进而降低每个Chiplet本地存储需求,并降低对DRAM访问的次数。
附图说明
图1为本发明实例中所述的基于芯粒架构的多核封装级系统存储与并行模型示意图。
图2a为本发明实例中所述的基于芯粒架构的多核封装级系统的集成示例。
图2b为本发明实例中所述的基于芯粒架构的多核封装级系统应用于其他场合时的系统集成示例。
图3为本发明实例中所述面向芯粒的任务映射方法中各个计算层级的计算分配。
图4为本发明实例中所述面向芯粒的任务映射方法中各个计算层级的展开流程示意图。
图5为本发明实例中所述面向芯粒的任务映射方法中各个计算层级对应的展开方式。
图6为本发明实例中所述面向芯粒的任务映射方法中复用描述框架。
具体实施方式
下面结合具体的实施例对本发明做进一步的详细说明,所述是对本发明的解释而不是限定。
本发明建立基于芯粒架构的多核封装级系统及其面向芯粒的任务映射方法,以DNN场景为研究样例,能够给出不同计算层配置中最优的分配方案:实现在Chiplet间通信量、Chiplet内存储空间分配、Chiplet对DRAM访问量较优的方案。对面向某一系列基准任务的Chiplet系统开发进行指导。
本发明所述的基于芯粒架构的多核封装级系统中,并行层次分为三个:芯粒(Chiplet)之间的并行、核心(Core)之间的并行、处理单元(PE)之间的并行。当把大规模的DNN运算部署到Chiplet系统时,通过对工作任务(Workload)进行分配,以及安排包括循环展开与循环折叠循环展开策略,使得在一定的芯粒数目、核心数目、处理单元阵列规模、各级存储大小的硬件配置下,能够实现更低访存(Memory access)开销。第一,系统级的Chiplet原型建模,旨在为映射器的研究提供模型环境。
具体的,硬件的存储与并行模型如图1所示,在封装(Package)层级上多个芯粒共享DRAM存储,在芯粒(Chiplet)层级上多个核心共享L2共享缓冲,在核心(Core)层级上多个PE共享L1本地缓冲。
在L2中,由于激活(Activation)会由于卷积窗之间存在重合部分,导致当不同核心并行特征平面上不同位置的卷积窗时,存在重复读取的数据,因此激活先导入到L2,再从L2按需分配到每个核心上的L1本地缓冲中,有利于避免大规模重合数据的冗余存储。故L2只会分配给激活,在代码中称之为AL2。
权重(Weight)并不会有该需求,安排L2只会带来完全等价的存储备份,因此可以采取Bypass的存储层次,对权重只安排L1的存储层级即可。同样,对于输出来说也没有减少重合带来额外存储开销的需求,另外本基线硬件结构采取以核心为中心的输出稳定数据流(OS,Output Stationary),因此也可以Bypass掉L2层级。
核心为中心的OS数据流指的是若把核心看成独立的处理单元,端口上的输出是只有当使用完毕(即完成所有的计算)再输出到核心之外,而激活和权重会一直更新。OS只是说以PE为中心,固定输出不动而去改变激活与权重。这两者其实是一个道理,只是粒度不同。
之所以对核心采用OS数据流,是因为若采用其他数据流,部分和(Psum,PartialSum)需要在核心之间、甚至芯粒之间流动,而部分和往往需要比激活、权重以及最终输出结果需要更多的数据位宽,从而导致片内、片间带宽增加,能耗增大,同时核心以及芯粒的接口需要相应地增加专属的一组接口,或者需要如Simba那样采用昂贵的SerDes接口。
在L1层级,都部署有激活、权重和输出。其中输出因为会涉及到Read-Update-Write的操作,采用单口SRAM无法实现每周期完成一次操作,而采用双口SRAM所消耗的功耗较大,因此寄存器会更为方便,而激活以及权重的缓冲由于数据量不小,用SRAM搭即可。故L1会分配给激活、权重以及输出,在代码中分别称为AL1,WL1,OL1。
在上述的系统中将少数个Chiplet在封装上做集成,而非同时集成数量过多的Chiplet而引入复杂的NoC设计。如图2a所示,将四个计算核心作为四个单独的Chiplet,Chiplet之间采用环状总线实现互联。四个Chiplet的互联逻辑可以在封装中央的另一个芯片上实现,该芯片处理完成四个芯片之间的路由逻辑,另外,如图2b所示,内部还集成了与DRAM互联的DDR Controller与DDR PHY,以及与外部互联的IO如GPIO,以及整个系统中主控部分(包括RISC-V和DMA),四个Chiplet通过CrossBar与四个DDR进行互联。另外将DRAM的颗粒也一并封装,从而实现封装级的异构系统,即包含CPU,加速器与存储。
该中央芯片将会采用通用设计,即对于任意连接到中央芯片的四个Chiplet,均可以实现CPU对系统的控制、四个Chiplet之间的相互通信、Chiplet对DRAM数据的读取以及系统对外部数据的访问。从而实现在不同系统中可实现芯片复用。四个Chiplet之间采用环状互联一方面设计便捷,另一方面也可以有效避免死锁。本发明首先将面向AI的Chiplet方案实现系统级设计,并建立通用的中央芯片可供其他应用场合的系统集成。
基于上述的Chiplet系统分析,得到如图3、图4和图5所示的卷积循环展开方式。在本发明基于芯粒架构的多核封装级系统面向芯粒的任务映射方法中,划分了三个描述层次:Chiplet层次、Core层次、PE层次。在每个层次内部包含了三种描述,分别是Division,workload在不同单元之间如何划分);Loop,以并行单元一次处理的量为单位,如何规划循环展开次序以及次数;以及Spatial,Chiplet之间的数据共享传输实现额外的一个展开维度。
首先是PE层级的切分与循环模型。
在PE中的Loop采用Simba的形式,即WS,一方面为了好做baseline,另一方面WS数据流形式也是最方便做不同尺寸卷积核的计算。
在PE层次的计算中,Division涉及到两个索引,分别是K0和C0,它们即对应PE阵列的列数和行数。在基线架构Simba以及本发明的芯片中,都采用多组向量乘法的形式,每组向量乘法的规模为C0个,即对多个输入通道进行累加,并有K0组向量乘法,实现对输出通道并行度为K0的输出。
在PE层次中的数据复用策略采用典型的WS数据流形式,会固定权重在缓冲端口的数据,复用X0×Y0次,接着再遍历一个卷积核中Fx×Fy个权重进行累加计算。X0×Y0为输出缓冲矩阵大小,Fx×Fy为卷积核尺寸大小;
由于对于一个Core sub-workload输出块(Output tile)可能有大于C0的输入通道进行累加,因此在上层会引入C1这一循环层级,以完成多组C0个输入通道的累加计算。
除了C0和C1,最后还有一层Csa。当多个Chiplet之间以输出通道维度切割计算任务时(即Kp>1),这些不同Chiplet之间将会共用相同的激活输入。因此可以按照输入通道划分为Kp组分配到不同的Chiplet上,每组包含C0×C1个输入通道。当Chiplet完成一组运算后,将按照Ring-NoC把本地的一组传送到下一个Chiplet,同时接收来自前一个Chiplet的一组数据。循环传递Kp-1次后即可完成所有输入通道的累加计算。显然,这里Csa=Kp。
因此,在PE阵列层级上,无论是科研的版本还是芯片专用的版本,在PE层级上都采用固定的方案,一方面该层级已经有不少的研究,另一方面在芯片开发上以一个Core Sub-workload为最小运算块,且采取相对固定的数据流处理有助于简化芯片设计。
这一层级的K0和C0由硬件的计算规模确定(即PE的阵列大小),Fx和Fy由计算任务确定(即卷积核尺寸),X0和Y0由输出缓冲确定(即OL1大小)。对于大部分卷积来说,X0和Y0都不会希望太小,因为输出块越小,导致读取重合部分的数据量就越大。最后是C1和Csa,Csa取决于Chiplet的划分模式,这属于NN-Knife的搜索空间之一。当Csa定下来后,C1即可计算,其计算表达式为C/(Csa×C0),其中C为计算任务的总输入通道数。所以一般来说,当硬件资源确定后,PE层级中的循环系数就均可确定下来。
其次是Core层级的切分与循环模型。
Core层级最下面有一级紧接着Csa的Ksw,这与Csa同理。当多个Chiplet之间以平面方向切割计算任务时(即Yp>1),这些不同Chiplet之间将会共用相同的权重。因此可以按照输出通道划分Yp组分配到不同Chiplet上,每组包含K0个输出通道。当Chiplet完成一组运算后,将按照Ring-NoC将本地的一组权重传送到下一个Chiplet,同时接收来自前一个Chiplet的一组权重。同样循环传递Yp-1次后即可完成Ksw×K0组输出通道的计算。显然,这里Ksw=Yp。
紧接着Ksw的,是三个可交替位置的循环Y1,X1,K1。这里主要产生两种有意义的循环次序,分别是Y1-X1-K1以及K1-Y1-X1。Y1与X1因为都是平面方向,没必要讨论它们之间次序,归纳起来,有意义的是先循环输出通道方向还是先循环平面方向。前者是实现激活输入的复用,后者是实现权重的复用。在不同数据流的计算任务下,会有不同的合适方案。
注意,在芯片版本没有Ksw这一层级,这是因为整体控制复杂,没纳入最终设计。
该层循环有其特殊的含义,称之为Memory-Adaptive-Loop(MAL)。这是为了适配Buffer大小(针对AL2与WL1)而引入的折叠。例如AL2的空间允许放入多个Core Sub-workload,那么可以“物尽其用”,从DRAM导入更大尺寸的子特征图(Input tile),可以减少由于重合而带来的额外访存。同样K1也是为了最大化权重存储,这样可以复用片上更多的权重数据,完成X1×Y1个输出块的计算。
而对于Core层级的划分,一共有三个维度,分别是Kc,Xc和Yc。这三个维度完全属于搜索空间中的任意配置。一般来说,对于特征图越大的层,该搜索的最优结果越倾向于分配更大的Xc和Yc,以增大输出块,避免小的输出块所带来重合部分的冗余访存;而对于输出通道较多的层,越倾向于分配更大的Kc,以尽可能复用权重的数据。
这里注意一点,在实现Core层级的划分时,会动态分配权重WL1空间。即对于Xc=Yc=1时,不同核心的WL1所存放的权重数据是各不相同的,等效的WL1eff大小就是等于每个物理上WL1的大小。但如Xc×Yc=2时,说明有2组核心是共用相同的权重,因此会合并这两组WL1作为等效的空间,即WL1eff=2×WL1。显然,WL1eff=Xc×Yc×WL1。但每个Chiplet上总WL1大小是恒定的。
因此,在Core层级上,NN-Knife将把两种循环次序纳入搜索空间,而K1,X1和Y1这三个系数,是基于Core Sub-workload大小以及缓冲区大小来确定可以折叠进多少K1,X1和Y1。
第三是Chiplet层级的切分与循环模型。
Chiplet的Division同样是纳入搜索空间中,但只有Kp和Yp。之所以没有Xp是因为这样会增大Chiplet之间的重合部分,如在平面上按照X和Y两个方向切分,会导致每个输出块的激活输入同时与相邻三个Chiplet的任务有交叠,从而导致DRAM访问、系统控制复杂度上升。所以在平面方向只选择一个维度即可。
对于Chiplet的Loop是简单的。因为从上文已经可以确定出Chiplet Workload以及Core Sub-workload,只要做除法即可得到K2,X2以及Y2系数。此外,这里同样产生两种循环次序,分别是Y2-X2-K2以及K2-Y2-X2,与Core的Loop是类似的。所以这两边各有两种循环次序,合计共有4种循环模式,均纳入到搜搜空间中。
在Chiplet的层级上,主要是切分与Loop的次序与搜索空间有关,循环索引的系数的获得是很直接的。
在上述层级的切分和循环中,还涉及到如下的限定。
第一是访存与复用效率。
当每一级存储的空间足够大时,则不会存在由于空间占满而需要剔除(Eviction)的操作,当后来再需要原来的数据时,就会引入重复的读取——这里重复读取的次数称之为“访存惩罚因子”。但是一般来说,硬件上的各级存储是有限的,肯定会遇到剔除数据的需求。因此需要建立一个统一的描述框架,来把访存与复用情况进行定量描述。
首先先建立一种思想。如图6所示,先要有三者:复用参考点(Reuse ReferencePoint)、所复用的数据及数据量(Reuse Data)、复用环境(Reuse Environment)。对于图6的示意,复用参考点在Csa位置,它的数据量即为复用参考点及以下的部分,通过目标数据相关的循环索引以及数目可得到具体数据量。例如激活的话,参考点及以下的相关索引为Csa,C1,C0,X0,Y0,FX,KY,其中Csa由于在不同Chiplet中摊分因此不需要考虑,因此最终复用的数据量为C1×C0×((X0-1)×s+FX)×((Y0-1)×s+FY)。接着需要看它的复用情况。从参考点依次往上看,在遍历循环索引的过程中,只需要关注有意义的索引(即系数不为1的)。从参考点往上第一个是Ksw,若它有意义,则看该系数是否与目标复用的数据有关。对于激活来说,Ksw为无关索引,因此在循环该层计算时,参考点以下的数据是属于被复用的数据。如果当某级存储不能把这些数据都装载下来,则在循环Ksw的时候都需要重新导入数据,一共需要导入Ksw次。因此这里把Ksw就称为“访存惩罚因子”。
根据以上分析,就可以得知,对于某个数据在某个参考点处,缓冲的存储大小存在一个临界点,当可以存下参考点以下的数据,即可避免乘上惩罚因子。而在做层次化Division-Loop展开时,已经对计算任务进行了分层,在每个循环层次即可作为一个参考点,一共有四个,分别是:K0位置作为第一个参考点,这是一个有效存储的判断点,如果连第一个参考点都无法满足,则该硬件配置方案为无效;Csa位置为第二个参考点,该参考判断存储是否能够放下一个Core Sub-workload所对应的数据;Y1/K1作为第三个参考点,该参考点影响在循环多个Chiplet Sub-workload下,激活/权重数据是否可以被复用;Y2/K2作为第四个参考点,该参考点也是影响循环多个Chiplet Sub-workload的数据复用。虽然后两个参考点都是与Chiplet Sub-workload之间的数据复用相关,但最后的影响情况取决于循环次序。
关于参考点,还会去定义其是否有意义。例如对于图6所示的循环形式,Y2在最外层,则这种情况下,激活输入的第四个参考点是无意义的。或者当X2和Y2均为1,那么权重的第四个参考点同样是无意义的,因为就算缓冲空间小于第四个参考点所确定的关键大小,也不会引入访存惩罚因子。
对于激活输入而言,它比权重要稍微复杂。激活输入除了访存惩罚因子,由于空间不足而导致所导入的输入特征子图的尺寸偏小,将会造成总计较多的重叠数据访问。
第二是边界问题与对齐。
由于每个Core Sub-workload基本是由硬件定出(PE阵列、OL1大小),与输出特征图的大小(即X和Y)无关,并且最终的总计算任务是以Core Sub-workload为单位大小组成。那么,当输出特征图大小不是Core Sub-workload大小的整数倍时,则出现边界问题。
为了解决该问题,采用“补齐”的策略,直接补齐到以Core Sub-workload为单位的整数倍大小(尽管芯片上在X和Y方向可以任意大小,只是在通道方向是必须补齐),用意在于“惩罚”边界剩余无用计算的情况,以搜索出合适的单位大小以提高利用率。
因此,最终的运行时间(runtime)就是取决于能否以合适的单位大小、合适的并行配置来构建当前任务的运行方式。
第三是关于XY方向的形状。
在搜索(Y1,X1)以及(Yc,Xc)配置时,一般只是先知道X和Y的乘积。例如对于(Y1,X1),一开始知道的是缓冲区可以装下多少个Core Sub-workload,但是不知道具体Y1和X1的分配形式。
在分配X和Y时有一个原则:尽量让其周长最小,换言之让其长宽比系数越小,即越接近正方形。这是因为例如同样是16个输出,如果是1×16的形状,所对应的输入大小为3×18(卷积核大小为3×3,步长为1),这样输入激活的数量为54。但是如果输出是4×4的形状,那么对应的输入大小为6×6,总量为36。因此合理分配X和Y的比例,有助于减少输入数据的导入量。
由于Chiplet技术刚兴起不久,高效的Chiplet程序任务映射有着较大的研究空间,尤其像针对AI的Chiplet系统,以往主要是针对单一一个2D阵列映射,尚未有针对片上多阵列、封装上多芯片所构成的Chiplet系统,因此本发明面向Chiplet系统的程序任务映射是一个空白的领域。
本发明针对DNN场景,利用图1所示的本发明的系统架构和图3所示的各个层级计算分配,确定不同存储与计算层次中循环展开与循环折叠方式。基于此,可对每级存储开销进行评估。
本发明公开了Chiplet上PE阵列与封装上Chiplet阵列的并行映射策略,对应图3中的1D Chiplet计算映射和Chiplet内2D PE阵列计算映射,确定不同计算层中的计算特征以及激活与权重数据的数量特征。对于PE内的计算可以视作一个固定的运算元即可,这里采用Simba中的2D向量乘法阵列,对X│Y采用输入通道│输出通道映射,并采用WS数据流,如图3中的每个PE内采用WS数据流。上述的映射方法是基于Chiplet系统中新并行维度加入如图1所示。与之前并行展开只有一层2D阵列不同,本发明在处理芯粒内部MAC 2D的核心阵列外,还包括核心上PE并行(每个PE是一个MAC阵列)与多芯粒并行,它们的行为约束是不一样的。
利用Chiplet通信下对降低每个Chiplet上存储开销与降低Chiplet对DRAM访问的益处。利用图3中的Chipket间数据传输映射,将数据在Chiplet间做主动传输,使得某种数据可以在多个Chiplet之间做分布式存储,并通过片间通信方式实现数据共享。基于此,将在片间通信、片上存储及Chiplet对DRAM访问的折中取舍里面,研究最佳的传输策略。
在Chiplet的系统中,并行层次分为三个:芯粒(Chiplet)之间的并行、核心(Core)之间的并行、处理单元(PE)之间的并行。主要以DNN场景为研究样例,将Simba中DNN映射方案作为基线,每个Chiplet存储开销减少20%以上,对DDR的访问降低20%以上,Chiplet之间通信降低50%以上。当把大规模的DNN运算部署到Chiplet系统时,通过对工作任务(Workload)进行分配,以及安排包括循环展开与循环折叠循环展开策略,使得在一定的芯粒数目、核心数目、处理单元阵列规模、各级存储大小的硬件配置下,能够实现更低访存(Memory access)开销。
本发明基于芯粒架构的多核封装级系统面向芯粒的任务映射方法,针对Chiplet系统的计算任务智能映射(Mapping),从而可为Chiplet系统设计提供指导,同时软硬件协同优化促使系统性能提升。本发明所述的基于芯粒架构的多核封装级系统将多个计算核心的互联方式由封装芯片上互联变为了芯粒间互联。对GRS的能效(pJ/bit)归一到寄存器访问后(均统一到45nm工艺),寄存器的访问能效为×1,SRAM的访问能效为×6,GRS访问能效为×18,DDR4访问能效为×75。通过智能的任务调度即映射方法能够尽量降低片间的数据通信。但当极端地把每个Chiplet独立起来,则会带来新的问题:每个Chiplet数据都需要从能耗开销更昂贵的DRAM进行读取,同时每个Chiplet计算所需数据都需要存储在本地,导致片上所需SRAM容量提升。
因此本发明给芯粒通信一定的余量,利用芯粒间数据传输,实现公有数据的存储分摊以减少片上存储,同时通过芯粒间数据传输替代一部分的DRAM读取。当减少了芯粒上存储需求后,每个Chiplet的面积可以有所减小,这样有助于降低掩模板成本开销,这与Chiplet技术的初衷是一致的。

Claims (7)

1.基于芯粒架构的多核封装级系统,其特征在于,包括核心单元、芯粒单元和封装单元;
所述的核心单元包括多个并行的处理单元,以及多个处理单元共享的L1本地缓冲单元;L1本地缓冲单元仅用于存储权重数据;
所述的芯粒单元包括多个并行的核心单元,以及多个核心单元共享的L2共享缓冲单元;L2共享缓冲单元仅用于存储激活数据;
所述的封装单元包括多个并行且互联的芯粒单元,以及多个芯粒单元共享的DRAM存储;
在核心单元进行任务处理的核心层级上,任意核心单元内的多个处理单元并行处理该核心单元任务;
在芯粒单元进行任务处理的芯粒层级上,任意芯粒单元内的多个核心单元并行处理该芯粒单元任务;
在封装单元进行任务处理的封装层级上,任意封装单元内的多个芯粒单元并行处理该封装单元任务;
在核心单元任务处理时,
采用多组向量乘法对不同处理单元进行划分处理核心单元任务,实现对输出通道并行度为向量乘法组数的输出;
采用WS数据流形式,将固定权重在缓冲端口的数据复用输出缓冲矩阵大小的次数,遍历一个卷积核尺寸大小的权重进行累加计算,实现对输入通道的累加计算;
在芯粒单元任务处理时,
采用Kc,Xc和Yc三个维度对核心单元进行划分对芯粒单元任务进行处理;其中,Xc和Yc为特征图的长宽大小;Kc为输出通道数量;
在一个芯粒单元的若干核心单元中,对Kc-Yc-Xc进行不同数目的分配,对划分后的芯粒单元任务进行处理;
在封装单元任务处理时,
当多个芯粒单元之间以输出通道维度切割封装单元任务,多个芯粒单元之间共用相同的激活输入;按照输入通道划分为Kp组分配到不同的芯粒单元上,每组包含C0×C1个输入通道;其中,Kp为输出通道维度,C0为多组向量乘法中每组向量乘法的规模,C1为核心层级中的循环系数;当芯粒单元完成一组运算后,将按照环状互联把本地的一组激活输入传送到下一个芯粒单元,同时接收来自前一个芯粒单元的一组激活输入;循环传递Kp次后,完成所有输入通道的累加计算;
当多个芯粒单元之间以平面方向切割封装单元任务时,多个芯粒单元之间将会共用相同的权重;按照输出通道划分Yp组分配到不同芯粒单元上,每组包含K0个输出通道;其中,Yp为平面方向维度,K0为多组向量乘法中向量乘法的组数;当芯粒单元完成一组运算后,将按照环状互联将本地的一组权重传送到下一个芯粒单元,同时接收来自前一个芯粒单元的一组权重;循环传递Yp-1次后,完成Yp×K0组输出通道的计算;
采用Y2-X2-K2或K2-Y2-X2的循环次序,对划分后的封装单元任务进行处理;其中,Y2-X2-K2为行循环—列循环—输出通道循环次序;K2-Y2-X2为输出通道循环-行循环-列循环次序。
2.根据权利要求1所述的基于芯粒架构的多核封装级系统,其特征在于,所述的封装单元中多个的芯粒单元之间采用环状总线进行环状互联。
3.根据权利要求1所述的基于芯粒架构的多核封装级系统,其特征在于,所述的芯粒层级和封装层级采用输出稳定数据流OS,在核心层级上采用权重稳定数据流WS。
4.根据权利要求1所述的基于芯粒架构的多核封装级系统,其特征在于,L1本地缓冲单元中,输入采用SRAM进行缓冲,输出采用寄存器缓冲。
5.基于芯粒架构的多核封装级系统面向芯粒的任务映射方法,其特征在于,基于芯粒架构的多核封装级系统如权利要求1-4任意一项所述,所述方法包括,
将各层级中的不同并行单元进行划分,以并行单元一次处理的量为单位,规划循环展开的次序以及次数,对各层级中的任务进行处理。
6.根据权利要求5所述的基于芯粒架构的多核封装级系统面向芯粒的任务映射方法,其特征在于,当多个芯粒单元之间以输出通道维度切割封装单元任务,多个芯粒单元之间共用相同的激活输入,进行激活输入的复用,激活输入的复用的数据量为C1×C0×((X0-1)×s+FX)×((Y0-1)×s+FY),其中,C0为多组向量乘法中每组向量乘法的规模,C1为核心层级中的循环系数,X0和Y0为分配到一个计算核心单元中所处理的输出特征图的列数与行数,FX和FY为卷积核的列数与行数,s为卷积计算的步长。
7.根据权利要求5所述的基于芯粒架构的多核封装级系统面向芯粒的任务映射方法,其特征在于,在芯粒单元任务处理时,当输出特征图大小不是芯粒单元任务大小的整数倍时,在输出特征图的通道方向根据存储64比特位宽进行数据补齐。
CN202010997893.7A 2020-09-21 2020-09-21 基于芯粒架构的多核封装级系统及其面向芯粒的任务映射方法 Active CN112149369B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010997893.7A CN112149369B (zh) 2020-09-21 2020-09-21 基于芯粒架构的多核封装级系统及其面向芯粒的任务映射方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010997893.7A CN112149369B (zh) 2020-09-21 2020-09-21 基于芯粒架构的多核封装级系统及其面向芯粒的任务映射方法

Publications (2)

Publication Number Publication Date
CN112149369A CN112149369A (zh) 2020-12-29
CN112149369B true CN112149369B (zh) 2024-04-05

Family

ID=73894050

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010997893.7A Active CN112149369B (zh) 2020-09-21 2020-09-21 基于芯粒架构的多核封装级系统及其面向芯粒的任务映射方法

Country Status (1)

Country Link
CN (1) CN112149369B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559440B (zh) * 2020-12-30 2022-11-25 海光信息技术股份有限公司 多小芯片系统中实现串行业务性能优化的方法及装置
CN112860616B (zh) * 2021-01-29 2024-03-05 上海阵量智能科技有限公司 一种芯片、片间通信方法、电子设备和存储介质
CN112667557A (zh) * 2021-03-16 2021-04-16 南京蓝洋智能科技有限公司 一种适用于chiplet架构的数据传输方法
CN114780227B (zh) * 2022-06-20 2022-09-23 中国人民解放军国防科技大学 一种基于芯粒化网络处理器架构的任务调度映射方法及系统
CN114970409A (zh) * 2022-07-27 2022-08-30 北极雄芯信息科技(西安)有限公司 基于多管芯互联的集成电路
CN115248796B (zh) * 2022-07-28 2023-08-04 芯砺智能科技(上海)有限公司 用于芯粒到芯粒互连的总线流水线结构和芯片
CN115617739B (zh) * 2022-09-27 2024-02-23 南京信息工程大学 一种基于Chiplet架构的芯片及控制方法
CN115658274B (zh) * 2022-11-14 2023-06-06 之江实验室 芯粒中神经网络推理的模块化调度方法、装置和计算设备
CN115713103B (zh) * 2022-11-24 2023-08-18 辉羲智能科技(上海)有限公司 片上-片间互连的神经网络芯片联合性能预测方法及系统
CN115622666B (zh) * 2022-12-06 2023-03-21 北京超摩科技有限公司 用于芯粒间数据链路传输的故障通道替换方法及芯粒

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011044168A (ja) * 2010-10-13 2011-03-03 Intel Corp 多数コアプロセッサの信頼性強化
WO2016187254A1 (en) * 2015-05-18 2016-11-24 Brown University Chiplet based wireless intranet for very large scale recordiing and stimulation
CN110034079A (zh) * 2018-01-12 2019-07-19 英特尔公司 分布式半导体管芯和封装架构
CN111368699A (zh) * 2020-02-28 2020-07-03 交叉信息核心技术研究院(西安)有限公司 基于图案的卷积神经网络剪枝方法及图案感知加速器
CN111554680A (zh) * 2018-12-10 2020-08-18 钰创科技股份有限公司 统一集成电路系统
CN111563011A (zh) * 2019-02-13 2020-08-21 慧荣科技股份有限公司 存储器接口检测方法及计算机可读取存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011044168A (ja) * 2010-10-13 2011-03-03 Intel Corp 多数コアプロセッサの信頼性強化
WO2016187254A1 (en) * 2015-05-18 2016-11-24 Brown University Chiplet based wireless intranet for very large scale recordiing and stimulation
CN110034079A (zh) * 2018-01-12 2019-07-19 英特尔公司 分布式半导体管芯和封装架构
CN111554680A (zh) * 2018-12-10 2020-08-18 钰创科技股份有限公司 统一集成电路系统
CN111563011A (zh) * 2019-02-13 2020-08-21 慧荣科技股份有限公司 存储器接口检测方法及计算机可读取存储介质
CN111368699A (zh) * 2020-02-28 2020-07-03 交叉信息核心技术研究院(西安)有限公司 基于图案的卷积神经网络剪枝方法及图案感知加速器

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
An analysis of core- and chip-level architectural features in four generations of Intel server processors;Johannes Hofmann等;《arXiv: 1702.07554v1》;正文第1-18页 *
SCAN: A Scalable Neural Networks Framework Towards Compact and Efficient Models;Linfeng Zhang等;《NIPS’19: Proceedings of the 33rd International Conference on Neural Information Processing Systems》(第362期);正文第4027-4036页 *
Yang Zhao等.DNN-CHIP PREDICTOR: AN ANALYTICAL PERFORMANCE PREDICTOR FOR DNN ACCELERATORS WITH VARIOUS DATAFLOWS AND HARDWARE ARCHITECTURES.《ICASSP 2020-2020 IEEE International Conference on Acoustics,Speech and Signal Processing(ICASSP)》.2020,正文第1593-1597页. *
后摩尔时代新兴计算芯片进展;武俊齐等;《微电子学》;第50卷(第03期);正文第384-388页 *

Also Published As

Publication number Publication date
CN112149369A (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
CN112149369B (zh) 基于芯粒架构的多核封装级系统及其面向芯粒的任务映射方法
Choquette et al. Nvidia a100 tensor core gpu: Performance and innovation
CN111178519B (zh) 卷积神经网络加速引擎、卷积神经网络加速系统及方法
Zhu et al. A 3D-stacked logic-in-memory accelerator for application-specific data intensive computing
JP2710536B2 (ja) コンピュータ・システム
CN111124675B (zh) 一种面向图计算的异构存内计算设备及其运行方法
Zhou et al. Transpim: A memory-based acceleration via software-hardware co-design for transformer
Huang et al. Active-routing: Compute on the way for near-data processing
JPH0635872A (ja) コンピュータ・システム
US11436258B2 (en) Prometheus: processing-in-memory heterogenous architecture design from a multi-layer network theoretic strategy
Xiao et al. Prometheus: Processing-in-memory heterogeneous architecture design from a multi-layer network theoretic strategy
Catthoor et al. Very large-scale neuromorphic systems for biological signal processing
CN114356840A (zh) 具有存内/近存计算模块的SoC系统
CN111630487A (zh) 用于神经网络处理的共享存储器的集中式-分布式混合组织
Lee et al. Task parallelism-aware deep neural network scheduling on multiple hybrid memory cube-based processing-in-memory
Li et al. Fsa: A fine-grained systolic accelerator for sparse cnns
Guerre et al. Hierarchical network-on-chip for embedded many-core architectures
Tang et al. ApproxPIM: Exploiting realistic 3D-stacked DRAM for energy-efficient processing in-memory
Santos et al. Survey on near-data processing: Applications and architectures
Yang et al. Venus: A versatile deep neural network accelerator architecture design for multiple applications
Chen et al. GCIM: Towards Efficient Processing of Graph Convolutional Networks in 3D-Stacked Memory
Li et al. HASP: Hierarchical asynchronous parallelism for multi-NN tasks
Han et al. EGCN: An efficient GCN accelerator for minimizing off-chip memory access
Zhou et al. Dp-sim: A full-stack simulation infrastructure for digital processing in-memory architectures
Zhou et al. Pim-dl: Boosting dnn inference on digital processing in-memory architectures via data layout optimizations

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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Tan Zhanhong

Inventor before: Ma Kaisheng

Inventor before: Tan Zhanhong

GR01 Patent grant
GR01 Patent grant