CN105867994A - 一种用于粗粒度可重构架构编译器的指令调度优化方法 - Google Patents

一种用于粗粒度可重构架构编译器的指令调度优化方法 Download PDF

Info

Publication number
CN105867994A
CN105867994A CN201610248465.8A CN201610248465A CN105867994A CN 105867994 A CN105867994 A CN 105867994A CN 201610248465 A CN201610248465 A CN 201610248465A CN 105867994 A CN105867994 A CN 105867994A
Authority
CN
China
Prior art keywords
node
processing unit
basic processing
data flow
flow diagram
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
Application number
CN201610248465.8A
Other languages
English (en)
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.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
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 Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201610248465.8A priority Critical patent/CN105867994A/zh
Publication of CN105867994A publication Critical patent/CN105867994A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明提供了一种用于粗粒度可重构架构编译器的指令调度优化方法,包括:配置一种遵循全局同步性的多层异构粗粒度可重构处理器架构;并且,将待配置指令的数据流图针对所述多层异构粗粒度可重构处理器架构进行相应优化。

Description

一种用于粗粒度可重构架构编译器的指令调度优化方法
技术领域
本发明涉及可重构计算领域,涉及可重构处理器的并行计算、可重构处理器的编译流程;更具体地说,本发明涉及一种用于粗粒度可重构架构编译器的指令调度优化方法。
背景技术
可重构处理器是为了满足信息时代人们对计算速度和计算通用性需求的重要产物,它兼备了通用处理器和专用集成电路ASIC的优势。典型的粗粒度可重构处理器由主控制器、主存DDR(Double Data Rate)和可重构处理单元(Reconfigurable Processing Units,RPU)构成,各个部分之间的数据传输通过总线实现。主控制器用来运行操作系统,负责整个系统资源的调度。当一个计算任务在可重构处理器上运行时,编译器会将任务代码进行软硬件划分。软硬件划分是指将程序代码划分成在通用处理器上运行的串行代码(软件部分)与在可重构处理单元上运行的代码(硬件部分)。划分出来的串行代码通过普通的编译器便可以将其编译成可执行代码。而另一部分则要经过另外的特殊的编译流程之后生成可重构处理单元上相应的配置信息。可重构处理单元通常包含若干个可重构阵列(Processing Element Array,PEA),每个阵列包含方阵形式排列的基本处理单元(PE),每一个基本处理单元可执行字级的算术或者逻辑操作,PE之间可经由路由(route)互相通信。可重构阵列中配置信息的生成方法则是可重构计算编译器研究的重点。
针对如何自动并且高效地将并行配置信息映射到可重构处理单元上,国内外编译器领域的学者自从2002年起就提出了不同的方法。一些学者提出了一种基于模拟退火思想的以点为中心的调度算法,这种算法的性能十分优异,甚至不逊于最近出现的几种CGRA编译器,但是当处理循环体中含有大量操作的代码时,数据流图(Data Flow Graph,DFG)中待配置的点过多,编译时间会明显增加。后来一些学者提出以边为中心的调度算法,改善了编译性能,然而处理器性能却不如以点为中心的调度算法。之后出现的图匹配算法,核心思想是根据相应可重构处理单元的硬件结构对数据流图进行简单修改,并根据可重构阵列的路由关系和数据流图的拓扑关系找到合理的调度配置方案。从这些研究中可以看出,大多数调度算法在将数据流图映射到可重构阵列上之前缺少对数据流图的系统分析和优化,数据流图结构与可重构阵列结构并不完全适配,影响了运算性能,同时这些算法时间复杂度较高,编译时间也比较长。
发明内容
本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种能够优化配置到可重构运算阵列上的指令流图,减少配置过程对硬件资源的浪费的用于粗粒度可重构架构编译器的指令调度优化方法。
为了实现上述技术目的,根据本发明,提供了一种用于粗粒度可重构架构编译器的指令调度优化方法,包括:配置一种遵循全局同步性的多层异构粗粒度可重构处理器架构;并且,将待配置指令的数据流图针对所述多层异构粗粒度可重构处理器架构进行相应优化。
优选地,所述多层异构粗粒度可重构处理器架构包括:单个主控制器、主存储器以及多个可重构处理单元;单个主控制器、主存储器和以及多个可重构处理单元均通过AHB总线进行通信;每个可重构处理单元包含负责搬运配置包的单个协控制器、四个共享内存以及四个可重构运算阵列;其中,四个共享内存以及四个可重构运算阵列围绕单个协控制器间隔排布;每个共享内存的存储数据可以被相邻的两个可重构运算阵列访问;每个可重构运算阵列以方阵形式排列多个基本运算单元,各个基本运算单元之间按照预定的路由关系进行通信。
优选地,主控制器、协控制器和可重构运算阵列三者的内存空间是独立的,不能直接进行相互访问;每当处理器接到一个运算任务,主控制器负责执行串行代码,协控制器将运算数据由主存储器搬运到共享内存,同时将并行代码由编译器生成的配置包搬运到可重构运算阵列中,配置在可重构运算阵列上流水执行。
优选地,可重构运算阵列的多个基本运算单元以二维网络的形式排列,基本运算单元间通过路由器相互访问;而且一个基本运算单元可以访问其他基本运算单元在上一个周期的计算结果,但是只能访问与自身直线距离不超过2的基本运算单元。
优选地,可重构运算阵列中的元操作遵循全局同步性,所有基本运算单元同时开始运算,在所有基本运算单元不是同时完成运算的情况下,先完成运算的基本运算单元需要等待最后一个基本运算单元完成,使得从宏观上来看,所有的基本运算单元都是同步执行元操作。
优选地,基本运算单元在当前周期的运算结果只能在下个周期内被自身和其路由到的基本运算单元调用,不能存储更多周期;而且,基本运算单元自身的寄存器内的数据不能被其他基本运算单元调用,只能自身调用。
优选地,所述将待配置指令的数据流图针对所述多层异构粗粒度可重构处理器架构进行相应优化的步骤包括:
针对数据流图中的高扇出节点,添加一个高扇出节点的镜像节点;而且在存在多种添加镜像节点的方案时,优先选取在数据流图的非关键路径上添加镜像节点的方案。
优选地,所述将待配置指令的数据流图针对所述多层异构粗粒度可重构处理器架构进行相应优化的步骤包括:
对于数据流图中的节点u和其任意一个后继节点v,计算连接它们的边的长度:G(u,v)=Tv-Tu-1;其中Tv表示节点v的机器周期数,Tu表示节点u的机器周期数;若G(u,v)>0,则在节点u之后补足数量相当于G(u,v)值的记忆节点。
优选地,所述将待配置指令的数据流图针对所述多层异构粗粒度可重构处理器架构进行相应优化的步骤包括:
在将数据流图映射到可重构运算阵列之前的最后一步,计算映射算法中的机器周期TMv:TMv=Tv mod II;其中Tv表示节点v的机器周期数,II是调度算法的迭代间隔;采用Sumi表示满足TMv=i的节点v的数量,i的取值范围为0到II-1;当数据流图不满足约束Smax=max{Sum0,Sum1,…,Sumi-1}<=N时,其中N表示可重构运算阵列中的节点数量,则在不改变II的前提下进行重新分配每个节点的周期,而且在所有的分配方案均无法满足约束的情况下,则使得II递增。
附图说明
结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
图1示意性地示出了根据本发明优选实施例的用于粗粒度可重构架构编译器的指令调度优化方法
图2示意性地示出了可重构运算阵列中单个基本运算单元的路由示意图。
图3a示意性地示出了根据本发明优选实施例的一个未经优化的数据流图示例。
图3b示意性地示出了根据本发明优选实施例的在扇出优化时在4、5节点前插入镜像节点。
图3c示意性地示出了根据本发明优选实施例的在扇出优化时在2、3节点前插入镜像节点。
图4a示意性地示出了根据本发明优选实施例的数据流图平衡过程示例中的未平衡的数据流图。
图4b示意性地示出了根据本发明优选实施例的数据流图平衡过程示例中的添加记忆节点的数据流图。
图4c示意性地示出了根据本发明优选实施例的数据流图平衡过程示例中的消除冗余记忆节点的数据流图。
图5示意性地示出了根据本发明优选实施例的具体示例的简化的可重构运算阵列路由模型。
需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
具体实施方式
为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。
基于对现状的分析,本发明提出一种全新的粗粒度可重构编译器的指令调度优化方法,具体从以下两方面内容展开。
1.配置一种遵循全局同步性的多层异构粗粒度可重构处理器架构
本发明采用了一种全新架构的粗粒度可重构处理器,它包含三层异构结构如图1所示。
首先,多层异构粗粒度可重构处理器架构包括:单个主控制器100(例如,主控制器由ARM11核实现)、主存储器200以及多个可重构处理单元(RPU)(图1中示出了第一可重构处理单元31和第二可重构处理单元32)。
单个主控制器100、主存储器200和以及多个可重构处理单元均通过AHB(Advanced High performance Bus)总线进行通信。
每个可重构处理单元包含负责搬运配置包的单个协控制器(例如,每个协控制器由ARM7核实现)、四个共享内存(SM1、SM2、SM3、SM4)以及四个可重构运算阵列(PEA1、PEA2、PEA3、PEA4)。其中,四个共享内存以及四个可重构运算阵列围绕单个协控制器间隔排布。
由此可以看出,整个处理器架构包含三层运算模块:主控制器100、协控制器和可重构处理单元。
每个共享内存的存储数据可以被相邻的两个可重构运算阵列访问,以便于流水化地执行并行任务。
每个可重构运算阵列以方阵形式排列多个基本运算单元(图1中示出了16个基本运算单元的情况),各个基本运算单元之间可以按照一定的路由关系进行通信。
其中,主控制器100、协控制器和可重构运算阵列三者的内存空间都是独立的,不能直接进行相互访问。每当处理器接到一个运算任务,主控制器100负责执行串行代码,协控制器将运算数据由主存储器搬运到共享内存,同时将并行代码由编译器生成的配置包搬运到可重构运算阵列中,配置在可重构运算阵列上流水执行。三层结构分工合作,并行完成一套可并行任务。
该处理器架构的可重构运算阵列有三个显著特征:
(1)可重构运算阵列上16个基本运算单元以二维网络的形式排列,基本运算单元间通过路由器(Router)相互访问,一个基本运算单元可以访问其他基本运算单元在上一个周期的计算结果,但可访问的基本运算单元有限,只能访问与自身直线距离不超过2的基本运算单元(假设相邻两个基本运算单元之间距离为1),具体参见图2,附图标记1至16分别表示一个基本运算单元。
(2)可重构运算阵列中元操作(包含算术运算、逻辑运算及访存运算)遵循全局同步性,所有基本运算单元同时开始运算,但并不是同时完成运算,此时先完成运算的基本运算单元需要等待最后一个基本运算单元完成,即从宏观上来看,所有的基本运算单元都是同步执行元操作,称为全局同步性。在这种运算机制下,基本运算单元运算的时间不再以处理器时钟周期为单位,而代之以“机器周期”为单位。机器周期的具体含义是,从所有基本运算单元同时开始运算的时间点开始,到最后的基本运算单元完成运算,之间经过的时间算作一个机器周期。全局同步性的使用是考虑到基本运算单元访存只需到临近的共享内存中读写,花费的时钟周期数与一般的算术、逻辑操作相近,不再是以往的处理器架构中通过总线访问主存储器200,需要耗费大量时间。基于此,花费时间较长的浮点数操作将不被该处理器支持,需将浮点运算作定点近似后方可。下文中所有的周期若未特别说明,均指机器周期。
(3)基本运算单元在当前周期的运算结果只能在下个周期内被自身和其路由到的基本运算单元调用,不能存储更多周期。基本运算单元自身虽有多个局部寄存器可以存储结果,但是寄存器内的数据不能被其他基本运算单元调用,只能自身调用。
2.将待配置指令的数据流图针对硬件架构进行了相应优化
粗粒度可重构处理器中可重构运算阵列的指令调度和配置过程实质上是将指令数据流图(Data Flow Graph,DFG)中的每个节点映射到可重构运算阵列上各个基本运算单元的过程。在此,定义迭代间隔(Initial Interval,II)为可重构运算阵列执行完一次数据流图中同一优先级所有节点所需要的周期数。显然,迭代间隔值一方面取决于数据流图中指令节点的数量及指令间的依赖关系,另一方面也取决于可重构运算阵列中基本运算单元的个数和它们之间的路由关系,在硬件结构固定的情况下,尽可能的优化数据流图、均摊各个优先级的节点数量才能节省计算资源,获得更高的运算性能。
本发明在机器周期的概念下重新计算数据流图中每个节点的四个调度属性,分别为ALAP(该节点指令可被调度执行的最晚时间),ASAP(该节点指令可被调度执行的最早时间),MOB(表征该节点相对于关键路径的偏斜程度)和DEPTH(表征节点依赖关系的深度,间接表征优先级)。根据这四个关键属性,借助相关文献中的算法对数据流图进行初步的时间维度调度,为每个节点指定其运行的机器周期。一个简单的数据流图示例可参见图3a。接下来,本发明对这个初步生成的数据流图进行一系列调整优化。
(1)扇出约束检测
数据流图中的某些节点有多个后继节点,可能会超过可重构运算阵列中单个基本运算单元可路由到的基本运算单元个数,满足这种情况的节点在此称为“高扇出节点”,这种节点的存在将会对整个调度产生非常不利的影响。针对数据流图中的高扇出节点,在此采用“分流”的思想,通过添加一个高扇出节点的镜像节点的方式,减少原始节点的扇出。当存在多种添加镜像节点的方案时,优先选取在原数据流图的非关键路径上添加的方案,以避免关键路径的延长导致对计算资源的浪费。具体实现时,根据节点的MOB属性,优先选取MOB较大的节点。如图3b和图3c所示,在关键路径上添加镜像节点会使关键路径变长,不利于之后的调度。
(2)平衡处理及清除冗余
解决高扇出节点的问题后,需要对数据流图作平衡处理,这是考虑到该CGRA架构中,基本运算单元的运算结果不可记忆,只能在下一个周期中被其路由到的节点访问。一个平衡的数据流图满足:对于任意的节点v,其前驱节点和后继节点执行的周期数与v的周期数之差不超过1,对于不满足平衡条件的节点,需要在相应周期补足记忆节点,记忆节点实现的操作是输入原样传输到输出,相当于将基本运算单元的运算结果记忆一个周期。对于数据流图中的节点u和其任意一个后继节点v,计算连接它们的边的长度:
G(u,v)=Tv-Tu-1 (1)
其中Tv表示节点v的机器周期数,Tu表示节点u的机器周期数,若G(u,v)>0,则表明数据流图在节点u处不平衡,需要在节点u之后补足数量相当于G(u,v)值的记忆节点。如图4a所示是一个未经平衡的数据流图,节点1与节点3、4之间均存在不平衡关系,此时需要插入记忆节点,以便节点1的运算结果可以被节点3、4获取到,如图4b所示。
平衡后的数据流图添加了大量的记忆节点,细看之下不难发现其实存在记忆节点的冗余。假如两个记忆节点的输入也即前驱节点为同一个节点,那么这两个节点可以合并为一个节点,实现资源的共享。图4b中mc-1周期插入的两个记忆节点可以合并为1个,如图4c所示。
(3)空间约束检测
将数据流图映射到可重构运算阵列之前的最后一步,需要解决数据流图的空间约束问题。在此用Tv表示数据流图中节点v的机器周期数,TMv表示映射算法中的机器周期,则有
TMv=Tv mod II (2)
式中II是调度算法的迭代间隔。在此基础上,在此用Sumi表示满足TMv=i的节点v的数量(i的取值范围为0到II-1),那么当且仅当Smax=max{Sum0,Sum1,…,Sumi-1}<=N时当前数据流图满足空间约束,其中N表示可重构运算阵列中的节点数量。当数据流图不满足此约束时,说明某个周期需要执行的操作太多,可重构运算阵列不能提供足够的基本运算单元进行并行计算,此时需要在不改变II的前提下进行重新分配每个节点的周期,若所有的分配方案均无法满足约束,则需要令II增加,再重复上一过程,整个调整过程的算法可以用以下的伪代码表示。算法中的MII表示理论计算的II最小值,也是算法开始执行时默认的II值。
算法1调整空间约束
与现有技术相比,本发明包含以下的创新点和有益效果:
1.本发明采用了一种全新的多层异构粗粒度可重构处理架构,这种架构中的可重构阵列具有全局同步性特点,使得所有运算操作的延时在宏观上相同。这种同步机制避免了在生成待配置的指令数据流图时,由于延时不同而引入多余的的路由节点,进一步节省了硬件资源,提高了处理器的运算性能。
2.本发明提出了一套完整的系统化方法优化配置到可重构阵列上的数据流图,主要从调整节点扇出、平衡数据流图、减少冗余节点、满足硬件约束等方面入手,优化的策略更多地考虑了与硬件资源的匹配,最大程度地减少了资源的浪费。
<具体示例>
为了方便讨论,实施例中简化CGRA中的可重构运算阵列模型,如图5所示,对基本运算单元数量和路由关系均作了相应简化(其中仅仅包含四个基本运算单元PE1、PE2、PE3和PE4),但是其他关键的运算、存储机制保持与原硬件架构相同。以这个简化模型为参考,对图4a的数据流图进行相应优化,具体的优化步骤如下。
(1)首先计算各个节点的ASAP、ALAP、MOB和DEPTH属性,如表1所示。
表1数据流图各个节点属性
(2)检测是否满足扇出约束。该模型中每个基本运算单元有2个路由节点,加上自身,模型允许的最大扇出是3。另一方面,数据流图中扇出最多的节点1的扇出也为3,因此满足扇出约束,不必进行优化。
(3)对数据流图进行平衡优化。按照式(1),计算图中各条边(即各个依赖关系)的长度,如表2所示。
表2数据流图依赖边长度计算
依赖边 长度 依赖边 长度
G(1,2) 0 G(2,3) 0
G(1,3) 1 G(3,4) 0
G(1,4) 2 G(5,4) 0
可见G(1,3)和G(1,4)存在不平衡,因此需插入一定量的记忆节点进行平衡,插入后的数据流图如图4b所示。进一步清除冗余节点后,数据流图如图图4c所示。
(4)空间约束优化。将图4c的数据流图与图5的可重构运算阵列模型进行简单分析,可得MII=2,记为算法1执行时的初始输入II。将II值与数据流图代入到算法1进行计算,可得最终每个节点的配置周期。由于实施例中约束较容易满足,因此最终结果仍然如图4c所示。
需要说明的是,除非特别说明或者指出,否则说明书中的术语“第一”、“第二”、“第三”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

