CN110333857A - 一种基于约束规划的自定义指令自动识别方法 - Google Patents
一种基于约束规划的自定义指令自动识别方法 Download PDFInfo
- Publication number
- CN110333857A CN110333857A CN201910627531.6A CN201910627531A CN110333857A CN 110333857 A CN110333857 A CN 110333857A CN 201910627531 A CN201910627531 A CN 201910627531A CN 110333857 A CN110333857 A CN 110333857A
- Authority
- CN
- China
- Prior art keywords
- instruction
- custom
- constraint
- custom instruction
- instructions
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000005457 optimization Methods 0.000 claims abstract description 18
- 230000009467 reduction Effects 0.000 claims abstract description 5
- 238000005265 energy consumption Methods 0.000 claims abstract description 4
- 238000012545 processing Methods 0.000 claims description 17
- 230000006872 improvement Effects 0.000 claims description 12
- 238000013461 design Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 9
- KDYFGRWQOYBRFD-UHFFFAOYSA-N succinic acid Chemical compound OC(=O)CCC(O)=O KDYFGRWQOYBRFD-UHFFFAOYSA-N 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000000926 separation method Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 abstract description 4
- 230000000694 effects Effects 0.000 description 5
- 238000010187 selection method Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 230000001186 cumulative effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 101100113087 Mus musculus Cgnl1 gene Proteins 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002187 spin decoupling employing ultra-broadband-inversion sequences generated via simulated annealing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- 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
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明提供一种基于约束规划的自定义指令自动识别方法,涉及电子设计自动化技术领域。该方法包括自定义指令的枚举和自定义指令的选择两部分;自定义指令的枚举通过建立自定义指令的枚举约束编程模型,从数据流图中枚举所有满足约束条件的子图实现;该过程分别对约束条件建模,并针对枚举问题,采用约束编程方法求所有满足约束条件的自定义指令,完成对自定义指令的枚举;自定义指令的选择通过建立自定义指令的选择约束编程模型,实现多目标优化;该过程通过建立自定义指令带来的处理器性能提升和能耗减少的最大化目标函数,采用基于权重的方法,将多目标优化问题转换为单目标优化问题实现。
Description
技术领域
本发明涉及电子设计自动化技术领域,尤其涉及一种基于约束规划的自定义指令自动识别方法。
背景技术
近年来,为了满足嵌入式应用对高性能和低功耗不断增长的需求,扩展指令集广泛应用于嵌入式系统当中.例如,专用指令集处理器(Application Specific InstructionProcessor,ASIP)结合了通用处理器和ASIC的优点,在设计周期、灵活性、性能、以及功耗等方面提供良好的折中。扩展指令集中的自定义指令是通过封装一系列基本指令,实现基本指令之间的链化和并行化,进而提高性能。
面向特定应用的扩展指令集是专用指令集处理器设计的核心环节。扩展指令集通常在多媒体应用处理和信号处理等领域中使用。为了使异构多处理器能够更好地运行不同的多媒体应用程序,Dammak等人将扩展指令集应用到异构多核处理器片上系统之中,使系统在性能和功耗之间进行了良好的权衡。Momcilovic等人将专用指令集处理器用来执行数据自适应运动估计算法,大大节省了数据计算成本,很好的提高了视频处理的速度。Sisto等人提出了一种专用于汽车应用领域传感器信号调理专用处理器设计。
当前,图像处理领域发展迅速,图像处理的效果也正不断的提升。神经网络、支持向量机等学习型的机制虽然在图像处理方面有着较好的优势,但是针对于目前图像数据量庞大的特点,一些效果较好的优化算法却需要大量的时间去处理图像数据或者训练样本。此外,针对实时图像处理需要严格的时间限制。国内外最新研究发现,将扩展指令集应用于图像处理领域当中,能够显著地提升性能。Mori等人提出了用于加速实时IP/CV算法的专用处理器设计.Edwards等人通过应用扩展指令集到实时目标检测系统之中,处理速度提高了1.5至6.8倍。
早期的研究中,是通过设计专用芯片来高效地实现应用程序,但是专用芯片的设计周期长、硬件开发难以调试,其成本也非常高。所以越来越多的研究人员也开始将研究重心转移到扩展指令上,针对特定应用自动地识别扩展指令集。
自动识别扩展指令集的流程如图1所示,首先,图像处理算法源代码作为开源编译器GeCoS的输入,GeCoS将源代码转换为控制数据流图(Control Data Flow Graph,CDFG),控制数据流图是表示多个基本块之间的数据依赖关系的图。然后,子图枚举算法从数据流图中枚举出所有满足约束条件的子图(子图是自定义指令的图形化表示)。接着,子图选择算法从枚举出的子图当中选择部分最佳子图作为最终的自定义指令。最后,将源代码转换为包含所选自定义指令的新代码。
约束编程是一种结合逻辑推理的通用搜索技术,起源于计算机科学和人工智能领域的约束满足问题(Constraint Satisfaction Problem,CSP)。约束满足问题是由给定的一组变量、这组变量的值域以及一组约束条件(方程、不等式以及程序等都可以作为约束条件)组合而成,对于约束满足问题的求解是在所有的组合中找出一种或几种满足约束条件的组合。通常,组合优化、调度优化问题都属于约束满足问题。应用约束编程解决问题时,其表述更加接近于实际问题,无需将约束转换为线性等式或者不等式,使公式表达简单并且易于理解。
发明内容
本发明要解决的技术问题是针对上述现有技术的不足,提供一种基于约束规划的自定义指令自动识别方法,基于约束编程方法对自定义指令进行自动识别。
为解决上述技术问题,本发明所采取的技术方案是:一种基于约束规划的自定义指令自动识别方法,包括自定义指令的枚举和自定义指令的选择两部分;
所述自定义指令的枚举通过建立自定义指令的枚举约束编程模型,从数据流图中枚举所有满足约束条件的子图实现,具体方法为:
为了从数据流图G(V,E)中枚举出所有满足给定约束的自定义指令,设子图S=(Vs,Es)是自定义指令实例的图形化表示,I1,I2分别表示图G中的有效结点的集合和非法结点的集合,
所述数据流图G=(V,E)是一个有向无环图(Directed Acyclic Graph,即DAG),结点集V={v1,v2,...,vM}表示基本指令,M为数据流图结点的个数,边集表示指令之间数据依赖关系,m表示数据流图边的个数;
所述给定的约束条件包括:自定义指令不包含非法结点的约束条件,自定义指令的连通性约束条件,自定义指令是凸的约束条件及自定义指令的输入输出约束条件;
分别对约束条件建模,并针对枚举问题,采用约束编程方法求所有满足约束条件的自定义指令,完成对自定义指令的枚举;
所述对自定义指令不包含非法结点的约束条件建模,如下公式所示:
其中,vsel=0表示非法结点v不包含在自定义指令中;
所述非法结点为:由于可扩展处理器体系结构的限制,内存操作和分支操作这两种基本指令不能包含在自定义指令中,代表这些基本指令的结点被视为非法结点;
所述对自定义指令的连通性的约束条件建模,如下公式所示:
其中,表示结点v和结点vk之间存在一条无向路径,当枚举分离子图时此约束可去除;
所述自定义指令是凸的的约束条件为当且仅当子图s中的任意两个结点u,v之间的任何路径只经过子图s中的结点,对该约束条件建模,如下公式所示:
其中,usel,vsel分别表示结点u和v是否被选择,0表示没有被选择,1表示被选择;
所述自定义指令的输入输出约束条件如下公式所示:
其中,INmax,OUTmax分别表示自定义指令的输入输出上限,INv,OUTv分别表示结点v的入度和出度,Pred(u)={v|v∈V,(v,u)∈E},Succ(u)={v|v∈V,(u,v)∈E}分别表示结点v的前驱结点集合和后续结点集合,vin、vout分别表示结点v的输入、输出数目,msel表示结点m是否被选择;
所述自定义指令的选择通过建立自定义指令的选择约束编程模型,实现多目标优化,具体方法为:在自定义指令枚举阶段所枚举出的子图基础上,首先对所有子图进行图同构匹配处理:给定两个子图a和b,如果a与b同构,则创建模式Ci,并且将子图a和b作为实例被记录在模式Ci中;所述模式是候选自定义指令的图形化表示;
为了建立自定义指令选择问题的约束编程模型,先定义一些变量:N为自定义指令枚举阶段枚举出的候选自定义指令的数目,Ci表示第i个候选自定义指令,i=1,…,N;自定义指令Ci在代码中有ni个实例,分别为每个自定义指令的实例的执行频率为fi,j;自定义指令带来的处理器性能提升和自定义指令在自定义功能单元中实现所需的硬件面积分别用Pi和Ai表示;
则自定义指令带来的处理器性能提升的最大化目标函数如下公式所示:
其中,si,j为二元变量,当自定义指令实例ci,j被选择的时候其值为1,否则为0;
由于自定义指令是通过封装多个基本指令,减少最终取指令和数据在寄存器和处理器之间传输的次数,从而减少处理器的能耗;则自定义指令带来的处理器能耗减少的最大化目标函数如下公式所示:
其中,E(ci,j)表示自定义指令实例ci,j内部边的数目,表示取指令数目的减少量,表示数据传输次数的减少量,α,β为权重参数,α+β=1;
在以上建立的基于目标函数的自定义指令选择模型基础上,为了简化问题,采用基于权重的方法,将多目标优化问题转换为单目标优化问题,得到如下公式所示的自定义指令选择模型:
其中,γ,ε为权重参数,γ+ε=1;
针对用户给定的面积约束,每个自定义指令在自定义功能单元中对应的硬件都有面积大小,则需要对自定义指令的面积约束进行建模,如下公式所示:
其中,A为可扩展处理器设计时给定的所有自定义指令对应的硬件的面积总预算,Ai为第i个自定义指令所对应的硬件面积,Si为二元变量;如果自定义指令Ci至少有一个实例被选择,那么Si的值为1,否则为0,如下公式所示:
采用上述技术方案所产生的有益效果在于:本发明提供的一种基于约束规划的自定义指令自动识别方法,针对自定义指令枚举问题,将问题的建模和求解分离,可适用于多种约束条件的组合,具有较好的通用性和灵活性。针对自定义指令选择问题,通过建立多目标优化约束编程模型,可实现多目标优化;将本发明的自动识别出的自定义指令应用于图像处理类算法,可显著提升算法的性能。
附图说明
图1为本发明背景技术提供的面向图像处理算法的自动识别扩展指令集流程图;
图2为本发明实施例提供的数据流图的示意图;
图3为本发明实施例提供的不同I/O约束条件下运行时间比较结果图;
图4为本发明实施例提供的枚举连通子图和枚举所有子图运行时间比较结果图;
图5为本发明实施例提供的性能提升比较结果图;
图6为本发明实施例提供的采用不同方法选择指令数目的比较结果图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
一种基于约束规划的自定义指令自动识别方法,包括自定义指令的枚举和自定义指令的选择两部分;
所述自定义指令的枚举通过建立自定义指令的枚举约束编程模型,从数据流图中枚举所有满足约束条件的子图实现,具体方法为:
为了从数据流图G(V,E)中枚举出所有满足给定约束的自定义指令,设子图S=(Vs,Es)是自定义指令实例的图形化表示,I1,I2分别表示图G中的有效结点的集合和非法结点的集合,
所述数据流图G=(V,E)是一个有向无环图(DirectedAcyclic Graph,即DAG),如图2所示,结点集V={v1,v2,...,vM}表示基本指令,M为数据流图结点的个数,边集表示指令之间数据依赖关系,m表示数据流图边的个数;
所述给定的约束条件包括:自定义指令不包含非法结点的约束条件,自定义指令的连通性约束条件,自定义指令是凸的约束条件及自定义指令的输入输出约束条件;
分别对约束条件建模,并针对枚举问题,采用约束编程方法求所有满足约束条件的自定义指令,完成对自定义指令的枚举;
所述对自定义指令不包含非法结点的约束条件建模,如下公式所示:
其中,vsel=0表示非法结点v不包含在自定义指令中;
所述非法结点为:由于可扩展处理器体系结构的限制,内存操作和分支操作这两种基本指令不能包含在自定义指令中,代表这些基本指令的结点被视为非法结点;
所述对自定义指令的连通性的约束条件建模,如下公式所示:
其中,表示结点v和结点vk之间存在一条无向路径,当枚举分离子图时此约束可去除;
所述自定义指令是凸的的约束条件为当且仅当子图s中的任意两个结点u,v之间的任何路径只经过子图s中的结点,对该约束条件建模,如下公式所示:
其中,usel,vsel分别表示结点u和v是否被选择,0表示没有被选择,1表示被选择;
本实施例中,对于如图2所示的数据流图,子图{1,2,3}是凸子图,而子图{2,3,5}不是凸子图。
所述自定义指令的输入输出约束条件如下公式所示:
其中,INmax,OUTmax分别表示自定义指令的输入输出上限,INv,OUTv分别表示结点v的入度和出度,Pred(u)={v|v∈V,(v,u)∈E},Succ(u)={v|v∈V,(u,v)∈E}分别表示结点v的前驱结点集合和后续结点集合,vin、vout分别表示结点v的输入、输出数目,msel表示结点m是否被选择;
所述自定义指令的选择通过建立自定义指令的选择约束编程模型,实现多目标优化,具体方法为:在自定义指令枚举阶段所枚举出的子图基础上,首先对所有子图进行图同构匹配处理:给定两个子图a和b,如果a与b同构,则创建模式Ci,并且将子图a和b作为实例被记录在模式Ci中;所述模式是候选自定义指令的图形化表示;
为了建立自定义指令选择问题的约束编程模型,先定义一些变量:N为自定义指令枚举阶段枚举出的候选自定义指令的数目,Ci表示第i个候选自定义指令,i=1,…,N;自定义指令Ci在代码中有ni个实例,分别为每个自定义指令的实例的执行频率为fi,j;自定义指令带来的处理器性能提升和自定义指令在自定义功能单元中实现所需的硬件面积分别用Pi和Ai表示;
则自定义指令带来的处理器性能提升的最大化目标函数如下公式所示:
其中,si,j为二元变量,当自定义指令实例ci,j被选择的时候其值为1,否则为0;
由于自定义指令是通过封装多个基本指令,减少最终取指令和数据在寄存器和处理器之间传输的次数,从而减少处理器的能耗;则自定义指令带来的处理器能耗减少的最大化目标函数如下公式所示:
其中,E(ci,j)表示自定义指令实例ci,j内部边的数目,表示取指令数目的减少量,表示数据传输次数的减少量,α,β为权重参数,α+β=1;
在以上建立的基于目标函数的自定义指令选择模型基础上,为了简化问题,采用基于权重的方法,将多目标优化问题转换为单目标优化问题,得到如下公式所示的自定义指令选择模型:
其中,γ,ε为权重参数,γ+ε=1;
针对用户给定的面积约束,每个自定义指令在自定义功能单元中对应的硬件都有面积大小,则需要对自定义指令的面积约束进行建模,如下公式所示:
其中,A为可扩展处理器设计时给定的所有自定义指令对应的硬件的面积总预算,Ai为第i个自定义指令所对应的硬件面积,Si为二元变量;如果自定义指令Ci至少有一个实例被选择,那么Si的值为1,否则为0,如下公式所示:
本实施例中,运行的环境为i3-3240 3.4GHz处理器,4GB主存储器,操作系统为Windows 8.约束编程工具为JaCop 2.3。测试基准集来源于MediaBench和MiBench.本实施例中所用测试基准应用程序均是图像处理领域中或视频处理领域中常见算法。
本实施例中,对于针对图像处理领域的常见算法,首先采用GeCoS前端编译器,将算法程序转换为对应的控制数据流图。然后,采用本发明的基于约束编程的自定义指令枚举方法从数据流图中枚举所有满足约束条件的子图。基于约束编程方法的自定义指令枚举结果如表1所示。表1中的列Nodes,Enumerated Subgraphs和Time分别表示所用的基准程序对应的数据流图的结点数,枚举出的满足约束条件的连通子图数目(输入输出上限分别设为6和2)以及枚举方法的运行时间。
表1 自定义指令枚举结果
为了进一步分析不同约束条件对枚举方法的运行时间的影响,本实施例中,比较了在不同输入输出约束条件下枚举方法的运行时间。针对基准测试程序SUSAN,JPEGEncode,JPEG Decode和MESA,在不同I/O约束条件下,运行时间结果比较如图3所示。
从图3可以看出,枚举方法的运行时间随着输入输出数目的增大而显著增加。通过进一步比较发现,增大输出数目对运行时间的影响要明显大于增大输入数目对运行时间的影响。例如,相比于输入输出上限为6/2的条件下,当输入输出上限为7/2时,枚举方法的运行时间平均增加1.5倍,而当输入输出上限设为6/3时,枚举方法的运行时间平均增加10倍。
由于枚举子图的连通性是自定义指令枚举过程中一项重要的约束条件。本实施例中,将只枚举连通子图的运行时间和枚举所有子图(包括连通子图和分离子图)的运行时间进行了比较,结果如图4所示(I/O条件为6/2)。从图中可以看出,枚举所有子图的运行时间要远大于仅枚举连通子图的运行时间。
本实施例中,将本发明的基于约束编程的自定义指令选择方法与Kamal等人提出的自定义指令选择方法及Xiao等人提出的自定义指令选择方法进行比较。其中,Kamal等人提出的方法是在给定面积约束条件下,选择提升性能最大化的自定义指令。Xiao等人提出的方法是在给定的面积约束条件下,通过选择较少的自定义指令数目,从而减少功耗.
本实施例中,比照Kamal等人提出的方法,自定义指令实现的硬件自定义功能单元中实现的基本指令的硬件延迟和面积信息如表2所示。
表2 自定义功能单元中基本指令的硬件延迟和面积信息
Operation | Area | Delay(ns) |
SUB | 225 | 0.5 |
Add | 200 | 0.5 |
SHR/SHL | 326 | 0.19 |
EQT/NEQ | 87 | 0.16 |
GRT/LKS | 115 | 0.21 |
AND | 41 | 0.04 |
OR | 42 | 0.05 |
XOR | 64 | 0.05 |
本实施例中,假定包含多个结点的自定义指令在自定义功能单元上执行,而应用程序中未被包含进自定义指令的基本指令在基准处理器上执行.式(13)给出了使用自定义指令的应用程序的总时延的计算:
Lh=(∑S∈SC∑i∈C(S)HW(i)+∑S∈SCT(S))+∑K∈PSW(K) (13)
其中,HW(i)表示自定义指令i的硬件延迟。T(S)表示传输自定义指令的输入和输出操作数所需的额外时延。式(13)中的∑S∈SC∑i∈C(S)HW(i)表示所选自定义指令累积硬件时延的总和(SC表示所选自定义指令的集合,C(S)表示是位于所选自定义指令s的关键路径上的节点);第2部分表示未包含进自定义指令的基本指令的累积软件时延,其中P表示未包含的基本指令的集合。
通过使用自定义指令实现的性能提升的计算如式(14)所示:
其中,是原始应用程序的源代码中所有基本指令的累积软件时延(n表示原始代码中基本指令的数量)。
本实施例中,将本发明的自定义指令选择方法与Kamal等人和Xiao等人提出的自定义指令方法进行了比较。其中,面积约束条件分别设为参考面积的10%,30%和50%.参考面积为使用Bonzini等人提出的贪婪算法所选择的最大化提升性能的自定义指令面积之和.针对表1中列举的9个基准测试程序Benchmarks,三种方法所选择的指令数目(NS)及性能提升(PI)的比较结果如表3所示。
表3 自定义指令选择方法实验结果比较
本实施例中,本发明的多目标优化模型中的参数γ,ε,α和β均设为0.5。可以观察到,随着面积约束条件的放松,三种方法获得的性能提升均呈增加的趋势。相比于Xiao等人提出的方法,本发明的方法在性能提升方面的表现更好:本发明方法取得性能提升平均为3.12倍,Xiao等人提出的方法获得性能提升平均为2.81倍。另一方面,本发明方法所选择的自定义指令实例的数目明显少于Kamal等人提出的方法所选择的自定义指令实例的数目。本发明方法最终选择的指令数平均为58,而Kamal等人提出的方法最终选择的指令数目平均为62。由于减少自定义指令实例的数目可降低最终取指令和数据在寄存器和处理器之间传输的次数,从而减少能耗。
此外,通过调整多目标优化模型中的参数γ和ε,本发明方法可在性能提升方面或减少指令数目方面具有更好的表现。当参数γ和ε分别设为1和0时,相比于Kamal等人提出的方法,本发明方法在性能提升效果上更有优势,结果如图5所示(面积约束为50%)。当参数γ和ε分别设为1和0时,问题模型就转化为在给定面积约束条件下,求提升性能最大化的自定义指令选择。由于本发明采用的约束编程方法可以用来寻找最优解,而Kamal等人提出的方法不能保证得出的解是最优的。因此,本发明方法对性能提升效果更明显。
当参数γ和ε分别设为0和1时,相比于Xiao等人提出的方法,本发明方法选择的指令实例数目较少,结果如图6所示。当参数γ和ε分别设为0和1时,问题模型就转化为在给定面积约束条件下,选择最少数目的指令实例覆盖原数据流图。针对每个测试基准程序,约束编程方法可以选择最少数目的指令,而Xiao等人提出的探索式方法在多数情况下,不能找到最少数目的指令。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
Claims (3)
1.一种基于约束规划的自定义指令自动识别方法,其特征在于:包括自定义指令的枚举和自定义指令的选择两部分;
所述自定义指令的枚举通过建立自定义指令的枚举约束编程模型,从数据流图中枚举所有满足约束条件的子图实现,具体方法为:
为了从数据流图G(V,E)中枚举出所有满足给定约束的自定义指令,设子图S=(Vs,Es)是自定义指令实例的图形化表示,I1,I2分别表示图G中的有效结点的集合和非法结点的集合,
所述数据流图G=(V,E)是一个有向无环图,结点集V={v1,v2,...,vM}表示基本指令,M为数据流图结点的个数,边集表示指令之间数据依赖关系,m表示数据流图边的个数;
所述给定的约束条件包括:自定义指令不包含非法结点的约束条件,自定义指令的连通性约束条件,自定义指令是凸的约束条件及自定义指令的输入输出约束条件;
分别对约束条件建模,并针对枚举问题,采用约束编程方法求所有满足约束条件的自定义指令,完成对自定义指令的枚举;
所述自定义指令的选择通过建立自定义指令的选择约束编程模型,实现多目标优化,具体方法为:
在自定义指令枚举阶段所枚举出的子图基础上,首先对所有子图进行图同构匹配处理;
为了建立自定义指令选择问题的约束编程模型,先定义一些变量:N为自定义指令枚举阶段枚举出的候选自定义指令的数目,Ci表示第i个候选自定义指令,i=1,…,N;自定义指令Ci在代码中有ni个实例,分别为每个自定义指令的实例的执行频率为fi,j;自定义指令带来的处理器性能提升和自定义指令在自定义功能单元中实现所需的硬件面积分别用Pi和Ai表示;
则自定义指令带来的处理器性能提升的最大化目标函数如下公式所示:
其中,si,j为二元变量,当自定义指令实例ci,j被选择的时候其值为1,否则为0;
由于自定义指令是通过封装多个基本指令,减少最终取指令和数据在寄存器和处理器之间传输的次数,从而减少处理器的能耗;则自定义指令带来的处理器能耗减少的最大化目标函数如下公式所示:
其中,E(ci,j)表示自定义指令实例ci,j内部边的数目,表示取指令数目的减少量,表示数据传输次数的减少量,α,β为权重参数,α+β=1;
在以上建立的基于目标函数的自定义指令选择模型基础上,为了简化问题,采用基于权重的方法,将多目标优化问题转换为单目标优化问题,得到如下公式所示的自定义指令选择模型:
其中,γ,ε为权重参数,γ+ε=1;
针对用户给定的面积约束,每个自定义指令在自定义功能单元中对应的硬件都有面积大小,则需要对自定义指令的面积约束进行建模,如下公式所示:
其中,A为可扩展处理器设计时给定的所有自定义指令对应的硬件的面积总预算,Ai为第i个自定义指令所对应的硬件面积,Si为二元变量;如果自定义指令Ci至少有一个实例被选择,那么Si的值为1,否则为0,如下公式所示:
2.根据权利要求1所述的一种基于约束规划的自定义指令自动识别方法,其特征在于:所述对约束条件建模的具体方法为:
所述对自定义指令不包含非法结点的约束条件建模,如下公式所示:
vsel=0
其中,vsel=0表示非法结点v不包含在自定义指令中;
所述非法结点为:由于可扩展处理器体系结构的限制,内存操作和分支操作这两种基本指令不能包含在自定义指令中,代表这些基本指令的结点被视为非法结点;
所述对自定义指令的连通性的约束条件建模,如下公式所示:
其中,表示结点v和结点vk之间存在一条无向路径,当枚举分离子图时此约束可去除;
所述自定义指令是凸的的约束条件为当且仅当子图s中的任意两个结点u,v之间的任何路径只经过子图s中的结点,对该约束条件建模,如下公式所示:
其中,usel,vsel分别表示结点u和v是否被选择,0表示没有被选择,1表示被选择;
所述自定义指令的输入输出约束条件如下公式所示:
其中,INmax,OUTmax分别表示自定义指令的输入输出上限,INv,OUTv分别表示结点v的入度和出度,Pred(u)={v|v∈V,(v,u)∈E},Succ(u)={v|v∈V,(u,v)∈E}分别表示结点v的前驱结点集合和后续结点集合,vin、vout分别表示结点v的输入、输出数目,msel表示结点m是否被选择。
3.根据权利要求1所述的一种基于约束规划的自定义指令自动识别方法,其特征在于:所述对所有子图进行图同构匹配处理的具体方法为:
给定两个子图a和b,如果a与b同构,则创建模式Ci,并且将子图a和b作为实例被记录在模式Ci中;所述模式是候选自定义指令的图形化表示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910627531.6A CN110333857B (zh) | 2019-07-12 | 2019-07-12 | 一种基于约束规划的自定义指令自动识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910627531.6A CN110333857B (zh) | 2019-07-12 | 2019-07-12 | 一种基于约束规划的自定义指令自动识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110333857A true CN110333857A (zh) | 2019-10-15 |
CN110333857B CN110333857B (zh) | 2023-03-14 |
Family
ID=68146500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910627531.6A Active CN110333857B (zh) | 2019-07-12 | 2019-07-12 | 一种基于约束规划的自定义指令自动识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110333857B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296788A (zh) * | 2021-06-10 | 2021-08-24 | 上海东软载波微电子有限公司 | 指令调度方法、装置、设备、存储介质及程序产品 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030014742A1 (en) * | 2001-07-09 | 2003-01-16 | Sasken Communication Technologies Limited | Technique for compiling computer code to reduce energy consumption while executing the code |
CN102929580A (zh) * | 2012-11-06 | 2013-02-13 | 无锡江南计算技术研究所 | 数组多引用访问的分块方法和装置 |
CN103995540A (zh) * | 2014-05-22 | 2014-08-20 | 哈尔滨工业大学 | 一种高超声速飞行器的有限时间轨迹快速生成方法 |
CN105138601A (zh) * | 2015-08-06 | 2015-12-09 | 中国科学院软件研究所 | 一种支持模糊约束关系的图模式匹配方法 |
CN105335129A (zh) * | 2014-06-23 | 2016-02-17 | 联想(北京)有限公司 | 信息处理方法及电子设备 |
CN107870780A (zh) * | 2016-09-28 | 2018-04-03 | 华为技术有限公司 | 数据处理装置和方法 |
US20180196673A1 (en) * | 2015-07-31 | 2018-07-12 | Arm Limited | Vector length querying instruction |
US20180300148A1 (en) * | 2017-04-12 | 2018-10-18 | Arm Limited | Apparatus and method for determining a recovery point from which to resume instruction execution following handling of an unexpected change in instruction flow |
-
2019
- 2019-07-12 CN CN201910627531.6A patent/CN110333857B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030014742A1 (en) * | 2001-07-09 | 2003-01-16 | Sasken Communication Technologies Limited | Technique for compiling computer code to reduce energy consumption while executing the code |
CN102929580A (zh) * | 2012-11-06 | 2013-02-13 | 无锡江南计算技术研究所 | 数组多引用访问的分块方法和装置 |
CN103995540A (zh) * | 2014-05-22 | 2014-08-20 | 哈尔滨工业大学 | 一种高超声速飞行器的有限时间轨迹快速生成方法 |
CN105335129A (zh) * | 2014-06-23 | 2016-02-17 | 联想(北京)有限公司 | 信息处理方法及电子设备 |
US20180196673A1 (en) * | 2015-07-31 | 2018-07-12 | Arm Limited | Vector length querying instruction |
CN105138601A (zh) * | 2015-08-06 | 2015-12-09 | 中国科学院软件研究所 | 一种支持模糊约束关系的图模式匹配方法 |
CN107870780A (zh) * | 2016-09-28 | 2018-04-03 | 华为技术有限公司 | 数据处理装置和方法 |
US20180300148A1 (en) * | 2017-04-12 | 2018-10-18 | Arm Limited | Apparatus and method for determining a recovery point from which to resume instruction execution following handling of an unexpected change in instruction flow |
Non-Patent Citations (3)
Title |
---|
B. CHAKRABORTY,等: "Handling Constraints in Multi-Objective GA for Embedded System Design", 《19TH INTERNATIONAL CONFERENCE ON VLSI DESIGN HELD JOINTLY WITH 5TH INTERNATIONAL CONFERENCE ON EMBEDDED SYSTEMS DESIGN (VLSID"06)》 * |
肖成龙,等: "面向高层次综合的自定义指令自动识别方法", 《计算机应用》 * |
龚爱慧,等: "CSPack:采用CSP图匹配的新型装箱算法", 《计算机辅助设计与图形学学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296788A (zh) * | 2021-06-10 | 2021-08-24 | 上海东软载波微电子有限公司 | 指令调度方法、装置、设备、存储介质及程序产品 |
CN113296788B (zh) * | 2021-06-10 | 2024-04-12 | 上海东软载波微电子有限公司 | 指令调度方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110333857B (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhao et al. | Optimizing CNN-based object detection algorithms on embedded FPGA platforms | |
Ardalani et al. | Cross-architecture performance prediction (XAPP) using CPU code to predict GPU performance | |
AU2016203619A1 (en) | Layer-based operations scheduling to optimise memory for CNN applications | |
CN105373424B (zh) | 一种基于机器学习的推测多线程划分方法 | |
Ney et al. | HALF: Holistic auto machine learning for FPGAs | |
CN112434785A (zh) | 一种面向超级计算机的分布式并行深度神经网络性能评测方法 | |
Dutta et al. | Pattern-based autotuning of openmp loops using graph neural networks | |
CN110333857B (zh) | 一种基于约束规划的自定义指令自动识别方法 | |
Filho et al. | Yet another intelligent code-generating system: A flexible and low-cost solution | |
Liang et al. | Degtec: A deep graph-temporal clustering framework for data-parallel job characterization in data centers | |
CN110377525B (zh) | 一种基于运行时特征和机器学习的并行程序性能预测系统 | |
CN112633385A (zh) | 一种模型训练的方法、数据生成的方法以及装置 | |
Saussard et al. | Optimal performance prediction of ADAS algorithms on embedded parallel architectures | |
Shakibhamedan et al. | Ease: Energy optimization through adaptation–a review of runtime energy-aware approximate deep learning algorithms | |
Medhat et al. | Managing the performance/error tradeoff of floating-point intensive applications | |
Alhasnawy et al. | Using machine learning to predict the sequences of optimization passes | |
CN113705800A (zh) | 处理单元、相关装置和方法 | |
Zhou et al. | Implementation of hierarchical temporal memory on a many-core architecture | |
Koshulko et al. | Adaptive parallel implementation of the Combinatorial GMDH algorithm | |
Hafezan et al. | PCTC: Hardware and Software Co-design for P runed C apsule Networks on T ensor C ores | |
Wang et al. | Loop Kernel Pipelining Mapping onto Coarse-Grained Reconfigurable Architecture for Data-Intensive Applications. | |
CN116991428B (zh) | 一种编译方法、装置、编译器、计算设备及存储介质 | |
Song et al. | Extending Neural Processing Unit and Compiler for Advanced Binarized Neural Networks | |
Gao et al. | Reconfigurable hardware generation for tensor flow models of cnn algorithms on a heterogeneous acceleration platform | |
Liu et al. | Convex models for accelerating applications on FPGA-based clusters |
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 |