Understanding Reuse, Performance, and Hardware Cost of DNN Dataflows: A Data-Centric Approach Using

理解Dnn数据流的重用、性能和硬件成本:以数据为中心使用Maestro的方法

Modeling Accelerator Efficiency via Spatio-Temporal Reuse and Occupancy

数据流 DNN加速器使用的数据划分和调度策略,直接影响DNN加速器的性能和能量效率。加速器微体系架构规定了DNN中可用于执行层的数据流。为某一层选择数据流会对利用率和能源效率产生很大的影响,但对数据流的选择和后果缺乏了解,也缺乏帮助建筑师探索协同优化设计空间的工具和方法。
Maestro 评估数据流的各种成本效益权衡,包括DNN模型和硬件配置的执行时间和能量效率。

INTRODUCTION

DNN大规模部署
在运行DNN时,严格的延迟、吞吐量和能量限制导致硬件加速器急剧增加。
DNN加速器通过利用数百个处理单元( PE )上的并行性来实现高性能,并通过最大化PE和片上划痕板中的数据重用来实现高能效。

数据流( 1 )如何调度DNN计算(例如,循环变换的选择);( 2 )如何映射跨PE的计算。移动数据的能量开销超过了计算开销,因此理解和优化数据流是DNN加速器设计的关键部分,因为它直接决定了数据如何在**乘法器( L0 )之间、在本地缓冲区( L1 )中以及在全局缓冲区层次结构( L2及以上)**中进行传输。

DNN加速器的性能和能量效率取决于:**( 1 )目标DNN模型及其层类型/维度;( 2 )数据流;( 3 )可用硬件资源及其连通性。**这三个维度紧密耦合,跨越这些维度优化DNN加速器是一项具有挑战性的任务。因此,协同优化硬件微体系结构及其支持的数据流是任何加速器设计的主要优化目标之一。

遗憾的是,这些建议并没有在穷尽的层面上覆盖完整的数据流空间,以作为建筑师在各种约束条件下设计定制加速器的参考。相比之下,最近关于DNNs的编译[ 10、33 ]和分析工具[ 30 ]的建议分析了DNN工作负载到给定体系结构的软件映射的广阔空间,但没有阐明软件映射和硬件数据流之间的关系,并且这些黑盒工具没有为架构师提供关于数据流选择的后果及其对重用的影响的知识直觉。事实上,"数据流"这一术语在体系结构和分析提案中的使用是不一致的。这就给建筑师留下了一套不完整的、非结构化的关于数据流的直觉,以及数据流和微体系结构选择之间复杂的相互作用。

本文中,通过提供一套关于数据流选择的选择和后果及其与微观建筑备选方案之间的相互作用的完整见解,以及对它们进行定量推理的结构化机制来弥补这种情况。为此,我们做出如下具体贡献。

首先,我们引入了以数据为中心的表示法来表示以数据映射和重用为一级实体的各种加速器数据流,而不是像以前的提案所使用的以计算为中心的表示法那样从循环嵌套表示推断数据重用。这些以数据为中心的指令可以为密集和稀疏的DNN层(如卷积层、LSTM层和全连接层)在PE的任意层次结构上表达广泛的数据重用(跨越空间、时间和时空)。我们认为,我们的以数据为中心的表示法可以补充常用的循环嵌套表示法,即我们的表示法可以看作是一种中间表示( IR ),可以从高级循环嵌套表示法中提取,也可以直接指定。

其次,我们展示了如何使用这些以数据为中心的指令以结构化的方式来推理重用。我们展示了每个指令之间的关系,指令所揭示的算法复用的具体形式,以及利用硬件能力提高效率的潜在方法。这种分析涵盖了任何数据流可以利用重用的方法的完整空间。