Claims (9)

1.一种用于粗粒度可重构架构编译器的指令调度优化方法,其特征在于包括:配置一种遵循全局同步性的多层异构粗粒度可重构处理器架构;并且,将待配置指令的数据流图针对所述多层异构粗粒度可重构处理器架构进行相应优化。
2.根据权利要求1所述的用于粗粒度可重构架构编译器的指令调度优化方法,其特征在于,所述多层异构粗粒度可重构处理器架构包括:单个主控制器、主存储器以及多个可重构处理单元;单个主控制器、主存储器和以及多个可重构处理单元均通过AHB总线进行通信;每个可重构处理单元包含负责搬运配置包的单个协控制器、四个共享内存以及四个可重构运算阵列;其中,四个共享内存以及四个可重构运算阵列围绕单个协控制器间隔排布;每个共享内存的存储数据可以被相邻的两个可重构运算阵列访问;每个可重构运算阵列以方阵形式排列多个基本运算单元,各个基本运算单元之间按照预定的路由关系进行通信。
3.根据权利要求2所述的用于粗粒度可重构架构编译器的指令调度优化方法,其特征在于,主控制器、协控制器和可重构运算阵列三者的内存空间是独立的,不能直接进行相互访问;每当处理器接到一个运算任务,主控制器负责执行串行代码,协控制器将运算数据由主存储器搬运到共享内存,同时将并行代码由编译器生成的配置包搬运到可重构运算阵列中,配置在可重构运算阵列上流水执行。
4.根据权利要求2或3所述的用于粗粒度可重构架构编译器的指令调度优化方法,其特征在于,可重构运算阵列的多个基本运算单元以二维网络的形式排列,基本运算单元间通过路由器相互访问;而且一个基本运算单元可以访问其他基本运算单元在上一个周期的计算结果,但是只能访问与自身直线距离不超过2的基本运算单元。
5.根据权利要求2或3所述的用于粗粒度可重构架构编译器的指令调度优化方法,其特征在于,可重构运算阵列中的元操作遵循全局同步性,所有基本运算单元同时开始运算,在所有基本运算单元不是同时完成运算的情况下,先完成运算的基本运算单元需要等待最后一个基本运算单元完成,使得从宏观上来看,所有的基本运算单元都是同步执行元操作。
6.根据权利要求2或3所述的用于粗粒度可重构架构编译器的指令调度优化方法,其特征在于,基本运算单元在当前周期的运算结果只能在下个周期内被自身和其路由到的基本运算单元调用,不能存储更多周期;而且,基本运算单元自身的寄存器内的数据不能被其他基本运算单元调用,只能自身调用。
7.根据权利要求1至3之一所述的用于粗粒度可重构架构编译器的指令调度优化方法,其特征在于,所述将待配置指令的数据流图针对所述多层异构粗粒度可重构处理器架构进行相应优化的步骤包括:
针对数据流图中的高扇出节点,添加一个高扇出节点的镜像节点;而且在存在多种添加镜像节点的方案时,优先选取在数据流图的非关键路径上添加镜像节点的方案。
8.根据权利要求1至3之一所述的用于粗粒度可重构架构编译器的指令调度优化方法,其特征在于,所述将待配置指令的数据流图针对所述多层异构粗粒度可重构处理器架构进行相应优化的步骤包括:
对于数据流图中的节点u和其任意一个后继节点v,计算连接它们的边的长度:G(u,v)=Tv-Tu-1;其中Tv表示节点v的机器周期数,Tu表示节点u的机器周期数;若G(u,v)>0,则在节点u之后补足数量相当于G(u,v)值的记忆节点。
9.根据权利要求1至3之一所述的用于粗粒度可重构架构编译器的指令调度优化方法,其特征在于,所述将待配置指令的数据流图针对所述多层异构粗粒度可重构处理器架构进行相应优化的步骤包括:
在将数据流图映射到可重构运算阵列之前的最后一步,计算映射算法中的机器周期TMv:TMv=Tv mod II;其中Tv表示节点v的机器周期数,II是调度算法的迭代间隔;采用Sumi表示满足TMv=i的节点v的数量,i的取值范围为0到II-1;当数据流图不满足约束Smax=max{Sum0,Sum1,…,Sumi-1}<=N时,其中N表示可重构运算阵列中的节点数量,则在不改变II的前提下进行重新分配每个节点的周期,而且在所有的分配方案均无法满足约束的情况下,则使得II递增。
CN201610248465.8A 2016-04-20 2016-04-20 一种用于粗粒度可重构架构编译器的指令调度优化方法 Pending CN105867994A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610248465.8A CN105867994A (zh) 2016-04-20 2016-04-20 一种用于粗粒度可重构架构编译器的指令调度优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610248465.8A CN105867994A (zh) 2016-04-20 2016-04-20 一种用于粗粒度可重构架构编译器的指令调度优化方法

Publications (1)

Publication Number Publication Date
CN105867994A true CN105867994A (zh) 2016-08-17

Family

ID=56633643

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610248465.8A Pending CN105867994A (zh) 2016-04-20 2016-04-20 一种用于粗粒度可重构架构编译器的指令调度优化方法

Country Status (1)

Country Link
CN (1) CN105867994A (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569968A (zh) * 2016-11-09 2017-04-19 天津大学 用于可重构处理器的阵列间数据传输结构与调度方法
CN107679010A (zh) * 2017-09-20 2018-02-09 东南大学 一种面向可重构计算阵列的算子映射系统及方法
CN108052347A (zh) * 2017-12-06 2018-05-18 北京中科睿芯智能计算产业研究院有限公司 一种执行指令选择的装置、方法及指令映射方法
CN108563446A (zh) * 2018-03-30 2018-09-21 北京中科睿芯智能计算产业研究院有限公司 一种粗粒度数据流架构中的数据复用和同步的方法、装置
CN109672524A (zh) * 2018-12-12 2019-04-23 东南大学 基于粗粒度可重构架构的sm3算法轮迭代系统及迭代方法
CN109918339A (zh) * 2019-02-22 2019-06-21 上海交通大学 一种针对粗粒度可重构结构的基于相似性的指令压缩方法
WO2019241979A1 (en) * 2018-06-22 2019-12-26 Huawei Technologies Co., Ltd. Method of deadlock detection and synchronization-aware optimizations on asynchronous processor architectures
CN110737628A (zh) * 2019-10-17 2020-01-31 辰芯科技有限公司 一种可重构处理器和可重构处理器系统
CN110764744A (zh) * 2018-07-25 2020-02-07 赛灵思公司 用于神经网络计算的中间表示生成方法和装置
CN111008133A (zh) * 2019-11-29 2020-04-14 中国科学院计算技术研究所 粗粒度数据流架构执行阵列的调试方法及装置
CN111897580A (zh) * 2020-09-29 2020-11-06 北京清微智能科技有限公司 一种可重构阵列处理器的指令调度系统及方法
CN112269581A (zh) * 2020-12-24 2021-01-26 北京清微智能科技有限公司 一种可重构芯片的内存耦合编译方法及系统
CN112306500A (zh) * 2020-11-30 2021-02-02 上海交通大学 一种针对粗粒度可重构结构的降低多类访存冲突编译方法
CN112463719A (zh) * 2020-12-04 2021-03-09 上海交通大学 一种基于粗粒度可重构阵列实现的存内计算方法
CN112631610A (zh) * 2020-11-30 2021-04-09 上海交通大学 一种针对粗粒度可重构结构的数据重用消除访存冲突方法
CN113094030A (zh) * 2021-02-09 2021-07-09 北京清微智能科技有限公司 一种可重构芯片的易编译方法及系统
CN113112481A (zh) * 2021-04-16 2021-07-13 北京理工雷科电子信息技术有限公司 一种基于矩阵网络的混合异构片上架构
US12001381B2 (en) 2019-10-17 2024-06-04 Morningcore Technology Co., China Reconfigurable processor and reconfigurable processor system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102438149A (zh) * 2011-10-10 2012-05-02 上海交通大学 一种基于可重构技术的avs反变换的实现方法
CN104615496A (zh) * 2015-01-30 2015-05-13 上海交通大学 基于多层次异构结构的可重构架构的并行扩展方法
CN105302525A (zh) * 2015-10-16 2016-02-03 上海交通大学 用于多层次异构结构的可重构处理器的并行处理方法
CN105487838A (zh) * 2015-11-23 2016-04-13 上海交通大学 一种动态可重构处理器的任务级并行调度方法与系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102438149A (zh) * 2011-10-10 2012-05-02 上海交通大学 一种基于可重构技术的avs反变换的实现方法
CN104615496A (zh) * 2015-01-30 2015-05-13 上海交通大学 基于多层次异构结构的可重构架构的并行扩展方法
CN105302525A (zh) * 2015-10-16 2016-02-03 上海交通大学 用于多层次异构结构的可重构处理器的并行处理方法
CN105487838A (zh) * 2015-11-23 2016-04-13 上海交通大学 一种动态可重构处理器的任务级并行调度方法与系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JOSEP LLOSA等: "Lifetime-Sensitive Modulo Scheduling in a Production Environment", 《IEEE TRANSACTIONS ON COMPUTERS》 *
ZHONGYUAN ZHAO等: "Resource-saving compile flow for coarse-grained reconfigurable architectures", 《2015 INTERNATIONAL CONFERENCE ON RECONFIGURABLE COMPUTING AND FPGAS (RECONFIG)》 *

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569968A (zh) * 2016-11-09 2017-04-19 天津大学 用于可重构处理器的阵列间数据传输结构与调度方法
CN107679010B (zh) * 2017-09-20 2020-10-23 东南大学 一种面向可重构计算阵列的算子映射系统及方法
CN107679010A (zh) * 2017-09-20 2018-02-09 东南大学 一种面向可重构计算阵列的算子映射系统及方法
CN108052347A (zh) * 2017-12-06 2018-05-18 北京中科睿芯智能计算产业研究院有限公司 一种执行指令选择的装置、方法及指令映射方法
CN108052347B (zh) * 2017-12-06 2021-07-20 北京中科睿芯智能计算产业研究院有限公司 一种执行指令选择的装置、方法及指令映射方法
CN108563446A (zh) * 2018-03-30 2018-09-21 北京中科睿芯智能计算产业研究院有限公司 一种粗粒度数据流架构中的数据复用和同步的方法、装置
CN108563446B (zh) * 2018-03-30 2021-06-25 北京中科睿芯智能计算产业研究院有限公司 一种粗粒度数据流架构中的数据复用和同步的方法、装置
CN112313626A (zh) * 2018-06-22 2021-02-02 华为技术有限公司 异步处理器架构上的死锁检测及同步感知优化的方法
WO2019241979A1 (en) * 2018-06-22 2019-12-26 Huawei Technologies Co., Ltd. Method of deadlock detection and synchronization-aware optimizations on asynchronous processor architectures
US11429359B2 (en) 2018-06-22 2022-08-30 Huawei Technologies Co., Ltd. Method of deadlock detection and synchronization-aware optimizations on asynchronous architectures
CN110764744A (zh) * 2018-07-25 2020-02-07 赛灵思公司 用于神经网络计算的中间表示生成方法和装置
CN110764744B (zh) * 2018-07-25 2023-12-08 赛灵思公司 用于神经网络计算的中间表示生成方法和装置
CN109672524B (zh) * 2018-12-12 2021-08-20 东南大学 基于粗粒度可重构架构的sm3算法轮迭代系统及迭代方法
CN109672524A (zh) * 2018-12-12 2019-04-23 东南大学 基于粗粒度可重构架构的sm3算法轮迭代系统及迭代方法
CN109918339B (zh) * 2019-02-22 2023-03-10 上海交通大学 一种针对粗粒度可重构结构的基于相似性的指令压缩方法
CN109918339A (zh) * 2019-02-22 2019-06-21 上海交通大学 一种针对粗粒度可重构结构的基于相似性的指令压缩方法
US12001381B2 (en) 2019-10-17 2024-06-04 Morningcore Technology Co., China Reconfigurable processor and reconfigurable processor system
CN110737628A (zh) * 2019-10-17 2020-01-31 辰芯科技有限公司 一种可重构处理器和可重构处理器系统
CN111008133B (zh) * 2019-11-29 2021-04-27 中国科学院计算技术研究所 粗粒度数据流架构执行阵列的调试方法及装置
CN111008133A (zh) * 2019-11-29 2020-04-14 中国科学院计算技术研究所 粗粒度数据流架构执行阵列的调试方法及装置
CN111897580B (zh) * 2020-09-29 2021-01-12 北京清微智能科技有限公司 一种可重构阵列处理器的指令调度系统及方法
CN111897580A (zh) * 2020-09-29 2020-11-06 北京清微智能科技有限公司 一种可重构阵列处理器的指令调度系统及方法
CN112306500A (zh) * 2020-11-30 2021-02-02 上海交通大学 一种针对粗粒度可重构结构的降低多类访存冲突编译方法
CN112631610B (zh) * 2020-11-30 2022-04-26 上海交通大学 一种针对粗粒度可重构结构的数据重用消除访存冲突方法
CN112306500B (zh) * 2020-11-30 2022-06-07 上海交通大学 一种针对粗粒度可重构结构的降低多类访存冲突编译方法
CN112631610A (zh) * 2020-11-30 2021-04-09 上海交通大学 一种针对粗粒度可重构结构的数据重用消除访存冲突方法
CN112463719A (zh) * 2020-12-04 2021-03-09 上海交通大学 一种基于粗粒度可重构阵列实现的存内计算方法
CN112269581A (zh) * 2020-12-24 2021-01-26 北京清微智能科技有限公司 一种可重构芯片的内存耦合编译方法及系统
CN113094030A (zh) * 2021-02-09 2021-07-09 北京清微智能科技有限公司 一种可重构芯片的易编译方法及系统
CN113112481A (zh) * 2021-04-16 2021-07-13 北京理工雷科电子信息技术有限公司 一种基于矩阵网络的混合异构片上架构
CN113112481B (zh) * 2021-04-16 2023-11-17 北京理工雷科电子信息技术有限公司 一种基于矩阵网络的混合异构片上架构

Similar Documents

Publication Publication Date Title
CN105867994A (zh) 一种用于粗粒度可重构架构编译器的指令调度优化方法
US11907827B2 (en) Schedule-aware tensor distribution module
Hiranandani et al. Evaluation of compiler optimizations for fortran d on mimd distributed memory machines
Wang et al. FPDeep: Scalable acceleration of CNN training on deeply-pipelined FPGA clusters
Hamzeh et al. Branch-aware loop mapping on cgras
Stamatakis et al. Novel parallelization schemes for large-scale likelihood-based phylogenetic inference
Chen et al. On-the-fly parallel data shuffling for graph processing on OpenCL-based FPGAs
Schulz et al. GPU computing in discrete optimization. Part II: Survey focused on routing problems
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
CN114356840A (zh) 具有存内/近存计算模块的SoC系统
WO2022134307A1 (zh) 一种可重构芯片的内存耦合编译方法及系统
CN110516316A (zh) 一种间断伽辽金法求解欧拉方程的gpu加速方法
Chi et al. Democratizing domain-specific computing
CN105302525A (zh) 用于多层次异构结构的可重构处理器的并行处理方法
Zhang et al. Low-latency mini-batch gnn inference on cpu-fpga heterogeneous platform
Lee et al. NP-CGRA: Extending CGRAs for efficient processing of light-weight deep neural networks
Li et al. Multi-role sptrsv on sunway many-core architecture
Riedel et al. MemPool: A scalable manycore architecture with a low-latency shared L1 memory
Miller Two approaches to architecture-independent parallel computation
Gorobets Parallel technology for numerical modeling of fluid dynamics problems by high-accuracy algorithms
US11308025B1 (en) State machine block for high-level synthesis
Zhou et al. Pim-dl: Boosting dnn inference on digital processing in-memory architectures via data layout optimizations
Melot Algorithms and framework for energy efficient parallel stream computing on many-core architectures
Salii Restricted dynamic programming heuristic for precedence constrained bottleneck generalized TSP

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160817