CN116306424A - 一种基于可调级数裕量改进的动态扩增逐层优化算法的pisa架构芯片资源排布方法 - Google Patents
一种基于可调级数裕量改进的动态扩增逐层优化算法的pisa架构芯片资源排布方法 Download PDFInfo
- Publication number
- CN116306424A CN116306424A CN202310079264.XA CN202310079264A CN116306424A CN 116306424 A CN116306424 A CN 116306424A CN 202310079264 A CN202310079264 A CN 202310079264A CN 116306424 A CN116306424 A CN 116306424A
- Authority
- CN
- China
- Prior art keywords
- resource
- pipeline
- basic block
- constraint
- stage
- 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
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 109
- 238000000034 method Methods 0.000 title claims abstract description 74
- 230000003321 amplification Effects 0.000 title claims abstract description 41
- 238000003199 nucleic acid amplification method Methods 0.000 title claims abstract description 41
- 230000006872 improvement Effects 0.000 title claims abstract description 29
- 241000404883 Pisa Species 0.000 title claims abstract 16
- 230000003416 augmentation Effects 0.000 claims abstract description 21
- 239000012634 fragment Substances 0.000 claims abstract description 16
- 238000003780 insertion Methods 0.000 claims abstract description 5
- 230000037431 insertion Effects 0.000 claims abstract description 5
- 239000011159 matrix material Substances 0.000 claims description 26
- 230000008569 process Effects 0.000 claims description 20
- RUQBGIMJQUWXPP-CYDGBPFRSA-N Ala-Leu-Ala-Pro Chemical compound C[C@H](N)C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](C)C(=O)N1CCC[C@H]1C(O)=O RUQBGIMJQUWXPP-CYDGBPFRSA-N 0.000 claims description 14
- 230000001419 dependent effect Effects 0.000 claims description 9
- 238000013468 resource allocation Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000009826 distribution Methods 0.000 claims description 5
- 238000013178 mathematical model Methods 0.000 claims description 3
- 239000002243 precursor Substances 0.000 claims description 3
- 239000000243 solution Substances 0.000 description 15
- 230000006870 function Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/337—Design optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- 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)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
一种基于可调级数裕量改进的动态扩增逐层优化算法的PISA架构芯片资源排布方法,以最小化占用流水线级数为优化目标,在数据依赖、控制依赖和资源限制约束条件下,基于动态扩增逐层优化调度算法建模,求解各级流水线最优基本块排布方案;考虑流水线每级中同一执行流程上的基本块资源共享约束问题,采用可调级数裕量改进的动态扩增优化调度算法,重新建立以占用的流水线级数最少为优化目标的动态调度问题;以控制依赖图和数据依赖图为基础构建程序依赖图,基于共享资源约束利用可调级数裕量改进的动态扩增优化调度模型求解,获得初步排布结果,引入空闲碎片资源填充策略进行基本块插入,获得进一步优化的基本块排布方案。
Description
技术领域
本发明涉及PISA架构芯片资源排布方法,具体涉及一种基于动态扩增逐层优化算法的PISA架构芯片资源排布方法。
背景技术
芯片是电子信息时代需求量最大、最基础、最重要的半导体产品之一,在当前日益复杂的国际形势下,芯片是各个大国必争的高科技技术。近年来,“缺芯”危机带来的“芯片荒”引起了国内的轩然大波,因此,在芯片全球市场竞争格局高度集中的市场环境中,中国“强芯补链”具有重要社会意义和现实意义。网络交换芯片作为网络设备中最核心的存在,其支持网络设备实现海量数据进行交流交换。对比于传统交换芯片的固定性和低效率,可编程的交换芯片具有灵活性、定制性和高效率,PISA(Protocol Independent SwitchArchitecture)是当前主流的可编程交换芯片架构之一,是一种按用户需求、完全自主控制下以最高速度处理数据包的新范例。PISA架构如图1(b)所示,其包括可编程报文解析器、多级可编程“匹配-动作”流水线、可编程报文重组器三个部分组成,报文数据可经过自定义的解析进行多级匹配和动作操作,实现数据平面的协议无关转发。
在PISA架构编程模型中,用户采用P4语言描述报文处理行为并编译P4程序,P4程序将划分成一系列基本块,各个基本块需要占用一定的芯片资源,再将基本块排布到多级报文处理流水线中。PISA架构资源排布即将P4程序流程图中的各个节点在满足约束条件下排布到流水线各级中,P4程序流程图如图1(a)所示。约束条件一部分来自P4程序本身具有的控制依赖和数据依赖,一部分来自芯片的资源约束。芯片中的资源包括TCAM、HASH、ALU、QUALIFY四类,流水线中对这四类资源有严格的限制。在实际设计中,为减少连线复杂度,需对各级资源采取一系列复杂的资源约束条件,这些约束条件使得资源排布问题尤为重要。由于芯片的各类资源均有限,因此,高资源利用率的资源排布算法对于编译器设计具有至关重要的作用。
PISA架构芯片的设计建立资源排布问题相关研究和文献较少,相关硬件系统下指令调度问题考虑了依赖关系和资源均衡等限制条件。为解决该问题,大部分采用的算法有采用基于贪心算法执行指令调度问题,该方法容易陷入局部最优解。部分采用基于启发式调度方法、基于遗传进化等随机搜索类方法、基于任务复制等方法对问题进行求解。
在复杂的PISA架构芯片的内部结构中,程序基本块优化排布方法是保证芯片运行速率的重要技术支撑,通过充分利用流水线的并行优势,最大限度地实现芯片资源的高利用率对提高芯片运行速度、推动信息技术行业发展具有重要研究意义。针对此问题,申请人以最小化占用流水线级数为优化目标,在数据依赖、控制依赖和资源限制的复杂约束条件下,提出基于动态扩增逐层优化调度算法进行建模,求解各级流水线最优基本块排布方案。
针对PISA架构芯片资源排布问题,考虑各基本块间的数据依赖关系、控制依赖关系、各基本块资源占用量,以及芯片内部各级流水线资源限制规则等条件,建立基于多约束条件下的资源排布动态规划模型,求解最优基本块排布方案以最大化资源利用率以减小流水线级数的同时,还需考虑流水线每级中同一执行流程上的基本块存在资源共享限制,考虑多层优化资源排布问题。
发明内容
本发明基于动态扩增逐层优化算法的PISA架构芯片资源排布方法,在程序基本块排布基础上,考虑了流水线每级中同一执行流程上的基本块存在资源共享限制,在更改后的资源约束条件下提出基于可调级数裕量改进的动态扩增优化调度算法,进一步考虑了多层优化资源排布问题。
研究PISA架构芯片在资源约束条件下的资源排布问题。要求针对数据构建P4流程图,构建各基本块之间的控制依赖和数据依赖关系构建依赖关系矩阵,同时考虑各基本块之间的资源冲突,建立以占用的流水线级数最少为优化目标的资源芯片排布模型。
针对实际的PISA架构芯片的建立资源排布问题,在数据依赖、控制依赖和资源限制三类约束条件下构建芯片资源排布模型,须给定其资源排布存在如下约束条件:
(1)控制约束:程序控制流中基本块的先后运行顺序。
(2)数据约束:数据流读写数据的先后顺序。
(3)资源约束:
(a)流水级每级的TCAM资源最大为1;
(b)流水级每级的HASH资源最大为2;
(c)流水级每级的ALU资源最大为56;
(d)流水级每级的QUALIFY资源最大为64;
(e)约定流水线第0级与第16级,第1级与第17级,...,第15级与第31级为折叠级数,折叠的两级TCAM资源加起来最大为1,HASH资源加起来最大为3。注:如果需要的流水线级数超过32级,则从第32开始的级数不考虑折叠资源限制;
(f)有TCAM资源的偶数级数量不超过5;
(g)每个基本块只能排布到一级。
前提:考虑三大约束条件:根据给定各基本块在流图中的邻接基本块构建P4程序流程图,满足程序运行的控制依赖关系条件下的级数排布。满足各基本块在读取数据流时造成的数据依赖条件下的级数排布;满足各基本块的四种资源信息条件下的级数分布。
条件:根据上述问题分析,按照(1)-(3)资源约束条件的要求进行PISA芯片资源排布。
目标:基于上述前提和条件,最小化占用的流水线的级数,给出基本块排布结果。
如此,给出资源排布算法,列出满足数据依赖、控制依赖以及资源约束规则(1)-(3)时基本块的排布结果,以保证占用的流水线级数尽量短且芯片资源利用率最大。
最后,对结果进行分析,并且通过根据指标对所提模型进行评估以验证算法的有效性。
如图2所示,在复杂的PISA架构芯片的内部结构中,程序基本块优化排布方法技术思路:
以最小化占用流水线级数为优化目标,在数据依赖、控制依赖和资源限制的复杂约束条件下,提出基于动态扩增逐层优化调度算法进行建模,求解各级流水线最优基本块排布方案。首先根据给定的各基本块在程序流程图中相对位置和各基本块数据流信息分别构建控制依赖图和数据依赖图,引入程序依赖图用以综合基本块之间的控制依赖和数据依赖关系,从而降低问题的求解难度以方便后续的模型求解。在满足程序依赖关系的条件下,构建重要资源优先的基本块调度优先级顺序。各流水线级采用基于基本块优先级逐层优化策略,当资源受限时进行流水线级数动态扩增,将最小化流水线级数问题转换为最大化各级流水线资源利用率问题,有效实现在资源限制条件下求解各级流水线基本块的最优放置方案,并获得所有基本块在各级流水线的排布结果。对给定数据求解基本块最优排布方案为:共需要0~39级流水线,其中第0级分配的基本块最多,共184个基本块。计算各级的平均资源利用率,验证了结果的有效性。
而对于PISA架构芯片多层优化资源排布问题,考虑在P4程序流程图中,对于不在一条执行流程上的基本块可以共享HASH资源和ALU资源,当其资源不超过每级资源限制时,基本块即可排布到同一级。据此,对前述问题中的约束条件(b)、(c)、(e)作如下更改:
(b)流水线每级中同一条执行流程上的基本块的HASH资源之和最大为2;
(c)流水线每级中同一条执行流程上的基本块的ALU资源之和最大为56;
(e)折叠的两级,对于TCAM资源约束不变,对于HASH资源,每级分别计算同一条执行流程上的基本块占用的HASH资源,再将两级的计算结果相加,结果不超过3。
如此,通过基于可调级数裕量改进的动态扩增优化调度算法,列出满足数据依赖、控制依赖以及更改后的资源限制规则(1)-(3)时基本块的排布结果,以保证占用的流水线级数尽量短且芯片资源利用率最大。其前提是考虑同样的三大约束条件:给定各基本块在流图中的邻接基本块构建P4程序流程图,满足程序运行的控制依赖关系条件下的级数排布;需要满足各基本块在读取数据流时造成的数据依赖条件下的级数排布;满足各基本块的四种资源信息条件下的级数分布。在程序基本块优化排布方法基础上,在P4程序流程图中,考虑在同一条执行流程上的基本块可以进行HASH和ALU资源共享,满足资源不超过每级资源限制。
条件:根据上述问题分析,按照更改后的(1)-(3)资源约束条件的要求进行PISA芯片资源排布,其中条件(b)(c)(e)更改为在流水线每级中同一条执行流程上基本块的资源和。
目标:基于上述前提和条件,最小化占用的流水线的级数,给出基本块排布结果。
基于此,本发明提出一种基于动态扩增逐层优化算法的PISA架构芯片资源排布方法,即在程序基本块排布基础上,更改约束条件,考虑流水线每级中同一条执行流程上的基本块资源共享,研究PISA架构芯片在更改后的资源约束条件下的资源排布问题。
在控制依赖约束、数据依赖约束和资源依赖约束条件下,根据建立的控制依赖矩阵和数据依赖矩阵,进一步考虑基本块资源共享约束问题,从而重新建立以占用的流水线级数最少为优化目标的动态调度问题。建立目标函数和优化目标,以控制依赖图和数据依赖图为基础构建程序依赖图,进一步基于共享资源约束应用基于可调级数裕量改进的动态扩增优化调度模型进行求解,初步求解各级流水线的最优基本块排布方案,获得初步排布结果,引入空闲碎片资源填充策略进行基本块插入,遍历流水线,插空各基本块以实现排布方案二次优化,获取全局最优解,最终以获得最优基本块排布方案。最后,对算法复杂度进行评估验证。
其解题流程图如图3所示。所述的可调级数裕量改进的动态扩增优化调度算法,首先,基于Floyed算法构建可达矩阵用以判断各基本块之间是否处于同一条执行流程上。其次,进一步引入ASAP和ALAP算法以计算各基本块的可调级数裕量,综合程序依赖关系、资源信息和可调级数裕量,提出一种加权可调度优先级排序方式。在更改资源限制条件下,对给定数据求解基本块的最优方案为:共需要33级流水线,其中第0级分配共183个基本块。同时,计算该模型的时间复杂度为O(N3),证明所提模型具有效率高、排布方案最优的优势。
有益效果在于:
1、本发明基于动态扩增逐层优化算法的PISA架构芯片资源排布方法,针对PISA架构芯片资源排布问题,考虑各基本块间的数据依赖关系、控制依赖关系、各基本块资源占用量,以及芯片内部各级流水线资源限制规则等条件,建立基于多约束条件下的资源排布动态规划模型,求解最优基本块排布方案以最大化资源利用率以减小流水线级数。在更改资源限制条件下,对给定数据求解基本块的最优方案为:共需要33级流水线,其中第0级分配共183个基本块。同时,计算该模型的时间复杂度为O(N3),证明所提模型具有效率高、排布方案最优的优势。
2、本发明基于动态扩增逐层优化算法的PISA架构芯片资源排布方法,算法模型以最小化流水线级数为优化目标,在建模时充分考虑了PISA架构芯片的数据依赖、控制依赖和资源依赖三类约束条件,将约束条件抽象成数学语言描述,构建动态扩增优化调度算法进行求解和优化,获取最优资源排布方案。将数据依赖和控制依赖条件转换成程序依赖约束条件,在不考虑资源的情况下为本题提供了较为优的初始解,极大减少了后续寻优的时间复杂度。
3、本发明基于动态扩增逐层优化算法的PISA架构芯片资源排布方法,模型的实用性较强,使得P4程序在PISA架构芯片上运行时具有更高的资源利用率,以及更少的连线复杂度。模型的效率较高,且具有较好的鲁棒性。计算各基本块的可调级数裕量、资源重要性和依赖约束建立调度优先级顺序,逐层优化迭代进行流水线级数动态扩增,使得获取全局最优解。
附图说明
为了更清楚地说明本发明,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示是当前主流的可编程交换芯片PISA架构资源排布示意图;
图2所示是PISA架构芯片在资源约束条件下的程序基本块排布方法流程图;
图3所示是动态扩增逐层优化模型整体流程图;
图4所示是本发明基于动态扩增逐层优化算法的PISA架构芯片资源排布方法流程图;
图5所示是基于可调级数裕量改进的动态扩增优化模型求解框图;
图6所示是各级流水线空闲碎片资源排布;
图7所示是可达性矩阵;
图8所示是ASAP和ALAP调度过程;
图9所示是基本块可调用级数裕量;
图10所示是各流水级节点分配方案可视化。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
实施例1
参见图4,本发明考虑流水线每级中同一条执行流程上的基本块资源共享约束问题,研究了PISA架构芯片在资源约束条件下的资源排布问题,以解决多层优化资源排布问题。
一种基于动态扩增逐层优化算法的PISA架构芯片资源排布方法,在程序基本块排布基础上,考虑基本块资源共享约束问题,在资源约束条件下提出基于可调级数裕量改进的动态扩增优化调度算法,以解决多层优化资源排布问题;其包括步骤如下:
S1,以最小化占用流水线级数为优化目标,在数据依赖、控制依赖和资源限制的复杂约束条件下,提出基于动态扩增逐层优化调度算法进行建模,求解各级流水线最优基本块排布方案;
S2,在程序基本块排布基础上,考虑流水线每级中同一执行流程上的基本块资源共享约束问题,采用基于可调级数裕量改进的动态扩增优化调度算法,重新建立以占用的流水线级数最少为优化目标的动态调度问题;
S3,建立目标函数和优化目标,以控制依赖图和数据依赖图为基础构建程序依赖图,基于共享资源约束应用基于可调级数裕量改进的动态扩增优化调度模型进行求解,获得初步排布结果,引入空闲碎片资源填充策略进行基本块插入,以获得最优基本块排布方案。
实施例2
参见图5,本实施例的基于动态扩增逐层优化算法的PISA架构芯片资源排布方法,与实施例1不同的是,进一步的于:步骤S3中,基于共享资源约束应用基于可调级数裕量改进的动态扩增优化调度模型进行求解的过程如下:
步骤S3-1,考虑流水线每级中同一执行流程下的资源共享约束条件,引入Floyed算法构建可达矩阵,用以判断各基本块之间是否处于同一条执行流程上;
步骤S3-2,引入ASAP和ALAP算法以计算各基本块的可调级数裕量,综合程序依赖关系、资源信息和可调级数裕量,加权构建各基本块的可调度优先级;
步骤S3-3,在控制依赖约束、数据依赖约束和资源依赖约束条件下,以最小化占用流水线级数为优化目标,基于可调级数裕量改进的动态扩增优化调度算法进行建模,初步求解各级流水线的最优基本块排布方案;
步骤S3-4,进一步提出空闲碎片资源填充策略遍历流水线,插空各基本块以实现排布方案二次优化,以获取最优基本块排布方案,实现最小化流水线级数,获取全局最优解。
如图2所示,步骤S1中,求解各级流水线的最优基本块排布方案的过程如下:
首先,根据给定的各基本块在程序流程图中相对位置和各基本块数据流信息分别构建控制依赖图和数据依赖图,引入程序依赖图用以综合基本块之间的控制依赖和数据依赖关系,从而降低问题的求解难度以方便后续的模型求解;
其次,在满足程序依赖关系的条件下,构建重要资源优先的基本块调度优先级顺序;各流水线级采用基于基本块优先级逐层优化策略,当资源受限时进行流水线级数动态扩增,将最小化流水线级数问题转换为最大化各级流水线资源利用率问题,有效实现在资源限制条件下求解各级流水线基本块的最优放置方案,并获得所有基本块在各级流水线的排布结果。
针对实际的PISA架构芯片的建立资源排布问题,在数据依赖、控制依赖和资源限制三类约束条件下构建芯片资源排布模型,给定其资源排布存在如下约束条件:
(1)控制约束:程序控制流中基本块的先后运行顺序。
(2)数据约束:数据流读写数据的先后顺序。
(3)资源约束:
(a)流水级每级的TCAM资源最大为1;
(b)流水级每级的HASH资源最大为2;
(c)流水级每级的ALU资源最大为56;
(d)流水级每级的QUALIFY资源最大为64;
(e)约定流水线第0级与第16级,第1级与第17级,...,第15级与第31级为折叠级数,折叠的两级TCAM资源加起来最大为1,HASH资源加起来最大为3。注:如果需要的流水线级数超过32级,则从第32开始的级数不考虑折叠资源限制;
(f)有TCAM资源的偶数级数量不超过5;
(g)每个基本块只能排布到一级;
通过资源排布算法,列出满足数据依赖、控制依赖以及资源约束规则(1)-(3)时基本块的排布结果,以保证占用的流水线级数尽量短且芯片资源利用率最大。
针对现有程序任务调度算法存在复用性差、优先级确认困难、效率低等问题,采用基于动态扩增逐层优化的基本块调度算法,在满足三类约束条件前提下,提高芯片资源利用率、减少连线复杂度。该算法根据数据依赖关系和控制依赖关系作为基础,生成程序依赖图,并在此基础上构建基于优先级的逐层优化方案用以保证各基本块之间的依赖约束,进一步利用动态规划方法逐层求解在当前流水线层次资源约束下基本块的最优放置方案,进行流水线动态扩增。最终,可获得所有基本块在各流水线级上的排布图。动态扩增逐层优化算法的流程如图3所示。
实施例3
本发明在程序基本块排布基础上,考虑流水线每级中同一执行流程上的基本块存在资源共享限制,在更改后的资源约束条件下提出基于可调级数裕量改进的动态扩增优化调度算法,进一步考虑了多层优化资源排布问题。
在P4程序流程图中,对于不在一条执行流程上的基本块可以共享HASH资源和ALU资源,当其资源不超过每级资源限制时,基本块即可排布到同一级。据此,对前述的约束条件(b)、(c)、(e)作如下更改:
(b)流水线每级中同一条执行流程上的基本块的HASH资源之和最大为2;
(c)流水线每级中同一条执行流程上的基本块的ALU资源之和最大为56;
(e)折叠的两级,对于TCAM资源约束不变,对于HASH资源,每级分别计算同一条执行流程上的基本块占用的HASH资源,再将两级的计算结果相加,结果不超过3。
进而,进一步考虑基本块资源共享约束问题,从而重新建立以占用的流水线级数最少为优化目标的动态调度问题,列出满足数据依赖、控制依赖以及更改后的资源限制规则(1)-(3)时基本块的排布结果,以保证占用的流水线级数尽量短且芯片资源利用率最大。
通过建立目标函数和优化目标,以控制依赖图和数据依赖图为基础构建程序依赖图,并进一步基于共享资源约束应用基于可调级数裕量改进的动态扩增优化调度模型进行求解,获得初步排布结果,引入空闲碎片资源填充策略进行基本块插入,以获得最优基本块排布方案。
其过程包括基于可调级数裕量改进的动态扩增优化调度模型,建立目标函数和约束条以及件应用基于可调级数裕量改进的动态扩增优化调度模型进行求解的过程,以及引入空闲碎片资源填充遍历算法进行二次优化的过程,具体如下:
1)建立目标函数和约束条件
优化目标:PISA架构芯片处理P4程序进行资源排布的过程中,需要以占用的流水线级数尽量短为优化目标进行建模。
目标函数:最小化流水线级数J(x;V)
其中,J(·)代表基本块集合V所占用的流水线级数。
决策变量:决策变量xi,j用于判断基本块j是否被分配到流水线第i级。
约束条件:约束1:基本块的执行顺序间存在控制依赖,该约束条件为:
其中,对于控制依赖,基本块ci和基本块cj是具有控制依赖约束的两个基本块,且基本块ci排布的流水线级数需要小于等于基本块cj排布的流水线级数;e(ci,cj)表示节点ci和节点cj的控制依赖约束边;Ec表示控制依赖图中所有约束边的集合;与分别表示节点ci和cj所占用的流水线级数,xi,j为在第i级中是否存在第j个节点。
约束2:读写变量使得基本块之间存在数据依赖,该约束条件为:
其中,基本块di和基本块dj是具有数据依赖,①表示两个节点间存在写后读或写后写数据依赖关系,②读后写数据依赖关系。e(di,dj)表示节点di和节点dj的控制依赖约束边;Ed表示控制依赖图中所有约束边的集合;与分别表示节点di和dj所占用的流水线级数。
约束3:考虑程序流图中,不同执行流程上的节点可以共享资源。规定流水线每级中同一条执行流程上的基本块的HASH资源和ALU资源之和最大分别为2、56,因此有如下资源数量约束:
其中γTCAM(j),γHASH(j),γALU(j),γQUALIFY(j)分别表示流水线基本块j所占用的TACM,HASH,ALU,QUALIFY所占用资源数量,级数i∈[0,N],基本块j∈[0,M],执行流程q∈[0,P]。
约束4:在考虑不同执行流程上资源可以共享的基础上,针对流水线第0级与第16级,第1级与第17级,...,第15级与第31级为折叠级数之间的约束进行了更改。其中,为折叠级数的两级TCAM资源γTCAM加起来最大为1,每级分别计算同一条执行流程上的基本块占用的HASH资源γHASH,再将两级的计算结果相加,结果不超过3。且当需要的流水线级数超过32级,则从第32开始的级数不考虑折叠资源限制。因此,该折叠约束条件为:
综上所述,可以建立问题二的数学模型为:
2)基于可调级数裕量改进的动态扩增优化模型求解,求解流程如图5所示
考虑流水线每级中同一执行流程下的资源共享约束条件,引入Floyed算法构建可达矩阵,计算各基本块之间是否处于同一条执行流程上。其次,进一步引入了ASAP和ALAP算法以计算各基本块之间的可调级数裕量,综合已计算的程序依赖关系和资源信息,三者加权构建各基本块的可调度优先级。在控制依赖约束和已更改的资源约束条件下应用问所提出的基于可调级数裕量改进的动态扩增优化模型,初步求解各级流水线的最优基本块排布方案,进一步提出空闲碎片资源填充策略遍历流水线,以获取最优基本块排布方案,实现最小化流水线级数。
基于Floyed构建可达矩阵
考虑流水线每级中同一条执行流程的资源排布问题,需要判断每级各基本块是否处于同一条执行流程上,因此构建可达矩阵,用矩阵形式描述各基本块之间的可达关系。可达矩阵可描述各任意基本块到另一基本块是否存在路径,根据所构建的控制流程图Gc=<Vc,Ec>,构建可达矩阵A(Gc)=(aij)M×M,其中:
采用弗洛伊德(Floyed)算法基于所构建的控制流程图,Floyed是一种利用动态规划思想寻找给定加权图中多源点之间最短路径算法,其仅由三层循环构成逻辑非常简单。在本题中,可达矩阵的算法流程如下:
1.Algorithm
2.A#定义可达矩阵A,Size为607×607。
3.For K in range(M):
4.For S in range(M):
5.For E in range(M):
6.A[S,E]=Max(A[S,E],A[S,E]+A[E,K])#如过节点S到K的距离小于节点S到E和节点E到K的距离之和,则更新S到K的最短距离
7.返回矩阵A#如果Aij>0,则表示节点i与节点j之间是可达的。
基于ASAP和ALAP可调级数裕量计算
在不考虑资源限制的情况下,首先采用ASAP和ALAP调度算法计算各基本块所能在的流水线的最大和最小级数,作为计算基本块的可调度区间。为了方便后续任务的执行,首先需给定前驱依赖节点[6]、后继依赖节点、最大级数、最小级数和资源占用函数等变量的定义。其中,由于PDG图中存在多个入度为零的节点和多个出度为零的节点,采用构建虚拟节点的方式分别生成程序依赖图设置为多个入口节点的前驱节点和多个出口节点的后继节点。
在不考虑资源约束的情况下,对于任意满足程序依赖关系e=<vi,vj>,其前驱依赖节点表示为pre(vj)=vi;后继依赖节点定义为suc(vi)=vj。为获得基本块的级数可调裕量,首先需定义基本块vi在PISA芯片上的最小流水线级数Sest(vi)和最大流水线级数Slst(vi)。在不考虑资源约束的情况下,其最小流水线级数:
其最大流水线级数定义为:
可调级数裕量是指基本块vi的可执行级数范围大小,具体定义为:
M(vi)=Slst(vi)-Sest(vi)(6.10)
其中,M(vi)越小说明该基本块vi越关键,当M(vi)=0时,该基本块节点为关键节点。
此外,为满足PISA架构芯片资源限制,对同一流水线芯片中的四类资源分别进行数目统计,定义为RTCAM(i),RHASH(i),RALU(i),RQUALIFY(i),具体可定义为:
其中,Rvar(·)表示在当前i级所占用的资源总量,xi,j表示第j个基本块在第i级流水线上,γvar(j)表示第j个基本块的所占用的资源量。
引入ASAP和ALAP算法对程序依赖图进行调度,综合考虑程序依赖图PDG、基本块可调裕量以及资源重要性基础上,设计基于以上三者的优先级调度算法用于确定基本块节点的调度顺序。基于可调裕量的节点优先级Wj(M)设置为节点在程序依赖关系中的可调度范围,可调度范围越小说明其有严格的层级关系应该要优先放置。本文分别设置TCAM,HASH,ALU,QUALIFY重要性分别为WTCAM,WHASH,WALU与WQUALIFY。节点j的重要性为三种优先级之和:
计算基本块的优先级顺序具体步骤如下:
输入:程序依赖图
Step 1:计算每个基本块的ASAP和ALAP的调度结果;
Step 2:建立可执行关系矩阵,计算每个基本块的可调级数裕量;
Step 3:计算流水线各级数上资源占用量
Step 4:基于优先级策略计算各基本块的重要性
输出:各基本块的优先级顺序。
求解策略:针对同一执行流程下的资源约束条件,在可达矩阵A的基础上,引入同一执行流程判断。具体的判断方法如下:
Step 1:对于已经存在的节点列表v={v0,v1,...,vn},待入放入节点vj。
Step 2:构建节点列表中所有节点的组合方案,并删除其中存两个及以上节点在程序流程图中深度相同的节点组合。
Step 3:遍历这些节点组合,保存节点vj与其中任意节点都存在可达关系的节点组合,并且将节点vj加入到该组合中。
Step 4:判断所有组合中,是否存在节点HASH资源的总和是否大于3的节点组合。若存在,则表示当前节点vj与当前层其余节点存在资源冲突,不能放入该流水线层级。反之若不存在,则表示节点vj可以放入到当前流水线层级。
按照以上方法修改问题一中动态优化判断节点是否可以放置在某一层级的判断条件,可以得到在考虑代码执行流程的资源共享条件下基本块的最优放置方案。
3)空闲碎片资源填充策略
基于优先级逐层优化方法并动态扩增流水线级数的求解过程由于基本块之间的约束导致存在局部最优解,因此,本文提出空闲碎片资源填充的二次优化的调度策略,以寻求全局最优解。空闲碎片资源填充是指将基本块放置到具有空闲资源的流水线级数上,以更好地对基本块进行排布,提高资源利用率并寻找最优流水线级数。如图6所示,模拟列出经过动态扩增优化算法获得的最优基本块排布结果,各级可能存在四类资源的空闲资源,为充分利用空闲碎片资源,采用逐层遍历流水线插空排布基本块,具体步骤如下:
输入:基于动态扩增优化算法获得的各级流水线基本块的排布结果
1.计算各级资源,判断是否具有空闲资源,获取具有空闲资源的流水线级数
2.从具有空闲资源的流水线的下一层级开始遍历该级的所有基本块,获取满足空闲资源填补的基本块。
3.判断该基本块是否与上一级存在依赖约束,判断该基本块上移是否与当前层的基本块存在依赖约束,获取满足依赖约束的基本块
4.遍历到层级末尾基本块,完成空闲碎片资源填充。
输出:各级基本块排布结果。
4)求解过程与结果分析
求解过程:如图7所示是基于本题所给出的程序流程图CFG构建出的有关于本题的可达性矩阵,白色表示可达,黑色表示不可达,具体结果展示在支撑材料文件中。
采用ASAP和ALAP算法对程序依赖图进行调度,为简便说明调度过程已简化程序依赖图进行模拟说明,其调度过程如图8所示。具体步骤如下:
根据调度结果建立可执行关系矩阵(Dmn)M×N,如表6-1所示描述级数与基本块之间的可否执行的关系,可执行矩阵的行表示流水线可执行级数,列为基本块的序号。其中T、H、A、Q分别代表该基本块需要占用TCAM、HASH、ALU和QUALIFY资源。根据表6-1可计算各基本块的可调用级数裕量,可视化展示如图9所示,可调用级数裕量较小的基本块可供选择的级数少,其优化可能性较小,因此调度优先级更高。
表6-1基本块与级数的关系
根据基本块与各级数的关系,可得到流水线各级上资源所占用的分布情况,如表6-2所示,计算各级各类资源当前占用量。为方便后续考虑资源约束条件下基本块调度问题,可根据计算每一级的流水线资源占用情况进行判断,将基本块安排在符合资源约束且总资源占用量少的流水线中,使得最大化资源利用率的前提下,最小化流水线级数。
表6-2流水线各级资源占用分布情况
结果分析
在基于以上优化方法后,可求解在考虑统一执行流程上基本块资源共享限制问题的最优基本块放置方案。最优化配置方案展示了共有33级流水线的基本块排布结果。为方便直观看到各级流水线的资源配置方案,可视化结果如图10所示,其中横坐标表示流水线层级,纵坐标表示流水线防止的基本块个数,颜色深度代表节点的编号。此外,还展示了部分流水线中基本块的排布情况,如表6-3所示。
表6-3各级流水线基本块排布结果
模型评估与性能分析
在本发明所提模型中,以最小化流水线级数为优化目标,构建动态扩增优化调度算法进行求解和优化。动态扩增优化调度算法主要包括四个阶段:构建程序依赖图、计算可调级数、基于优先级逐层优化以及流水线级数动态扩增。本问题首先构建数据依赖和控制依赖关系,引入程序依赖图使得数据依赖和控制依赖约束条件转换成程序依赖约束条件,降低了问题的求解难度,以方便后续的模型求解。通过对程序依赖图进行校正,保证数据依赖和控制依赖的前提下仍为有向无环图,保证在不考虑资源的情况下为本题提供了较优的初始解,极大地减少了后续寻找最优解的时间。其次,计算各基本块可调级数裕量,综合程序依赖关系以构建可参考的调度优先级顺序,以获得初始调度基本块。基于优先级逐层优化,有效进行流水线级数动态扩增,展现了较好的寻优效果。其中,动态扩增优化各操作的时间复杂度如表6-4所示,基于可调级数裕量改进的动态扩增优化算法的时间复杂度为O(N3)。
表6-4动态扩增优化调度算法时间复杂度
本发明以最小化流水线级数为优化目标,在建模时充分考虑了PISA架构芯片的数据依赖、控制依赖和资源依赖三类约束条件,将约束条件抽象成数学语言描述,构建动态扩增优化调度算法进行求解和优化,获取最优资源排布方案。将数据依赖和控制依赖条件转换成程序依赖约束条件,在不考虑资源的情况下为本题提供了较为优的初始解,极大减少了后续寻优的时间复杂度。计算各基本块的可调级数裕量、资源重要性和依赖约束建立调度优先级顺序,逐层优化迭代进行流水线级数动态扩增,使得获取全局最优解。
评估结果表明:(1)模型的实用性较强,使得P4程序在PISA架构芯片上运行时具有更高的资源利用率,以及更少的连线复杂度;(2)模型的效率较高,且具有较好的鲁棒性。
由于构建加权优先级顺序时,未进行参数敏感度验证,不同约束条件的重要性存在不同的权重,可能存在一定偏差。模型建立过程中存在重复操作,导致复杂度增加。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
为了便于问题的研究,本发明对模型即其中的某些条件进行了简化及合理的假设,且忽略了基本块之间的通讯时间;P4流程图中存在多个出口节点,构建虚拟节点将出口与其相连,虚拟节点不影响层级划分当前程序的运行不会受到外部其他程序的影响。
涉及符号说如下:
Claims (10)
1.一种基于可调级数裕量改进的动态扩增逐层优化算法的PISA架构芯片资源排布方法,在程序基本块排布基础上,考虑基本块资源共享约束问题,进一步解决多层优化资源排布问题;其特征在于,包括步骤:
S1,以最小化占用流水线级数为优化目标,在数据依赖、控制依赖和资源限制的复杂约束条件下,提出基于动态扩增逐层优化调度算法进行建模,求解各级流水线最优基本块排布方案;
S2,在程序基本块排布基础上,考虑流水线每级中同一执行流程上的基本块资源共享约束问题,采用基于可调级数裕量改进的动态扩增优化调度算法,重新建立以占用的流水线级数最少为优化目标的动态调度问题;
S3,建立目标函数和优化目标,以控制依赖图和数据依赖图为基础构建程序依赖图,基于共享资源约束应用基于可调级数裕量改进的动态扩增优化调度模型进行求解,获得初步排布结果,引入空闲碎片资源填充策略进行基本块插入,以获得最优基本块排布方案。
2.根据权利要求1所述的基于可调级数裕量改进的动态扩增逐层优化算法的PISA架构芯片资源排布方法,其特征在于:步骤S3中,基于共享资源约束应用基于可调级数裕量改进的动态扩增优化调度模型进行求解的过程如下:
步骤S3-1,考虑流水线每级中同一执行流程下的资源共享约束条件,引入Floyed算法构建可达矩阵,用以判断各基本块之间是否处于同一条执行流程上;
步骤S3-2,引入ASAP和ALAP算法以计算各基本块的可调级数裕量,综合程序依赖关系、资源信息和可调级数裕量,加权构建各基本块的可调度优先级;
步骤S3-3,在控制依赖约束、数据依赖约束和资源依赖约束条件下,以最小化占用流水线级数为优化目标,基于可调级数裕量改进的动态扩增优化调度算法进行建模,初步求解各级流水线的最优基本块排布方案;
步骤S3-4,进一步提出空闲碎片资源填充策略遍历流水线,插空各基本块以实现排布方案二次优化,以获取最优基本块排布方案,实现最小化流水线级数,获取全局最优解。
3.根据权利要求1或2所述的基于可调级数裕量改进的动态扩增逐层优化算法的PISA架构芯片资源排布方法,其特征在于:步骤S1中,求解各级流水线的最优基本块排布方案的过程如下:
首先,根据给定的各基本块在程序流程图中相对位置和各基本块数据流信息分别构建控制依赖图和数据依赖图,引入程序依赖图用以综合基本块之间的控制依赖和数据依赖关系,从而降低问题的求解难度以方便后续的模型求解;
其次,在满足程序依赖关系的条件下,构建重要资源优先的基本块调度优先级顺序;各流水线级采用基于基本块优先级逐层优化策略,当资源受限时进行流水线级数动态扩增,将最小化流水线级数问题转换为最大化各级流水线资源利用率问题,有效实现在资源限制条件下求解各级流水线基本块的最优放置方案,并获得所有基本块在各级流水线的排布结果。
4.根据权利要求3所述的基于可调级数裕量改进的动态扩增逐层优化算法的PISA架构芯片资源排布方法,其特征在于:针对实际的PISA架构芯片的建立资源排布问题,在数据依赖、控制依赖和资源限制三类约束条件下构建芯片资源排布模型,给定其资源排布存在如下约束条件:
(1)控制约束:程序控制流中基本块的先后运行顺序;
(2)数据约束:数据流读写数据的先后顺序;
(3)资源约束:通过资源排布算法,列出满足数据依赖、控制依赖以及资源约束规则(1)-(3)时基本块的排布结果,以保证占用的流水线级数尽量短且芯片资源利用率最大。
5.根据权利要求1、2或4所述的基于可调级数裕量改进的动态扩增逐层优化算法的PISA架构芯片资源排布方法,其特征在于:在P4程序流程图中,对于不在一条执行流程上的基本块可以共享HASH资源和ALU资源,当其资源不超过每级资源限制时,基本块即可排布到同一级;据此,给定其资源排布存在如下约束条件:
(a)流水级每级的TCAM资源最大为1;
(b)流水线每级中同一条执行流程上的基本块的HASH资源之和最大为2;
(c)流水线每级中同一条执行流程上的基本块的ALU资源之和最大为56;
(d)流水级每级的QUALIFY资源最大为64;
(e)折叠的两级,对于TCAM资源约束不变,对于HASH资源,每级分别计算同一条执行流程上的基本块占用的HASH资源,再将两级的计算结果相加,结果不超过3;
(f)有TCAM资源的偶数级数量不超过5;
(g)每个基本块只能排布到一级;
通过资源排布算法,列出满足数据依赖、控制依赖以及更改后的资源限制规则(1)-(3)时基本块的排布结果,以保证占用的流水线级数尽量短且芯片资源利用率最大。
6.根据权利要求1或2所述的基于可调级数裕量改进的动态扩增逐层优化算法的PISA架构芯片资源排布方法,其特征在于:基于可调级数裕量改进的动态扩增优化调度模型,建立目标函数和约束条件:
优化目标:PISA架构芯片处理P4程序进行资源排布的过程中,需要以占用的流水线级数尽量短为优化目标进行建模;
目标函数:最小化流水线级数J(x;V)
其中,J(·)代表基本块集合V所占用的流水线级数;
决策变量:决策变量xi,j用于判断基本块j是否被分配到流水线第i级;
约束条件:
约束1:基本块的执行顺序间存在控制依赖,该约束条件为:
其中,对于控制依赖,基本块ci和基本块cj是具有控制依赖约束的两个基本块,且基本块ci排布的流水线级数需要小于等于基本块cj排布的流水线级数;e(ci,cj)表示节点ci和节点cj的控制依赖约束边;Ec表示控制依赖图中所有约束边的集合;与分别表示节点ci和cj所占用的流水线级数,xi,j为在第i级中是否存在第j个节点。
约束2:读写变量使得基本块之间存在数据依赖,该约束条件为:
其中,基本块di和基本块dj是具有数据依赖,①表示两个节点间存在写后读或写后写数据依赖关系,②读后写数据依赖关系;e(di,dj)表示节点di和节点dj的控制依赖约束边;Ed表示控制依赖图中所有约束边的集合;与分别表示节点di和dj所占用的流水线级数;
约束3:考虑程序流图中,不同执行流程上的节点可以共享资源;规定流水线每级中同一条执行流程上的基本块的HASH资源和ALU资源之和最大分别为2、56,因此有如下资源数量约束:
其中γTCAM(j),γHASH(j),γALU(j),γQUALIFY(j)分别表示流水线基本块j所占用的TACM,HASH,ALU,QUALIFY所占用资源数量,级数i∈[0,N],基本块j∈[0,M],执行流程q∈[0,P];
约束4:在考虑不同执行流程上资源可以共享的基础上,针对流水线第0级与第16级,第1级与第17级,...,第15级与第31级为折叠级数之间的约束进行了更改;其中,为折叠级数的两级TCAM资源γTCAM加起来最大为1,每级分别计算同一条执行流程上的基本块占用的HASH资源γHASH,再将两级的计算结果相加,结果不超过3;且当需要的流水线级数超过32级,则从第32开始的级数不考虑折叠资源限制;因此,该折叠约束条件为:
约束5:此外,有TCAM资源的偶数级数量不超过5,该约束条件可表示为:
综上所述,可以建立问题一的数学模型为:
综上所述,可以建立问题二的数学模型为:
8.根据权利要求7所述的基于可调级数裕量改进的动态扩增逐层优化算法的PISA架构芯片资源排布方法,其特征在于:基于ASAP和ALAP可调级数裕量计算的过程如下:
在不考虑资源限制的情况下,首先采用ASAP和ALAP调度算法计算各基本块所能在的流水线的最大和最小级数,作为计算基本块的可调度区间;为了方便后续任务的执行,首先需给定前驱依赖节点、后继依赖节点、最大级数、最小级数和资源占用函数的定义;
对于任意满足程序依赖关系e=<vi,vj>,其前驱依赖节点表示为pre(vj)=vi;后继依赖节点定义为suc(vi)=vj;为获得基本块的级数可调裕量,定义基本块vi在PISA芯片上的最小流水线级数Sest(vi)和最大流水线级数Slst(vi),在不考虑资源约束的情况下,其最小流水线级数:
其最大流水线级数定义为:
可调级数裕量是指基本块vi的可执行级数范围大小,具体定义为:
M(vi)=Slst(vi)-Sest(vi) (6.10)
其中,M(vi)越小说明该基本块vi越关键,当M(vi)=0时,该基本块节点为关键节点;
为满足PISA架构芯片资源限制,对同一流水线芯片中的四类资源分别进行数目统计,定义为RTCAM(i),RHASH(i),RALU(i),RQUALIFY(i),具体可定义为:
其中,Rvar(·)表示在当前i级所占用的资源总量,xi,j表示第j个基本块在第i级流水线上,γvar(j)表示第j个基本块的所占用的资源量;
引入ASAP和ALAP算法对程序依赖图进行调度,综合考虑程序依赖图PDG、基本块可调裕量以及资源重要性基础上,设计基于以上三者的优先级调度算法用于确定基本块节点的调度顺序;基于可调裕量的节点优先级Wj(M)设置为节点在程序依赖关系中的可调度范围,可调度范围越小说明其有严格的层级关系应该要优先放置;
设置TCAM,HASH,ALU,QUALIFY重要性分别为WTCAM,WHASH,WALU与WQUALIFY;节点j的重要性为三种优先级之和:
计算基本块的优先级顺序具体步骤如下:
输入:程序依赖图
Step 1:计算每个基本块的ASAP和ALAP的调度结果;
Step 2:建立可执行关系矩阵,计算每个基本块的可调级数裕量;
Step 3:计算流水线各级数上资源占用量;
Step 4:基于优先级策略计算各基本块的重要性;
输出:各基本块的优先级顺序。
9.根据权利要求8所述的基于可调级数裕量改进的动态扩增逐层优化算法的PISA架构芯片资源排布方法,其特征在于:针对所给出的同一执行流程下的资源约束条件,在可达矩阵A的基础上,引入同一执行流程判断,具体的求解策略判断方法如下:
Step 1:对于已经存在的节点列表v={v0,v1,...,vn},待入放入节点vj;
Step 2:构建节点列表中所有节点的组合方案,并删除其中存两个及以上节点在程序流程图中深度相同的节点组合;
Step 3:遍历这些节点组合,保存节点vj与其中任意节点都存在可达关系的节点组合,并且将节点vj加入到该组合中;
Step 4:判断所有组合中,是否存在节点HASH资源的总和是否大于3的节点组合;若存在,则表示当前节点vj与当前层其余节点存在资源冲突,不能放入该流水线层级;反之若不存在,则表示节点vj可以放入到当前流水线层级;
按照以上方法修改动态优化判断节点是否可以放置在某一层级的判断条件,得到在考虑代码执行流程的资源共享条件下基本块的最优放置方案。
10.根据权利要求9所述的基于可调级数裕量改进的动态扩增逐层优化算法的PISA架构芯片资源排布方法,其特征在于:由于基本块之间的约束导致存在局部最优解,提出空闲碎片资源填充的二次优化的调度策略,以寻求全局最优解;
模拟列出经过动态扩增优化算法获得的最优基本块排布结果,各级可能存在四类资源的空闲资源,为充分利用空闲碎片资源,采用逐层遍历流水线插空排布基本块,具体步骤如下:
输入:基于动态扩增优化算法获得的各级流水线基本块的排布结果
1)计算各级资源,判断是否具有空闲资源,获取具有空闲资源的流水线级数;
2)从具有空闲资源的流水线的下一层级开始遍历该级的所有基本块,获取满足空闲资源填补的基本块;
3)判断该基本块是否与上一级存在依赖约束,判断该基本块上移是否与当前层的基本块存在依赖约束,获取满足依赖约束的基本块;
4)遍历到层级末尾基本块,完成空闲碎片资源填充;
输出:各级基本块排布结果;
根据基本块与各级数的关系,得到流水线各级上资源所占用的分布情况,计算各级各类资源当前占用量,根据计算每一级的流水线资源占用情况进行判断,将基本块安排在符合资源约束且总资源占用量少的流水线中,使得最大化资源利用率的前提下,最小化流水线级数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310079264.XA CN116306424A (zh) | 2023-02-08 | 2023-02-08 | 一种基于可调级数裕量改进的动态扩增逐层优化算法的pisa架构芯片资源排布方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310079264.XA CN116306424A (zh) | 2023-02-08 | 2023-02-08 | 一种基于可调级数裕量改进的动态扩增逐层优化算法的pisa架构芯片资源排布方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116306424A true CN116306424A (zh) | 2023-06-23 |
Family
ID=86800387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310079264.XA Pending CN116306424A (zh) | 2023-02-08 | 2023-02-08 | 一种基于可调级数裕量改进的动态扩增逐层优化算法的pisa架构芯片资源排布方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116306424A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117408220A (zh) * | 2023-12-15 | 2024-01-16 | 湖北工业大学 | 一种可编程交换架构芯片资源排布方法及装置 |
-
2023
- 2023-02-08 CN CN202310079264.XA patent/CN116306424A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117408220A (zh) * | 2023-12-15 | 2024-01-16 | 湖北工业大学 | 一种可编程交换架构芯片资源排布方法及装置 |
CN117408220B (zh) * | 2023-12-15 | 2024-02-23 | 湖北工业大学 | 一种可编程交换架构芯片资源排布方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111756812B (zh) | 一种能耗感知的边云协同动态卸载调度方法 | |
Chen et al. | Dependency-aware computation offloading for mobile edge computing with edge-cloud cooperation | |
CN102855153B (zh) | 面向片式多核处理器的流编译优化方法 | |
US20130218299A1 (en) | MCP Scheduling For Parallelization Of LAD/FBD Control Program In Multi-Core PLC | |
CN105956021A (zh) | 一种适用于分布式机器学习的自动化任务并行的方法及其系统 | |
US11366649B2 (en) | Compilation method | |
Peng et al. | Genetic Algorithm‐Based Task Scheduling in Cloud Computing Using MapReduce Framework | |
CN116306424A (zh) | 一种基于可调级数裕量改进的动态扩增逐层优化算法的pisa架构芯片资源排布方法 | |
CN115733888A (zh) | 一种边缘环境下支持多物联网应用自适应卸载的方法 | |
CN108875914A (zh) | 对神经网络数据进行预处理和后处理的方法和装置 | |
Pérez et al. | Parallel/distributed implementation of cellular training for generative adversarial neural networks | |
Mollajafari et al. | A repair-less genetic algorithm for scheduling tasks onto dynamically reconfigurable hardware | |
Long et al. | Deep Reinforcement Learning-Based SFC Deployment Scheme for 6G IoT Scenario | |
CN116432575A (zh) | 一种pisa架构芯片内部结构中程序基本块优化排布方法 | |
CN114860417B (zh) | 多核神经网络处理器及用于该处理器多任务分配调度方法 | |
Papa et al. | Automatic large-scale integrated circuit synthesis using allocation-based scheduling algorithm | |
Bolanos et al. | Mapping and Scheduling in Heterogeneous NoC through Population-Based Incremental Learning. | |
Zhang et al. | Resource and delay aware fine-grained service offloading in collaborative edge computing | |
CN116166396A (zh) | 调度模型的训练方法、装置、电子设备及可读存储介质 | |
Yan et al. | Contention-aware mapping and scheduling optimization for NoC-based MPSoCs | |
Stan et al. | A grasp for placement and routing of dataflow process networks on many-core architectures | |
Frid et al. | Memory-aware multiobjective design space exploration of heteregeneous MPSoC | |
Majd et al. | Optimizing scheduling for heterogeneous computing systems using combinatorial meta-heuristic solution | |
Uscumlic et al. | Design space exploration with deterministic latency guarantees for crossbar mpsoc architectures | |
Guo et al. | Greedy Tuning Algorithm for Resource Scheduling of PISA Chips |
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 |