第三,我们介绍了一个名为Maestro(通过时空复用和占有率对加速器效率进行建模)的分析成本模型,它程序化地实现了上述分析。马埃斯特罗以1 )一组层的DNN模型,2 )使用我们提出的指令为每一层指定的数据流描述,3 )硬件配置作为输入。基于这些输入,M输出端到端执行时间、(包括所有的计算、缓冲和互连活动)能耗、NoC成本等的估计值。在我们提出的方法中,一个关键的挑战是提供一个既有效又足够精确的成本估计,以有效地支持设计空间探索。

最后,我们演示了加速器设计者如何使用Maestro成本模型来确定给定面积、能量或吞吐量预算的加速器的Pareto最优参数。对于VGG16 [ 42 ] CONV第11层中的NVDLA [ 1 ] - like数据流( KC -划分见表3),我们发现能耗和吞吐量优化的设计点之间的功耗相差2.16倍。能量优化设计使用10.6 ×以上的SRAM和吞吐量优化设计的80 %的PE。这导致了65 %的能量延迟产品改进,62 %的吞吐量。这些数字的范围对于加速器架构师来说是这个问题意义的一个具体例子。

BACKGROUND

为了理解计算卷积的各种方法的成本效益权衡,我们在DNN加速器的背景下讨论了与数据重用和数据流相关的核心概念。

2.1 DNN中的张量

图1:一个多通道2D卷积的例子,涉及3种数据结构的7个数据维度:输入/输出激活和权重张量。CONV2D在CNNs [ 11、14]中占总计算量的90 %以上,因此本文重点研究CONV2D及其变体。
对循环嵌套进行变换,使其中一个数据结构在一定的空间或时间范围内保持(也就是说,在局部缓冲区中保持不变)不变,这样可以显著减少DNN加速器中的全球化/地域主义倾向缓冲区访问次数。

2.2 DNN的加速器

DNN加速器是运行DNN应用程序的专门架构,具有高吞吐量和能量效率。如图2所示,大多数DNN加速器使用数百个处理元素( PE )来利用DNN应用中固有的并行性。PE通常包括可擦写存储器( L1 )和执行乘累加操作( MAC )的ALU。为了减少能耗和耗时的DRAM访问,大多数DNN加速器还包括一个足够大的共享划板缓冲区( L2 ),足以阶段数据来馈送所有的PE。**共享的L2缓冲器和PE通过片上网络( NoC )互连。**我们的方法支持NoC模块中广泛的互连设计。

2.3 数据重用分类

我们观察到数据重用源于DNN加速器在时间和空间上的两种行为- -多播(输入张量)和归约(输出张量)
Multicasting空间多播只从一个缓冲区读取数据点一次**,通过线对数据点进行空间复制,并将数据点发送到多个空间目的地(即PEs),减少了昂贵的远程缓冲区访问,节省了能量。同样,时态多播也只从大型远程缓冲区读取数据点一次,通过较小的本地缓冲区对数据点进行时态复制,并以相同的PE将数据点发送到多个时态目的地(即不同的时间实例),这也减少了昂贵的远程缓冲区访问并节省了能量。
Reduction空间归约将多个空间源的
部分输出进行累加
,并通过多个计算单元(例如,加法树或reduce - and - forward)进行空间累加。同理,时间归约累积了来自多个时间源的部分输出(在不同时间计算的部分和)和通过累加寄存器或缓冲区(例如, TPU中的累积缓冲器)对其进行时间累加

2.4 数据流定义和举例

为了利用这些机会,加速器必须调度操作,使PE以协调的方式处理数据张量,这可以看作是应用于图1中卷积的转换(例如,排序和平铺),以及数据到PE的划分。这种调度在先前的工作中被称为数据流,它根据调度最不频繁变化的张量将数据流分类,如权重稳定、输出稳定和输入稳定。
在这里插入图片描述
图3 给出了一个在4个PE上运行的权重平稳数据流实例。我们可以观察到W1是跨时间的多播(时间多播),I1是跨PEs的多播(空间多播),P3 _ 1是跨空间和时间的缩减。
即**实例加速器在时间上复用W1,在空间上复用I1和P3 _ 1。**值得注意的是,"权重-平稳"这个名称传达了直觉和对调度策略的高层次刻画,但详细的洞察和分析需要更精确的描述。
Chen等[ 12 ]进一步细化了数据流的定义,**规定两个仅在具体边界上存在差异的调度应该被视为同一数据流的实例或映射。**这是一个重要的区别,因为它允许加速器家族被分类在一起,即使它们具有不同的缓冲区大小- -即移动芯片和数据中心芯片可能使用相同的遍历顺序,尽管瓦片大小有很大的差异。为了简洁起见,在本文余下的工作中,我们不区分具有完全指定或部分未指定具体界限的计划,而是将它们统称为数据流。

