CN112612744B - 一种基于数据流解耦的可重构阵列映射方法 - Google Patents
一种基于数据流解耦的可重构阵列映射方法 Download PDFInfo
- Publication number
- CN112612744B CN112612744B CN202011471974.XA CN202011471974A CN112612744B CN 112612744 B CN112612744 B CN 112612744B CN 202011471974 A CN202011471974 A CN 202011471974A CN 112612744 B CN112612744 B CN 112612744B
- Authority
- CN
- China
- Prior art keywords
- interconnection
- decoupling
- data flow
- layout
- method based
- 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
Links
Images
Classifications
-
- 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
- G06F15/7878—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS for pipeline reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/78—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种基于数据流解耦的可重构阵列映射方法,涉及可重构阵列的映射布局领域,首先,在原始DFG(Data Flow Graph,数据流图)中执行速率失配的区域间加入DE(Decouple Element,解耦单元),对数据流进行解耦;其次,利用一种“局部紧密,全局稀疏”的分簇式互连结构,将解耦后的所述数据流分隔在若干个规则的互连区域内;最后,通过一种分布式多阶段的布局算法,对每块所述互连区域内的所述数据流进行物理布局。本发明可以提高阵列的执行效率,完成了各种类型的单元的高效映射,并提升布局的速度和质量。
Description
技术领域
本发明涉及可重构阵列的映射布局领域,尤其涉及一种基于数据流解耦的可重构阵列映射方法。
背景技术
可重构阵列由大量PE组成,每个PE以数据流驱动的模式执行操作。通过空间映射的方式,一旦输入数据有效,大量PE便可以同时并行执行。这极大地提高了阵列的计算吞吐率。
然而随着可重构阵列的应用范围扩大,当采用传统的映射方案对DFG进行直接映射时,会面临因数据流执行速率不一致而引起的执行效率下降的问题,例如非平衡路径,嵌套循环间变量交互以及访存延迟等。传统的可重构阵列映射技术主要包含全局规则的互连结构,以及以模拟退火为核心的布局算法和以布通率驱动的布线算法,这些映射方法都只考虑了DFG映射的功能正确性,并未对DFG中无法直接体现的数据流执行速率的差异性进行优化,所以并不能达到很好的映射效果。
传统可重列阵列映射过程中会遇到各区域数据流执行速率不一致的现象,常见类型包括路径不平衡,嵌套循环间变量交互和访存延迟三种。数据流执行速率失配会对阵列整体性能产生较大影响。
图2(a)展现了一个路径不平衡的例子。其中,两条路径共享相同的数据生产节点和数据汇聚节点,但是却拥有不同的执行延迟。假设短路径的执行周期为S,长路径的执行周期为L。由于汇聚节点(此例中为store节点)需要匹配来自两条路径的操作数,因此来自于短路径的数据将会填满汇聚节点的输入缓存,并最终通过背压(backpressure)机制阻塞数据生产节点。这会导致数据流的吞吐率缩减为S/L。传统的数据映射方案通常通过插入冗余PE的方式对短路径进行填充,但这会浪费用于计算的PE资源。
图2(b)展现了在嵌套循环中,内外层循环体迭代次数不一致的例子。由于外层循环在内层循环迭代执行M次后才会执行一次,因此循环变量i在内外层循环边界上会拥有不同的执行速率。这会导致内层循环的流水线停滞,直到外层循环产生下一轮迭代i+1的数据。流水线停滞引起的填充流水开销会显著影响可重构阵列的执行性能,尤其对于内层循环体较小的应用。传统映射方案通过循环交换的方式减少内层循环的迭代次数,但未能完全消除流水线停顿引起的填充流水开销。
图2(c)展现了访存操作在数据流执行中引起的执行速率不一致的情况。访存单元从片外存储请求数据时存在较长的访存延迟。当访存请求响应时,大量的数据会以猝发(burst)的方式在很短的时间内传输给PE。然而在软流水的执行模式下,PE会以恒定的速率进行计算。因此,数据访存和数据执行的速率出现不匹配,这会引起流水线阻塞并最终导致阵列吞吐率下降。若下一轮循环迭代中的访存操作需要等待当前循环中的计算结束后再触发,即使在内存带宽足够的情况下仍会造成性能损失。传统映射方案通过动态数据流乱序执行的方式隐藏访存延迟,但是会额外引入不同轮次间数据匹配的开销。
以上三种数据流执行速率失配现象都会将原始的DFG分割成具有不同执行速率的区域。在软流水的执行模式下,这些区域间的数据传递都会引起流水线停顿问题,进而显著影响阵列的执行效率。
因此,本领域的技术人员致力于开发一种映射效果好,效率高的阵列。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是如何提高执行效率,同时保证映射效果良好。
为实现上述目的,本发明提供了一种基于数据流解耦的可重构阵列映射方法,首先,在原始DFG中执行速率失配的区域间加入DE,对数据流进行解耦;其次,利用一种“局部紧密,全局稀疏”的分簇式互连结构,将解耦后的所述数据流分隔在若干个规则的互连区域内;最后,通过一种分布式多阶段的布局算法,对每块所述互连区域内的所述数据流进行物理布局。
进一步地,加入所述DE,包括,在短路径上加入所述DE作为缓存进行延时;在内外层循环间加入所述DE对循环变量进行缓存;在访存单元和执行单元间插入一个具有灵活流水线级数的DE作为解耦合空间。
进一步地,所述DE的输入输出可以根据配置设定为PE(Processing Element,执行单元),当用作解耦访存延迟时,所述DE从所述PE接收访存地址并发送给存储系统;为了维持访存顺序,在所述DE中设置一个范围和内部缓存大小相等的自加器,为每一个访存请求标记一个tag,并将所述访存得到的数据按照所述tag存入内部缓存中相应的条目(entry)。此外,可以通过配置DE的输入/输出为其它DE,将多个DE串接起来以满足不同应用场景下对缓存容量的需求。
进一步地,可以通过配置所述DE的输入/输出为其它所述DE,将多个所述DE串接起来以满足不同应用场景下对缓存容量的需求。
进一步地,所述分簇式互连结构是将整个阵列的互连网络划分成簇,并在簇内和簇间提供不同互连结构的形式。
进一步地,所述互联结构的形式是指,对于一个传统结构的PE阵列,将其分割成特定大小的若干簇,每个所述PE都和簇内其它的所述PE互连;而簇间只提供少量的互连线。
进一步地,所述分布式多阶段映射算法包括以下步骤:
步骤1、根据解耦后的所述DFG区域的大小和数量分别确定所需互连簇的大小和数量;
步骤2、将解耦后的所述DFG按照设定簇的大小进行拆分,并通过所述步骤1的布局算法确定簇内所述PE间的互连;
步骤3、通过所述步骤2算法确定各个簇在阵列上的实际布局以及簇间所述PE和所述DE之间的互连,并最终得出完整的所述DFG映射方案。
进一步地,所述分布式多阶段映射算法的数据传递的节点间的最大传输延时限制在一个时钟周期之内,为了避免不同路径的互联线传输延时的差异,在布局算法中加入了节点间最大路径长度的约束。
进一步地,所述分布式多阶段映射算法采用的是模拟退火算法,其中的主要参数分别是模拟退火参数和代价函数。每个温度点移动数目参数Lk和退火终止条件公式如下所示:
其中,Lk表示每个温度点进行交换与移动的次数,Nblocks表示当前布局的总节点数,μ取经验值10。第二个式子中,T表示当前退火温度,Cost表示代价函数的函数值,Nnets表示DFG中节点间的互连数目,ε取经验值0.005;
温度衰减函数仿照热力学公式和线性衰减函数设计如下所示:
其中Tk表示第k次迭代的温度,I表示当前迭代的交换已进行次数,σ表示当前迭代中接受交换后得到的所有Cost值的标准差,δ表示本次迭代和上一次迭代Cost值的变化量的绝对值,为0说明布局没有变化。
进一步地,所述互连代价函数,是指,
Cost=WireNum+λ1WireLength+λ2Conflix
其中,Cost表示代价函数的函数值,WireNum表示两点之间的图距离,WireLength表示两点之间的棋盘距离,MaxWireLength表示阵列上最远的两个单元之间的棋盘距离,表示端口使用冲突大小的总和。这样当图距离更短时,选择最少线数的互连路线;当图距离长度相同时,选择最短线长的互连路线;λ2取经验值0.01。
本专利针对传统可重列阵列映射过程中遇到的各区域数据流执行速率不一致的三类现象,通过在DFG中执行速率失配的区域间加入解耦单元,对数据流进行解耦,从而提高阵列的执行效率。针对解耦后的数据流图,通过分簇式互连结构,实现区域内的紧密互连和区域间的高效互连,保证单元利用率并控制互连开销。针对解耦后的数据流图,通过分布式多阶段映射算法,完成各种类型的单元的映射,并提升布局速度和质量。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是本发明的一个较佳实施例的基于数据流解耦的映射流程;
图2是本发明的一个较佳实施例的三种常见的数据流执行速率失配现象:(a)路径不平衡;(b)嵌套循环间变量交互;(c)访存延迟;
图3是本发明的一个较佳实施例的通过加入解耦单元对(a)路径不平衡;(b)嵌套循环间变量交互;(c)访存延迟进行数据流解耦;
图4是本发明的一个较佳实施例的DE解耦单元内部结构图。
具体实施方式
以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。
专利提出的基于数据流解耦的可重构阵列映射方法核心技术主要包括两点:加入解耦单元对进行解耦,解决DFG子区域间执行速率失配的问题;其次,提出一种基于分簇式的互连结构,将解耦后的数据流分隔在若干个规则的互连区域内,使互连复杂度高的区域内部有丰富的互连资源,互连需求低的区域间提供灵活稀疏的资源;最后,通过一种分布式多阶段的布局算法,对每块互连区域内的数据流进行物理布局,解决传统模拟退火算法在面对大量异构资源的阵列时难以收敛到高质量布局的问题。
用一个例子来说明,如图1所示,将一个数据流图布局到一个阵列中。首先分析数据流的执行速率情况,是否存在路径不平衡等现象,在图1示例中可以发现,对于数据a的两条传输路径,到“-”操作的延时不同,在执行速率上存在差异。所以,需要在较短的那条路径上加入一个解耦单元作为缓存进行延时,使得路径平衡。
接下来,需要把数据流图中的各个单元映射到阵列的某个位置上。阵列为一个常见异构阵列,阵列资源包括PE和DE,如图4所示。其中PE是阵列中数量最多的单元,DE则规则地分布在PE周围。对于阵列的互连资源,簇内的各PE之间互相都存在互连线,不同簇之间相同对应位置的PE也存在互连线,这样既满足了簇内的互连需求,又保证了簇间的潜在互连需求,同时又能控制整个阵列的互连资源开销不会过高。同时,PE和簇周围相邻的DE也存在互连线。
具体的映射过程采用分布式多阶段映射算法,首先,分析解耦后的数据流图可以发现,它们需要分割成两个区域,每个区域分别映射到一个簇内,中间通过一个解耦单元连接起来。然后,先将这两部分随机映射到阵列上的某两个簇内,并通过第一阶段布局算法确定簇内PE间的互连(PE在簇内的具体映射位置)。之后,通过第二阶段布局算法,确定两个簇在阵列上的实际布局位置以及簇间PE和DE之间的互连(DE具体的映射位置)。最后的布局结果如图1所示。两个阶段的布局算法都采用模拟退火算法,代价函数综合考虑了连接单元在阵列中的棋盘距离(互连最短线长)和图距离(互连最少线数),以及bypass端口使用的冲突情况。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (7)
1.一种基于数据流解耦的可重构阵列映射方法,其特征在于,首先,在原始DFG中执行速率失配的区域间加入DE,对数据流进行解耦;其次,利用一种“局部紧密,全局稀疏”的分簇式互连结构,将解耦后的所述数据流分隔在若干个规则的互连区域内;最后,通过一种分布式多阶段的布局算法,对每块所述互连区域内的所述数据流进行物理布局;
所述分簇式互连结构是指对于一个传统结构的PE阵列,将其分割成特定大小的若干簇,每个所述PE都和簇内其它的PE互连;而簇间只提供少量的互连线;
所述分布式多阶段的布局算法包括以下步骤:
步骤1、根据解耦后的所述DFG区域的大小和数量分别确定所需互连簇的大小和数量;
步骤2、将解耦后的所述DFG按照设定簇的大小进行拆分,并通过所述步骤1确定簇内所述PE间的互连;
步骤3、通过所述步骤2确定各个簇在阵列上的实际布局以及簇间所述PE和所述DE之间的互连,并最终得出完整的所述DFG映射方案;
所述DFG是指数据流图,所述DE指解耦单元,所述PE指执行单元。
2.如权利要求1所述的基于数据流解耦的可重构阵列映射方法,其特征在于,加入所述DE,包括,在短路径上加入所述DE作为缓存进行延时;在内外层循环间加入所述DE对循环变量进行缓存;在访存单元和执行单元间插入一个具有灵活流水线级数的DE作为解耦合空间。
3.如权利要求2所述的基于数据流解耦的可重构阵列映射方法,其特征在于,所述DE的输入输出根据配置设定为PE,当用作解耦访存延迟时,所述DE从所述PE接收访存地址并发送给存储系统;为了维持访存顺序,在所述DE中设置一个范围和内部缓存大小相等的自加器,为每一个访存请求标记一个tag,并将所述访存得到的数据按照所述tag存入内部缓存中相应的条目(entry);此外,通过配置DE的输入/输出为其它DE,将多个DE串接起来以满足不同应用场景下对缓存容量的需求;所述tag指判断访存顺序的标志位。
4.如权利要求3所述的基于数据流解耦的可重构阵列映射方法,其特征在于,所述分簇式互连结构是将整个阵列的互连网络划分成簇,并在簇内和簇间提供不同互连结构的形式。
5.如权利要求4所述的基于数据流解耦的可重构阵列映射方法,其特征在于,所述分布式多阶段的布局算法的数据传递的节点间的最大传输延时限制在一个时钟周期之内,为了避免不同路径的互联线传输延时的差异,在布局算法中加入了节点间最大路径长度的约束。
6.如权利要求5所述的基于数据流解耦的可重构阵列映射方法,其特征在于,所述分布式多阶段的布局算法采用的是模拟退火算法,其中的主要参数分别是模拟退火参数和代价函数;每个温度点移动数目参数Lk和退火终止条件公式如下所示:
其中,Lk表示每个温度点进行交换与移动的次数,Nblocks表示当前布局的总节点数,μ取经验值10;第二个式子中,T表示当前退火温度,Cost表示代价函数的函数值,Nnets表示DFG中节点间的互连数目,ε取经验值0.005;
温度衰减函数仿照热力学公式和线性衰减函数设计如下所示:
其中,Tk表示第k次迭代的温度,I表示当前迭代的交换已进行次数,σ表示当前迭代中接受交换后得到的所有Cost值的标准差,δ表示本次迭代和上一次迭代Cost值的变化量的绝对值,为0说明布局没有变化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011471974.XA CN112612744B (zh) | 2020-12-14 | 2020-12-14 | 一种基于数据流解耦的可重构阵列映射方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011471974.XA CN112612744B (zh) | 2020-12-14 | 2020-12-14 | 一种基于数据流解耦的可重构阵列映射方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112612744A CN112612744A (zh) | 2021-04-06 |
CN112612744B true CN112612744B (zh) | 2022-11-25 |
Family
ID=75233956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011471974.XA Active CN112612744B (zh) | 2020-12-14 | 2020-12-14 | 一种基于数据流解耦的可重构阵列映射方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112612744B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115098233B (zh) * | 2022-06-24 | 2024-05-28 | 上海交通大学 | 缓存分区感知的调度方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110941451A (zh) * | 2019-10-23 | 2020-03-31 | 中国科学院计算技术研究所 | 一种数据流处理器指令映射方法及系统、装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9170812B2 (en) * | 2002-03-21 | 2015-10-27 | Pact Xpp Technologies Ag | Data processing system having integrated pipelined array data processor |
US20110238948A1 (en) * | 2002-08-07 | 2011-09-29 | Martin Vorbach | Method and device for coupling a data processing unit and a data processing array |
US20160246602A1 (en) * | 2015-02-19 | 2016-08-25 | Arizona Board Of Regents On Behalf Of Arizona State University | Path selection based acceleration of conditionals in coarse grain reconfigurable arrays (cgras) |
US20190101952A1 (en) * | 2017-09-30 | 2019-04-04 | Intel Corporation | Processors and methods for configurable clock gating in a spatial array |
CN110034920B (zh) * | 2019-04-09 | 2023-03-31 | 中国人民解放军战略支援部队信息工程大学 | 粗粒度可重构密码逻辑阵列的映射方法及装置 |
CN111291529B (zh) * | 2020-02-12 | 2024-02-02 | 上海交通大学 | 一种基于多阶段模拟退火的静态异构可重构阵列布局方法 |
CN111475205B (zh) * | 2020-03-02 | 2023-03-17 | 上海交通大学 | 一种基于数据流解耦合的粗粒度可重构阵列结构设计方法 |
-
2020
- 2020-12-14 CN CN202011471974.XA patent/CN112612744B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110941451A (zh) * | 2019-10-23 | 2020-03-31 | 中国科学院计算技术研究所 | 一种数据流处理器指令映射方法及系统、装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112612744A (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3607503B1 (en) | Task activating for accelerated deep learning | |
EP3607504B1 (en) | Neuron smearing for accelerated deep learning | |
CN104798062B (zh) | 包含具有多层互连的散布的处理器的处理系统 | |
US9294097B1 (en) | Device array topology configuration and source code partitioning for device arrays | |
US7210112B2 (en) | Element placement method and apparatus | |
US7818725B1 (en) | Mapping communication in a parallel processing environment | |
US7305649B2 (en) | Automatic generation of a streaming processor circuit | |
TWI779355B (zh) | 用於可重組態資料處理器的效能估計式資源分配 | |
JP2011503710A (ja) | しっかりと連結されたマルチプロセッサのための共有メモリ・システム | |
TWI781441B (zh) | 在具有目標架構的可重組態資料處理器上高效執行運算單元圖的方法、非暫態電腦可讀儲存媒體及系統 | |
WO2022199459A1 (zh) | 一种可重构处理器及配置方法 | |
CN105740199A (zh) | 芯片上网络的时序功率估算装置与方法 | |
CN111630487A (zh) | 用于神经网络处理的共享存储器的集中式-分布式混合组织 | |
CN112612744B (zh) | 一种基于数据流解耦的可重构阵列映射方法 | |
CN107506329A (zh) | 一种自动支持循环迭代流水线的粗粒度可重构阵列及其配置方法 | |
CN111079078A (zh) | 面向结构网格稀疏矩阵的下三角方程并行求解方法 | |
CN114398308A (zh) | 基于数据驱动粗粒度可重构阵列的近内存计算系统 | |
JP2005135411A (ja) | カスタム回路デバイスの設計方法 | |
CN110222007A (zh) | 一种基于申威众核处理器的加速运行方法 | |
CN114003201A (zh) | 矩阵变换方法、装置及卷积神经网络加速器 | |
Ashby et al. | The impact of global communication latency at extreme scales on Krylov methods | |
CN116171431A (zh) | 用于加速器中多个并行数据路径通道的存储体式存储器架构 | |
CN109587080A (zh) | 一种基于拓扑划分的片上网络快速映射算法 | |
JP2005531843A (ja) | アレイプロセッサにおける除算 | |
CN103150461B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |