CN113419990B - 在粗粒度可重构阵列上加速非完美嵌套循环的方法及装置 - Google Patents
在粗粒度可重构阵列上加速非完美嵌套循环的方法及装置 Download PDFInfo
- Publication number
- CN113419990B CN113419990B CN202110691179.XA CN202110691179A CN113419990B CN 113419990 B CN113419990 B CN 113419990B CN 202110691179 A CN202110691179 A CN 202110691179A CN 113419990 B CN113419990 B CN 113419990B
- Authority
- CN
- China
- Prior art keywords
- cyclic
- coarse
- candidate set
- circulation
- mapping
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 95
- 230000009466 transformation Effects 0.000 claims abstract description 60
- 238000013507 mapping Methods 0.000 claims abstract description 41
- 230000004992 fission Effects 0.000 claims abstract description 22
- 230000004927 fusion Effects 0.000 claims abstract description 22
- 238000000844 transformation Methods 0.000 claims abstract description 9
- 230000001174 ascending effect Effects 0.000 claims abstract description 8
- 238000012163 sequencing technique Methods 0.000 claims abstract description 7
- 239000011159 matrix material Substances 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 8
- 239000013598 vector Substances 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000013461 design Methods 0.000 claims description 3
- 238000006467 substitution reaction Methods 0.000 claims description 3
- 230000002349 favourable effect Effects 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 13
- 238000003491 array Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 239000010410 layer Substances 0.000 description 3
- 239000002356 single layer Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
-
- 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)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明提出一种在粗粒度可重构阵列上加速非完美嵌套循环的方法及装置,其中,方法包括:建立循环变换模型,其中循环变换包括:循环交换、循环融合和循环裂变,根据建立的模型求解到所有合法的变换,形成候选集C;将循环进行模调度时理论上所需的总体执行时间作为代价值,计算候选集中每一种循环形式的代价值,依据代价值对候选集C升序排序;依次选取候选集C中的循环结构,依据最大团算法,将其映射至粗粒度可重构架构上,直至映射成功,以在粗粒度可重构架构上加速非完美循环。本发明的方法选取一种最有利于模调度的循环形式在粗粒度可重构架构上执行,从而提升非完美嵌套循环的执行性能。
Description
技术领域
本发明涉及可重构计算架构技术领域,尤其涉及一种粗粒度可重构计算领域。
背景技术
粗粒度可重构架构(CGRA)由于其融合了通用处理器(GPP)的灵活性和专用集成电路(ASIC)的高速性,是一种非常有前景的并行计算架构,适用于很多嵌入式环境。典型的CGRA由主处理器、二维可重构功能处理单元阵列以及存储器组成。由于一个应用程序的计算密集型部分,即循环,通常放在CGRA上进行加速,提取足够的循环级并行性是CGRA编译器的主要任务。软件流水被广泛应用于实现循环级并行,而模调度是软件流水技术中最重要的技术之一。对于非完美循环而言,由于模调度不能直接生成包含非完美循环中所有语句的一个软件流水,因此,对于非完美循环在CGRA上的模调度是一个棘手的问题。
在过去的几十年里,研究人员对CGRA上循环的模调度进行了大量的研究,可以归为三类。第一类工作只关注如何将单层循环进行模调度。这种方法把循环的一次迭代内的算子重新排列并且固定其位置,然后规定每次迭代启动后等待一个固定时间间隔(initialinterval,II)再启动下一个迭代。这样得到的迭代与迭代之间有规律地重叠形成的最小重复单元,也就是重组后的循环体,称为流水核心(kernel)。然后只要对kernel中的算子进行布局布线(placement and routing,P&R)即可。这类方法通常将最小化II最为优化目标,因为越小的II代表着迭代之间更大程度的重叠执行,也就意味着单层循环执行的总时间更短。对于多层非完美嵌套循环而言,我们也可以按照单层循环的方式去处理,寻求最内层迭代的II最小。然而这样做并不能带来令人满意的性能,因为最内层II最小仅意味着最内层循环的迭代进行了最大限度地重叠,并不意味着整个非完美嵌套循环的性能就是最优的。第二类工作考虑在CGRA上执行多层流水。对于完美嵌套循环而言,通过循环交换,选择两个循环层级作为最内两层,然后同时将最内两层循环同时映射到CGRA。但是这种方法只针对完美循环。对于非完美循环,同时在CGRA上流水内层和外层循环,但是它忽略了非完美循环的其他等价结构可能更有利于模调度。第三类工作尝试使用一些手段将非完美循环变成完美循环来处理,如循环裂变(fission)、循环展平(flatten)。然而并不是所有的非完美循环都可以通过循环裂变变成完美循环。而循环展平可能会增加一些if语句,使得迭代的更新逻辑变得复杂。
现有的工作在模调度之前没有充分探索非完美嵌套循环的循环形式,比如循环裂变、循环融合、循环交换所构成的变换空间。而且现有的工作大多只考虑非完美嵌套循环中单个最内层循环的性能,没有综合考虑非完美循环中各个单个循环的整体性能。这些缺点导致非完美嵌套循环在CGRA上不能取得令人满意的性能。因此,本技术发明开展了在CGRA上加速非完美嵌套循环的方法研究。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种在粗粒度可重构阵列上加速非完美嵌套循环的方法,以实现提升非完美嵌套循环的执行性能。
本发明的第二个目的在于提出一种在粗粒度可重构阵列上加速非完美嵌套循环的装置。
本发明的第三个目的在于提出一种非临时性计算机可读存储介质。
为达上述目的,本发明第一方面实施例提出了一种在粗粒度可重构阵列上加速非完美嵌套循环的方法,包括以下步骤:
建立循环变换模型,其中循环变换包括:循环交换、循环融合和循环裂变,根据建立的模型求解到所有合法的变换,形成候选集C;
将循环进行模调度时理论上所需的总体执行时间作为代价值,计算所述候选集C中每一种循环形式的代价值,依据代价值对所述候选集C升序排序;
依次选取所述候选集C中的循环结构,依据最大团算法,将选取的循环结构映射至粗粒度可重构架构上,直至映射成功,以在粗粒度可重构架构上加速非完美循环。
可选地,在本申请的一个实施例中,所述语句的变换矩阵的一维表示为:
其中,s表示语句,ms表示语句的维数,当时,我们称/>是一个划分,它表示语句之间的文本顺序;当/>且/>时,我们称/>是一个循环超平面,它表示语句的迭代向量的顺序。
可选地,在本申请的一个实施例中,根据所述语句的变换矩阵建立所述循环变换模型,包括:
定义循环变换模型为:
目标:使得:
其中,E表示依赖集合,和/>分别表示依赖e的目标语句和源语句的迭代向量,>>表示词典序大于。
可选地,在本申请的一个实施例中,所述总体执行时间定义为:
其中,IIi表示第i个模调度单元模调度时的启动间隔,Li表示第i个模调度单元的延迟,表示第i个模调度单元最内层循环的迭代步数,TET表示总体执行时间,我们将总体执行时间TET作为代价函数。由于II需要对非完美循环中每一个模调度单元进行模调度得来,这一过程复杂度较高,因此在计算TET时我们用理论上最小启动间隔(minimalinitial interval,MII)来代替II。
可选地,在本申请的一个实施例中,其特征在于选取所述候选集C中的循环结构映射至粗粒度可重构架构上,直至将循环结构成功映射至粗粒度可重构架构,包括:
根据最大团算法,依次选取所述候选集C中代价函数值最小的变换矩阵对应的循环结构,在所述粗粒度可重构架构上进行映射尝试,若映射成功,则结束,若映射不成功,再依次从所述候选集C中选取代价函数值次小的变换矩阵对应的循环结构进行映射尝试,直至映射成功。
本技术发明的主要发明内容是在模调度前,充分探索非完美嵌套循环的变换空间:循环裂变、循环融合、循环交换,产生一系列理论上更适合做模调度的等价的循环结构候选集,然后根据这个顺序选取循环结构尝试在CGRA上去映射,直到将循环结构成功映射到CGRA,最终提升非完美嵌套循环执行性能。
本申请的技术效果:涉及在模调度前充分探索循环变换空间,选取一种最有利于模调度的循环形式在粗粒度可重构架构上执行,从而提升非完美嵌套循环的执行性能。
为达上述目的,本申请第二方面实施例提出一种在粗粒度可重构阵列上加速非完美嵌套循环的装置,包括以下模块:
建立模块,建立循环变换模型,其中循环变换包括:循环交换、循环融合和循环裂变,根据建立的模型求解到所有合法的变换,形成候选集C;
设计模块,用于将循环进行模调度时理论上所需的总体执行时间作为代价值,计算所述候选集C中每一种循环形式的代价值,依据代价值对所述候选集C升序排序;
执行模块,用于依次选取候所述选集C中的循环结构,依据最大团算法,将选取的候所述选集C中的循环结构映射至粗粒度可重构架构上,直至映射成功,以在粗可重构架构上加速非完美循环。
本技术发明的主要发明内容是在模调度前,充分探索非完美嵌套循环的变换空间:循环裂变、循环融合、循环交换,产生一系列理论上更适合做模调度的等价的循环结构候选集,然后根据这个顺序选取循环结构尝试在CGRA上去映射,直到将循环结构成功映射到CGRA,最终提升非完美嵌套循环执行性能。
本申请的技术效果:涉及在模调度前充分探索循环变换空间,选取一种最有利于模调度的循环形式在粗粒度可重构架构上执行,从而提升非完美嵌套循环的执行性能。
为达上述目的,本申请第三方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请第一方面实施例所述的在粗粒度可重构阵列上加速非完美嵌套循环的方法。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例的在粗粒度可重构阵列上加速非完美嵌套循环的方法的流程图。
图2是本申请实施例的在粗粒度可重构阵列上加速非完美嵌套循环的方法实施流程图;
图3是本申请实施例的一个实例示意图;
图4为本申请实施例的在粗粒度可重构阵列上加速非完美嵌套循环的装置结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的在粗粒度可重构阵列上加速非完美嵌套循环的方法。
如图1所示,为达上述目的,本发明第一方面实施例提出了一种在粗粒度可重构阵列上加速非完美嵌套循环的方法,包括以下步骤:
步骤S10、建立循环变换模型,其中循环变换包括:循环交换、循环融合和循环裂变,根据建立的模型求解到所有合法的变换,形成候选集C;
步骤S20、将循环进行模调度时理论上所需的总体执行时间作为代价值,计算所述候选集C中每一种循环形式的代价值,依据代价值对所述候选集C升序排序;
步骤S30、依次选取所述候选集C中的循环结构,依据最大团算法,将选取的循环结构映射至粗粒度可重构架构上,直至映射成功,以在粗可重构架构上加速非完美循环。
可选地,在本申请的一个实施例中,所述语句的变换矩阵的一维表示为:
其中,s表示语句,ms表示语句的维数,当时,我们称/>是一个划分,它表示语句之间的文本顺序;当/>且/>时,我们称/>是一个循环超平面,它表示语句的迭代向量的顺序。
可选地,在本申请的一个实施例中,根据所述语句的变换矩阵建立所述循环变换模型,包括:
定义循环变换模型为:
目标:使得:
其中,E表示依赖集合,和/>分别表示依赖e的目标语句和源语句的迭代向量,>>表示词典序大于。
可选地,在本申请的一个实施例中,所述总体执行时间定义为:
其中,IIi表示第i个模调度单元模调度时的启动间隔,Li表示第i个模调度单元的延迟,表示第i个模调度单元最内层循环的迭代步数,TET表示总体执行时间,我们将总体执行时间TET作为代价函数。由于II需要对非完美循环中每一个模调度单元进行模调度得来,这一过程复杂度较高,因此在计算TET时我们用理论上最小启动间隔(minimalinitial interval,MII)来代替II。
可选地,在本申请的一个实施例中,其特征在于选取所述候选集C中的循环结构映射至粗粒度可重构架构上,直至将循环结构成功映射至粗粒度可重构架构,包括:
根据最大团算法,依次选取所述候选集C中代价函数值最小的变换矩阵对应的循环结构,在所述粗粒度可重构架构上进行映射尝试,若映射成功,则结束,若映射不成功,再依次从所述候选集C中选取代价函数值次小的变换矩阵对应的循环结构进行映射尝试,直至映射成功。
如图2、图3所示,可选地,在本申请的一个实施例中,具体的一个实施案例,
第一步、循环融合/裂变建议的生成
图3(b)中的源程序中的语句集为{s0,s1},将语句集中的语句全排列:s0→s1,s1→s0,对于s0→s1,融合/裂变建议为:s0和s1融合、s0和s1裂变,对于s1→s0,同理,融合/裂变建议为:s1和s0融合、s1和s0裂变。因此,此时共形成四种融合/裂变建议:s0和s1融合、s0和s1裂变、s1和s0融合、s1和s0裂变。
第二步、合法的循环变换空间生成:
首先,基于所建立的循环变换模型,对于融合建议中的每一种情况,求解所有合法的循环变换;求解时,逐维将上述问题转化为一个ILP问题进行求解,直到求解到的超平面数等于语句的维数,此外,在求解到一维的最优解后,还需继续求解到其余次优解。
对于图3(b)中的源程序,求解到以下两种合法的循环变换构成候选集C,其变换矩阵为:
第三步、计算每种循环变换的代价值
首先我们使用工具CLOOG将候选集中的每一种变换生成代码,接下来对于每一种情况计算其代价值。
对于C1,生成的代码即为源代码,如图3(b),根据所设计的代价模型执行模型计算总体执行时间,对于s1语句,将它的最内层循环进行模调度时,由于其依赖约束下的MII为3,资源约束下的MII为2,所以最终的MII为max{3,2}=3。这样便可以得到s1语句模调度理论执行时间为N(3(N-1)+5)=3N2+2N,用同样的方法可以得到s0语句的模调度理论执行时间为N(2(N-1)+4)=2N2+2N。因此对于C1,其总体执行时间为(3N2+2N)+(2N2+2N)=5N2+4N,将它作为C1的代价值。
对于C2,用同样的方法可以求得它的总体执行时间为22+2N,将它作为C2的代价值。
依据代价值,对候选集进行升序排序。
第三步、根据候选集进行映射尝试:
根据最大团算法,依次选取候选集C中代价函数值最小的变换矩阵对应的循环结构,在目标架构上进行映射尝试;若映射成功,则结束;若不成功,再依次从候选集C中选取成本函数值次小的循环结构进行映射尝试,直到映射成功;对于图3(b)中的源程序,候选集C中代价值最小的循环形式为图3(d),在目标架构上对其进行映射尝试,映射结果如图3(g)所示,映射成功,结束。图3(e)和(f)分别为将图3(b)中的s0和s1映射到目标架构的示意图,从图3(e)、图3(f)和图3(g)可以看出,源程序直接映射到目标CGRA架构需要5N2+4N个周期,使用我们的方法优化后,再映射到目标架构只需3N2+2N个周期,可见性能得到提升。
可选地,在本申请的一个实施例中,具体而言,图3(a)为目标CGRA架构(b)源程序(c)源程序经过交换变换后的程序(d)源程序经过交换和融合变换后的程序(e)源程序s0语句映射到目标架构(f)源程序s1语句映射到目标架构(g)交换和融合变换后的循环映射到目标架构
本技术发明的主要发明内容是在模调度前,充分探索非完美嵌套循环的变换空间:循环裂变、循环融合、循环交换,产生一系列理论上更适合做模调度的等价的循环结构候选集,然后根据这个顺序选取循环结构尝试在CGRA上去映射,直到将循环结构成功映射到CGRA,最终提升非完美嵌套循环执行性能。
本申请的技术效果:涉及在模调度前充分探索循环变换空间,选取一种最有利于模调度的循环形式在粗粒度可重构架构上执行,从而提升非完美嵌套循环的执行性能。
如图4所示,为达上述目的,本申请第二方面实施例提出一种在粗粒度可重构阵列上加速非完美嵌套循环的装置,包括以下模块:
建立模块,建立循环变换模型,其中循环变换包括:循环交换、循环融合和循环裂变,根据建立的模型求解到所有合法的变换,形成候选集C;
设计模块,用于将循环进行模调度时理论上所需的总体执行时间作为代价值,计算所述候选集C中每一种循环形式的代价值,依据代价值对所述候选集C升序排序;
执行模块,用于依次选取候所述选集C中的循环结构,依据最大团算法,将选取循环结构映射至粗粒度可重构架构上,直至映射成功,以在粗可重构架构上加速非完美循环。
本技术发明的主要发明内容是在模调度前,充分探索非完美嵌套循环的变换空间:循环裂变、循环融合、循环交换,产生一系列理论上更适合做模调度的等价的循环结构候选集,然后根据这个顺序选取循环结构尝试在CGRA上去映射,直到将循环结构成功映射到CGRA,最终提升非完美嵌套循环执行性能。
本申请的技术效果:涉及在模调度前充分探索循环变换空间,选取一种最有利于模调度的循环形式在粗粒度可重构架构上执行,从而提升非完美嵌套循环的执行性能。
为了实现上述实施例,本发明还提出一种非临时性计算机可读存储介质,该计算机存储有计算机程序,所述计算机程序被处理器执行时,实现本申请实施例的在粗粒度可重构阵列上加速非完美嵌套循环的方法。
尽管参考附图详地公开了本申请,但应理解的是,这些描述仅仅是示例性的,并非用来限制本申请的应用。本申请的保护范围由附加权利要求限定,并可包括在不脱离本申请保护范围和精神的情况下针对发明所作的各种变型、改型及等效方案。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (6)
1.一种在粗粒度可重构阵列上加速非完美嵌套循环的方法,其特征在于,包括以下步骤:
建立循环变换模型,其中循环变换包括:循环交换、循环融合和循环裂变,根据建立的模型求解到所有合法的变换,形成候选集C;
将循环进行模调度时理论上所需的总体执行时间作为代价值,计算所述候选集C中每一种循环形式的代价值,依据代价值对所述候选集C升序排序;
依次选取所述候选集C中的循环结构,依据最大团算法,将选取循环结构映射至粗粒度可重构架构上,直至映射成功,以在粗粒度可重构架构上加速非完美循环;
其中,所述总体执行时间定义为:
其中,IIi表示第i个模调度单元模调度时的启动间隔,Li表示第i个模调度单元的延迟,表示第i个模调度单元最内层循环的迭代步数,TET表示总体执行时间,我们将总体执行时间TET作为代价函数;由于启动间隔需要对非完美循环中每一个模调度单元进行模调度得来,这一过程复杂度较高,因此在计算TET时我们用理论上最小启动间隔来代替II。
2.根据权利要求1所述的方法,其特征在于,所述建立循环变换模型,包括:
根据语句的变换矩阵建立循环变换模型,其中,所述语句的变换矩阵的一维表示为:
其中,s表示语句,ms表示语句的维数,当时,我们称/>是一个划分,它表示语句之间的文本顺序;当/>且/>时,我们称/>是一个循环超平面,它表示语句的迭代向量的顺序。
3.根据权利要求2所述的方法,其特征在于,所述根据语句的变换矩阵建立所述循环变换模型,包括:
定义循环变换模型为:
目标:使得:
其中,E表示依赖集合,和/>分别表示依赖e的目标语句和源语句的迭代向量,>>表示词典序大于。
4.根据权利要求1所述的方法,其特征在于,选取所述候选集C中的循环结构映射至粗粒度可重构架构上,直至将循环结构成功映射至粗粒度可重构架构,包括:
根据最大团算法,依次选取所述候选集C中代价函数值最小的变换矩阵对应的循环结构,在所述粗粒度可重构架构上进行映射尝试,若映射成功,则结束,若映射不成功,再依次从所述候选集C中选取代价函数值次小的变换矩阵对应的循环结构进行映射尝试,直至映射成功。
5.一种在粗粒度可重构阵列上加速非完美嵌套循环的装置,其特征在于,包括:
建立模块,建立循环变换模型,其中循环变换包括:循环交换、循环融合和循环裂变,根据建立的模型求解到所有合法的变换,形成候选集C;
设计模块,用于将循环进行模调度时理论上所需的总体执行时间作为代价值,计算所述候选集C中每一种循环形式的代价值,依据代价值对所述候选集C升序排序;
执行模块,用于依次选取候所述选集C中的循环结构,依据最大团算法,将选取的循环结构映射至粗粒度可重构架构上,直至映射成功,以在粗可重构架构上加速非完美循环;
其中,所述总体执行时间定义为:
其中,IIi表示第i个模调度单元模调度时的启动间隔,Li表示第i个模调度单元的延迟,表示第i个模调度单元最内层循环的迭代步数,TET表示总体执行时间,我们将总体执行时间TET作为代价函数;由于启动间隔需要对非完美循环中每一个模调度单元进行模调度得来,这一过程复杂度较高,因此在计算TET时我们用理论上最小启动间隔来代替II。
6.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4中任一项所述的在粗粒度可重构阵列上加速非完美嵌套循环的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110691179.XA CN113419990B (zh) | 2021-06-22 | 2021-06-22 | 在粗粒度可重构阵列上加速非完美嵌套循环的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110691179.XA CN113419990B (zh) | 2021-06-22 | 2021-06-22 | 在粗粒度可重构阵列上加速非完美嵌套循环的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113419990A CN113419990A (zh) | 2021-09-21 |
CN113419990B true CN113419990B (zh) | 2023-10-31 |
Family
ID=77789845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110691179.XA Active CN113419990B (zh) | 2021-06-22 | 2021-06-22 | 在粗粒度可重构阵列上加速非完美嵌套循环的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113419990B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218347A (zh) * | 2013-04-28 | 2013-07-24 | 清华大学 | 面向可重构阵列的多参数融合性能建模方法 |
CN105718245A (zh) * | 2016-01-18 | 2016-06-29 | 清华大学 | 可重构计算循环映射优化方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8060870B2 (en) * | 2007-09-26 | 2011-11-15 | International Business Machines Corporation | System and method for advanced polyhedral loop transformations of source code in a compiler |
US8056065B2 (en) * | 2007-09-26 | 2011-11-08 | International Business Machines Corporation | Stable transitions in the presence of conditionals for an advanced dual-representation polyhedral loop transformation framework |
US20200301898A1 (en) * | 2018-06-25 | 2020-09-24 | BigStream Solutions, Inc. | Systems and methods for accelerating data operations by utilizing dataflow subgraph templates |
-
2021
- 2021-06-22 CN CN202110691179.XA patent/CN113419990B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218347A (zh) * | 2013-04-28 | 2013-07-24 | 清华大学 | 面向可重构阵列的多参数融合性能建模方法 |
CN105718245A (zh) * | 2016-01-18 | 2016-06-29 | 清华大学 | 可重构计算循环映射优化方法 |
Non-Patent Citations (3)
Title |
---|
REGIMap Register-Aware Application Mapping on Coarse-Grained Reconfigurable Architectures (CGRAs);Hamzeh等;《Proceedings of Proceedings of the 50th Annual Design Automation Conference. ACM, 2013》;第4页 * |
一种可重构处理器编译系统中循环优化关键技术研究;刘大江;《中国博士学位论文全文数据库 信息科技辑 I137-4》;第3页,23页-34页,65页,89-96页 * |
针对粗粒度可重构架构的非完美循环映射方法;徐若玢;赵仲元;绳伟光;何卫锋;;微电子学与计算机(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113419990A (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144702B (zh) | 一种用于行列并行粗粒度可重构阵列多目标优化自动映射调度方法 | |
CN107341547B (zh) | 一种用于执行卷积神经网络训练的装置和方法 | |
US20220083857A1 (en) | Convolutional neural network operation method and device | |
CN111292805B (zh) | 一种三代测序数据重叠检测方法及系统 | |
US20200133672A1 (en) | Hybrid and efficient approach to accelerate complicated loops on coarse-grained reconfigurable arrays (cgra) accelerators | |
US7770162B2 (en) | Statement shifting to increase parallelism of loops | |
Shterenlikht et al. | Fortran 2008 coarrays | |
CN114416045A (zh) | 自动生成算子的方法和装置 | |
US20230076473A1 (en) | Memory processing unit architecture mapping techniques | |
CN112488296A (zh) | 基于硬件环境的数据操作方法、装置、设备及存储介质 | |
Farzan et al. | Phased synthesis of divide and conquer programs | |
CN116483319A (zh) | 用于软件定义芯片的算子处理方法、装置、设备及介质 | |
CN113672232B (zh) | 程序编译方法和装置 | |
US11467827B1 (en) | Index space mapping using static code analysis | |
CN113419990B (zh) | 在粗粒度可重构阵列上加速非完美嵌套循环的方法及装置 | |
WO2016024508A1 (ja) | マルチプロセッサ装置 | |
CN110008436B (zh) | 基于数据流架构的快速傅里叶变换方法、系统和存储介质 | |
US20120089813A1 (en) | Computing apparatus based on reconfigurable architecture and memory dependence correction method thereof | |
CN113569519A (zh) | 一种面向粗粒度可重构阵列上的路由增强调度方法及装置 | |
CN116048521A (zh) | 一种多阵列粗粒度可重构架构的多层级并行性开发方法 | |
EP2439666B1 (en) | Parallel sifting algorithm | |
EP2439652B1 (en) | Reordering binary decision diagrams for circuit design | |
US8374991B2 (en) | Determining optimum variable orders for BDDs using recursion | |
US8370289B2 (en) | BDD variable reordering using parallel permutation | |
Shao et al. | Map-reduce inspired loop parallelization on CGRA |
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 |