2.5 现有的数据流表达形式

循环嵌套是一种类似于简单命令式编程语言的语法,具有明确的并行性。我们将循环嵌套表示法称为以计算为中心的表示,因为数据移动是由循环顺序和程序员指定的显式并行隐式表示的。循环顺序决定了计算的调度(或者,令),并行循环的显式注释捕获了并行性,循环顺序、平铺和并行的结合实现了数据重用。因此,建筑师开始探索涵盖这3个方面的优化环巢;循环顺序、并行性和平铺。例如,Eyeriss v2 [ 12 ]描述了一个22维循环嵌套中的数据流。
(包括多面体模型在内的以计算为中心的表示对编译器在指导并行和局部性的最优循环变换时估计重用性有巨大的帮助。这些工作提供了足够精确的成本估计,以驱动编译器中的串联循环转换。然而,它们并没有精确地对数据重用进行建模,因此,具有高精度的计算吞吐量和能量效率对于这些工作来说是具有挑战性的。Bao等人[ 7 ]针对一类可以在编译时通过多面体模型精确分析的仿射程序,开发了一个精确估计缓存行为(从而实现计算重用)的分析模型。然而,他们在多面体模型中使用重量级的线性代数框架来计算重用,因此在实际的大型应用中使用这些技术是不切实际的。此外,对于基于多面体的框架来说,计算涉及非仿射表达式的数组下标或复杂下标的复用是非常具有挑战性的,例如在跨步卷积中常见的模运算。
此外,尽管过去有大量的编译器工作对顺序程序进行重用分析,但它们缺乏分析具有显式并行性的循环嵌套的能力,而DNN数据流往往包含多个级别的并行性。此外,过去的工作没有考虑空间复用(它不是指基于缓存的架构中的空间局部性,而是指通过线或跨PE的数据重用),它利用了加速器的多播和归约支持,从而在估计空间DNN加速器的整体吞吐量和能量效率方面发挥关键作用。)
这些限制和挑战促使我们探索数据流的另一种中间表示( IR ),一种以数据为中心的表示,其中数据的移动和组织是一流的实体。由于在以数据为中心的表示中,数据移动是明确的,因此我们的分析模型变得更简单,并且相对更快,因为不需要利用重量级的线性代数框架来精确地估计数据移动/重用行为

3 DESCRIBING DATAFLOWS

我们的以数据为中心的表示包括4个关键指令:**1 )空间映射,2 )时间映射,3 )数据移动顺序,4 )集群。**我们以1D卷积(如图4所示( a) )为例简要说明了所有关键指令,然后讨论了各种硬件实现选择,以支持跨空间、跨时间和跨时空的广泛数据重用。

3.1 数据为中心的表示法

我们将加速器设计的数据流定义为包含两个主要方面:( 1 ) DNN计算(例如,循环变换的选择)跨时间的调度,以开发广泛的重用;( 2 ) DNN计算跨PE的映射,以实现并行性。表象基于四个关键成分,下面我们对前三个成分进行简要讨论。第四个组件Cluster将在3.2节中介绍。
( 1 ) Spatial Map(尺寸、偏移量) α规定了数据结构的维度α ( e.g. , R , X)在PE中的分布,其中size是指在维度α中映射到每个PE的索引数,offset描述了α的起始索引在连续PE中的偏移。
( 2 )Temporal Map(尺寸,偏移量) α指定了数据结构的维度α在PE中跨时间步的分布,并且维度指标在PE中跨时间步的映射块是相同的。size是指在维度α中映射到每个PE的索引数量,offset描述了PE中α的起始指数在连续时间步上的变化。
( 3 )数据移动顺序:数据流规范中的空间映射和时间映射的顺序决定了数据移动的顺序,即数据映射到PE的顺序随时间的变化。
在这里插入图片描述

我们使用图4 ( a )中的一维卷积示例展示了各种数据流所呈现的重用机会。我们首先通过图4 ( b )中的循环嵌套表示为该程序创建唯一的数据流,假设加速器具有2级层次结构( L0寄存器在PE + L1本地Scrappad缓冲器上)。红色方框内所包含的两个循环表示PE上的映射,对应的以数据为中心的表示如图4 ( c )和( d )所示。
从图4 ( e )可以看出,输出(维度X ')对应的数据元素在空间上分布在三个PE中,即每个PE接收两个输出元素的不同块。这种特殊的数据分布可以通过我们的空间地图指令捕获,其大小和偏移参数为2,从而产生SpatialMap( 2、2) X ',其中X '是输出数据结构的第一个维度。此外,权重(维度S )对应的数据元素在多个PE之间复制,即每个PE接收一个在第一次迭代中得到三个权重元素的相同组块,在下一次迭代中得到不同组块的权重元素。这种特殊的复制和时间分布可以通过我们的时间地图指令捕捉,其大小和偏移量参数为3,从而得到Temporal Map( 3、3 )S,其中S是权重数据结构的第一个维度。综合起来,X '上的空间映射和S上的时间映射捕获了循环嵌套版本中两个循环对应的跨PE和时间的数据映射和移动行为,这两个指令被包含在图4 ( c )中的红色方框中。每个以数据为中心的表示都是对一个独特数据流的完整描述。

3.2 数据流背景

我们在图4 ( d )所讨论的简单一维卷积上构建了6个示例数据流,以展示数据流的微小变化如何暴露各种形式的重用- -包括空间和时间。图5展示在这里插入图片描述
了这六个示例数据流,其中包括一个基本数据流图5 ( A )及其变体。我们修改了指令顺序、空间/时间映射维度、映射大小和PE聚类,并讨论了它们对数据重用的影响。

  1. 直接指令:指令顺序的改变会导致完全不同的时态复用(或者,平稳行为)。例如,图5 ( A )中映射的指令序列表明,在处理下一块X '索引之前,S的所有数据索引都应该被探索。这个顺序导致了S的所有索引的X '索引(即,部分和)对应的数据值在时间上的重用。因此,这种数据流被非正式地称为输出稳定,并在多个输出中并行地划分。
    图5 ( B )显示了指令语顺序互换的影响。这导致了一个权重稳定的数据流,因为PEs可以在S个指标的下一块之前,对X '的所有指标暂时重用S个指标对应的权重值。
    同理,图5 ( C )和( D )显示的是S上而非X '上的空间分布,也是数据移动顺序对时间的影响。
  2. 空间和时间映射维度在图5 ( A )中,指令SpatialMap( 1) X ’ (其中X '是指输出数据结构的第一维),将X '维的索引以1个(尺寸参数)的大小在PE上进行空间分布,偏移量为1个(偏移量参数)。这意味着每个PE工作在输出数据空间的不同列上。如果PE的数量不足以覆盖所映射维度的所有指标,则映射在同一组PE上随时间折叠。此外,如果offset值小于size值,那么在连续的PE之间会出现索引的重叠,这对于描述输入激活维度X和Y上的映射是有用的,因为它们的迭代空间是偏斜的。
    类似地,Temporal Map ( 1) S (其中S是指滤波器权重数据结构的第一维)将S维的索引块大小为1的索引分布在偏移为1的时间步上。这意味着每个PE工作在权重数据空间的同一列上。由于所有PE都获得了与时间映射维度相对应的相同数据索引,这就为空间重用创造了机会,即在一个时间步内跨PE多播相同的数据值。
  3. 映射尺寸在图5A - D的所有映射中,权重和输出的映射大小(第一个参数)都是1 -导致权重的完全时间重用,但没有输出的时间重用(例如,映射B和D),反之亦然(例如,映射A和C )。在任何映射中都没有输入的时间重用。增加空间或时间地图的地图大小可以帮助提供部分时间重用的机会,这可以捕获CNN层中输入的卷积重用。例如,图5 ( E )中S维对应的空间映射有助于利用跨时间步输入数据的部分时间重用。
  4. 多维空间分布的Pe聚类 如图5 ( A-E )所示,在充分探索内部位置的地图后,与外部位置的地图相关的数据映射得到更新。这种固有的假设可以限制某些数据流行为,因为人们可能有兴趣同时利用多个数据维度的空间分布。
    为了解决这个问题,我们引入了另一个名为Cluster的指令作为支持多个数据维度同时空间分布的手段。簇指令对多个PE或嵌套子簇(当一个数据流有多个聚类指令时)的大小参数进行逻辑分组。例如,图5 ( f )中的簇( 3 ) .将可用的PE排列成3个组,得到3个PE的两个簇。
    所有在CLUSTER指令上定义的映射指令都执行CLUSTER指令创建的逻辑簇之间的映射。CLUSTER指令下面指定的所有映射指令都在CLUSTER指令创建的逻辑簇中执行跨PE或更低级别的逻辑簇的映射。也就是说,CLUSTER指令之上的所有映射指令都看到了逻辑簇,而CLUSTER指令之下的所有映射指令都看到了每个逻辑簇的内部。通过该机制,可以指定由多个SPATIALMAP指令(每个聚类层次中的一个)表示的具有多个并行化维度的复杂数据流。这个例子可以在图5 ( F )中看到,其中X '维度在空间上分布在簇之间,S维度在空间上分布。聚类指令使我们能够表示现有的真实世界加速器数据流,如Eyeriss [ 11 ],因为它同时涉及R和Y维度的空间分布,以及NVDLA [ 1 ],它涉及K和C维度的空间分布。集群指令的另一个优点是它将多个PE分组的概念可以表示加速器中的粗粒度PE,例如SIMD单元[ 43 ]和矩阵张量加速器,例如GPU Tensor Cores。
    ?????F图有个地方看不懂!!!
    综上所述,我们讨论了捕获数据流所有可能方面的5种转换:调度、平铺和映射。如图5所示,以数据为中心的指令可以简洁地表示所有这些方面。我们设想,以数据为中心的表示可以从数据流(带有仿射约束的)的循环嵌套版本中自动生成,也可以手工编写。

3.3 复用的硬件意义

在这里插入图片描述

基于数据流出现了各种数据重用机会。表1总结了这样的机会是如何出现在集群内的空间映射维度( Map列)和最内部的时间映射维度( InnerMap列)的关系中的。例如**,如果输出通道( K )是空间映射的,那么一个解耦的数据结构,即输入特征图,不会随着空间的变化而变化**。也就是说,所有的PE接收相同的输入特征图,这意味着完全的空间重用机会(广播)。在同一个例子中,当最内层的时间映射维度为输入通道( C )时,每一次迭代都会改变输入通道,这为输出提供了时间缩减的机会。
**解耦的数据结构是啥???
在这里插入图片描述

虽然数据流提供了时间或空间数据重用的机会,但实际利用这些现象需要适当的硬件支持。表2总结了四种重用类别和相应的硬件实现来支持它们。如表所示,重用可以是空间的,也可以是时间的。基于数据结构,通信类型可以是多播(输入张量)或归约(输出张量)。多播是一种在空间(同一时间不同PE)或时间(相同的PE在不同的时间)上向多个目标传递相同数据的通信类型。因此,多播是一对多的通信类型,它需要一个扇出的片上网络结构,如总线或树,或者一个"静止"的缓冲区来保存数据并将其传送到未来。
相比之下,归约是多对一的通信类型,适用于部分求和以产生最终输出。这种减少既可以是空间上的,也可以是时间上的。空间归约是一种归约树或归约-转发链,如脉动阵列。时间归约可以通过一个
读-改-写缓冲区
来支持。
总之,不同的数据流(通过我们的指令表达)暴露了不同的复用形式:空间复用和时间复用,既可以用于多播,也可以用于归约,进而可以有多种硬件实现。以这种结构化的方式对数据流进行推理,揭示了新的见解和潜在的微体系结构解决方案。迄今为止的讨论集中在一个简单的1D卷积,它本身暴露了许多可能的数据流和重用机会。我们将其扩展到全卷积循环,并分析特定数据流中的重用机会。

3.4 拓展:行静态数据流

在这里插入图片描述

图6给出了一个实例中的行平稳数据流在六PE加速器上跨越两个单位时间步的详细映射和重用模式。加速器有2个PE簇,每个PE簇有3个PE。我们使用了图1中之前使用的相同的示例层。
图6 ( a )和( b )分别为行平稳数据流的以计算和数据为中心的表示。
图6 ( c )展示了映射如何跨越空间( PE簇)和时间
图6 ( d )展示了每个张量跨越两个时间步和两个簇(即时间和空间)的实际坐标。图6 ( d )中的每个彩色方框表示重复的数据点,暗示了重复利用的机会。基于复制的数据点,我们可以推断PE数组上的数据重用,如图6 ( d )中的数据重用行所示。映射在图6 ( d )中显示,同一组输入激活值在同一时间步内以偏斜的方式在两个簇中复制,这意味着在示例PE阵列的对角线方向上存在空间重用机会。类似地,图6 ( d )显示,在同一个PE中,同一组权重值在两个时间步上被复制,这意味着在单位时间步粒度上的时间重用机会和权重稳定的风格数据流。值得注意的是,尽管在图6 ( a )和( b )中定义的单位时间步中数据流是权重平稳的,但在粗粒度时间步中数据流仍然是行静态的。最后,图6 ( d )显示了每个PE簇中PE上相同的一组输出激活,这意味着每个簇中的所有PE协同生成一组输出激活数据。即一个PE簇中的每个PE对相同的输出激活产生不同的部分和,它们需要在每个PE簇中的PE之间进行累加以产生最终的输出激活值。
基于图6的实例分析,我们观察到数据复用模式与原工作[ 11 ]完全一致:对滤波器权重进行水平方向复用,对输出(部分和累积)进行垂直方向复用,对输入激活进行对角线方向复用。
综上所述,重用机会是基于跨时间或跨空间的复制数据( PE ),分别隐含了时间和空间重用机会。本节的例子表明,需要一种快速、准确的定量方法来计算复杂数据流的重用。

4 QUANTITATIVE DATAFLOW ANALYSIS

我们提出了在目标DNN模型和硬件配置上定量估计数据流的运行时间和能量效率的方法。基于该方法,我们实现了一个分析框架MAESTRO,它由5个引擎组成:张量、集群、重用、性能分析和成本分析。图7提供了五个引擎的高级概述。出于对空间的兴趣,我们只讨论高级算法,而没有边缘事例处理、多层和多个聚类层次。具体来说,我们在我们的开源知识库中进行了展示.
在这里插入图片描述

4.1 初步的引擎

  1. 张量分析 如图7所示,张量分析引擎根据指定的层操作来识别每个张量的维度耦合。例如,在深度卷积中,*输出激活不与输出通道维度耦合,而是与输入通道维度耦合。*值得注意的是,深度卷积可以通过这种方式或通过消除输入通道维度( C )来理解。我们选择这个约定,因为它符合MAESTRO 以输入为中心的成本模型。M允许用户指定具有任意维度耦合的张量,并将这种耦合关系输入到其余引擎中,为M提供了通用性.

深度卷积 理解一下

  1. 聚类分析 PE集群是指由CLUSTER指令指定的一组并行处理一个或多个数据维度的PE。图7 ( b )描述了聚类分析( CLA )引擎中的分析。CLA引擎分析数据流指令中给定的数据流描述来识别子簇的数量,提取簇数据流指令和数据维度。并针对每个集群级别,对给定的数据流描述进行缺失指令、跨步处理等扩充。
  2. 再利用分析 图7 ( b )包含了数据重用分析( RA )引擎中对分析的高层描述。RA引擎确定了跨相邻时间步的时间和空间重用量,即与最内层的非时间/空间非滚动映射指令相对应的数据迭代。

4.2 性能分析

图7 ( a )展示了性能和成本分析引擎的高级概览,图8展示了性能分析( PA )引擎的高级算法。PA引擎利用RA引擎中计算的复用信息,根据数据维度和数据流计算所有可能情况下的运行时间。将计算得到的运行时间与每个案例发生的次数相乘,累加得到总的运行时间。DNN加速器的运行时间由每个PE中的通信延迟( L2到L1 , L1到L2 ,本地转发)和计算延迟组成,它们与加速器的硬件参数直接相关。PA引擎在计算对运行时有直接贡献的延迟(通信/计算延迟的最坏情况延迟)时,考虑了双缓冲

双缓冲? 管道模型
为了估计通信延迟,MAESTRO依赖于其基于管道模型的解析片上网络( NoC )模型,类似于其他解析模型[ 30 ]。管道模型利用管道的宽度(带宽)和长度(平均延迟)两个参数来估计NoC的通信延迟。该模型考虑了流水线效应,因为许多分组交换NoC具有相似的行为。带宽和平均延迟的不同组合能够以合理的精度对NoC结构进行建模。例如,Eyeriss [ 11 ]有一个两层的层次总线,具有输入、权重和输出张量的专用通道。
因此,带宽为3X可以很好地模拟顶层NoC平均延迟取决于实现细节;用户应结合实现细节(例如,使用入出口缓冲器,每增加一个周期延迟)选择合适的值。对于更复杂的NoC结构,用户应该选择二分带宽和平均延迟,考虑从全局缓冲区对所有PE进行统一通信。例如,一个N × N的2D mesh网络,注入点在其中一个角落,对分带宽为N,平均延迟为N。假设用户有访问NoC实现信息的权限,当NoC为总线或交叉开关时,NoC模型是精确的。

4.3 成本分析

图8描述了成本分析( cost analysis,CA )引擎如何计算缓冲区访问次数,并估计每个张量的缓冲区大小需求,考虑RA引擎中计算的数据重用和数据迭代情况。MAESTRO利用接入次数和MAC操作信息数量计算能量开销。Maestro包括基于这些活动计数和Cacti [ 29 ]模拟的能量模型,可以用基于这些活动计数的任何其他能量模型(例如, Accelergy )代替。

4.4 复杂数据流分析

多聚类分析 多聚类案例可以拆分为单聚类案例,数据维度大小设置为上聚类中对应映射指令的映射大小。一个簇级的突出延迟成为上一级下一个簇级的计算延迟。为了处理影响所有较低集群级别的各种边缘情况,MAESTRO 递归地执行性能和成本分析,如图7所示。在递归分析中,基本情况是最内层的簇,其子簇是实际的PE。虽然M执行递归,但由于 PE集群级别数通常为2或3,因此复杂度并不高。值得注意的是,每个簇级别的每个边缘情况也需要递归处理。然而,在大多数情况下,我们观察到跨集群层次的边缘案例数量少于20个,仍然处于可处理的规模。

其他DNNs 虽然为了简单起见,我们使用密集卷积作为例子,但基于以数据为中心的方法的通用性,MAESTRO可以建模多种层( LSTM隐藏层、池化、全连接、转置卷积等)。我们以数据为中心的方法支持所有表示为循环嵌套的操作,其中有两个输入张量和一个输出张量,所有的张量指数在仿射函数中仅在一个或两个数据维度上耦合。MAESTRO还可以对任何支持的数据流进行均匀分布的稀疏性建模。支持更复杂的统计稀疏分布是未来的工作。

  • 26
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值