CN110333857B - 一种基于约束规划的自定义指令自动识别方法 - Google Patents

一种基于约束规划的自定义指令自动识别方法 Download PDF

Info

Publication number
CN110333857B
CN110333857B CN201910627531.6A CN201910627531A CN110333857B CN 110333857 B CN110333857 B CN 110333857B CN 201910627531 A CN201910627531 A CN 201910627531A CN 110333857 B CN110333857 B CN 110333857B
Authority
CN
China
Prior art keywords
instruction
custom
constraint
custom instruction
nodes
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
Application number
CN201910627531.6A
Other languages
English (en)
Other versions
CN110333857A (zh
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.)
Liaoning Technical University
Original Assignee
Liaoning Technical 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 Liaoning Technical University filed Critical Liaoning Technical University
Priority to CN201910627531.6A priority Critical patent/CN110333857B/zh
Publication of CN110333857A publication Critical patent/CN110333857A/zh
Application granted granted Critical
Publication of CN110333857B publication Critical patent/CN110333857B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)是自定义指令实例的图形化表示,
Figure BDA0002127557310000021
I1,I2分别表示图G中的有效结点的集合和非法结点的集合,
Figure BDA0002127557310000022
所述数据流图G=(V,E)是一个有向无环图(Directed Acyclic Graph,即DAG),结点集V={v1,v2,...,vM}表示基本指令,M为数据流图结点的个数,边集
Figure BDA0002127557310000023
表示指令之间数据依赖关系,m表示数据流图边的个数;
所述给定的约束条件包括:自定义指令不包含非法结点的约束条件,自定义指令的连通性约束条件,自定义指令是凸的约束条件及自定义指令的输入输出约束条件;
分别对约束条件建模,并针对枚举问题,采用约束编程方法求所有满足约束条件的自定义指令,完成对自定义指令的枚举;
所述对自定义指令不包含非法结点的约束条件建模,如下公式所示:
Figure BDA0002127557310000024
其中,vsel=0表示非法结点v不包含在自定义指令中;
所述非法结点为:由于可扩展处理器体系结构的限制,内存操作和分支操作这两种基本指令不能包含在自定义指令中,代表这些基本指令的结点被视为非法结点;
所述对自定义指令的连通性的约束条件建模,如下公式所示:
Figure BDA0002127557310000031
其中,
Figure BDA0002127557310000032
表示结点v和结点vk之间存在一条无向路径,当枚举分离子图时此约束可去除;
所述自定义指令是凸的的约束条件为当且仅当子图s中的任意两个结点u,v之间的任何路径只经过子图s中的结点,对该约束条件建模,如下公式所示:
Figure BDA0002127557310000033
其中,usel,vsel分别表示结点u和v是否被选择,0表示没有被选择,1表示被选择;
所述自定义指令的输入输出约束条件如下公式所示:
Figure BDA0002127557310000034
Figure BDA0002127557310000035
Figure BDA0002127557310000036
Figure BDA0002127557310000037
其中,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个实例,分别为
Figure BDA0002127557310000038
每个自定义指令的实例的执行频率为fi,j;自定义指令带来的处理器性能提升和自定义指令在自定义功能单元中实现所需的硬件面积分别用Pi和Ai表示;
则自定义指令带来的处理器性能提升的最大化目标函数如下公式所示:
Figure BDA0002127557310000041
其中,si,j为二元变量,当自定义指令实例ci,j被选择的时候其值为1,否则为0;
由于自定义指令是通过封装多个基本指令,减少最终取指令和数据在寄存器和处理器之间传输的次数,从而减少处理器的能耗;则自定义指令带来的处理器能耗减少的最大化目标函数如下公式所示:
Figure BDA0002127557310000042
其中,E(ci,j)表示自定义指令实例ci,j内部边的数目,
Figure BDA0002127557310000043
表示取指令数目的减少量,
Figure BDA0002127557310000044
表示数据传输次数的减少量,α,β为权重参数,α+β=1;
在以上建立的基于目标函数的自定义指令选择模型基础上,为了简化问题,采用基于权重的方法,将多目标优化问题转换为单目标优化问题,得到如下公式所示的自定义指令选择模型:
Figure BDA0002127557310000045
其中,γ,ε为权重参数,γ+ε=1;
针对用户给定的面积约束,每个自定义指令在自定义功能单元中对应的硬件都有面积大小,则需要对自定义指令的面积约束进行建模,如下公式所示:
Figure BDA0002127557310000046
其中,A为可扩展处理器设计时给定的所有自定义指令对应的硬件的面积总预算,Ai为第i个自定义指令所对应的硬件面积,Si为二元变量;如果自定义指令Ci至少有一个实例被选择,那么Si的值为1,否则为0,如下公式所示:
Figure BDA0002127557310000047
采用上述技术方案所产生的有益效果在于:本发明提供的一种基于约束规划的自定义指令自动识别方法,针对自定义指令枚举问题,将问题的建模和求解分离,可适用于多种约束条件的组合,具有较好的通用性和灵活性。针对自定义指令选择问题,通过建立多目标优化约束编程模型,可实现多目标优化;将本发明的自动识别出的自定义指令应用于图像处理类算法,可显著提升算法的性能。
附图说明
图1为本发明背景技术提供的面向图像处理算法的自动识别扩展指令集流程图;
图2为本发明实施例提供的数据流图的示意图;
图3为本发明实施例提供的不同I/O约束条件下运行时间比较结果图;
图4为本发明实施例提供的枚举连通子图和枚举所有子图运行时间比较结果图;
图5为本发明实施例提供的性能提升比较结果图;
图6为本发明实施例提供的采用不同方法选择指令数目的比较结果图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
一种基于约束规划的自定义指令自动识别方法,包括自定义指令的枚举和自定义指令的选择两部分;
所述自定义指令的枚举通过建立自定义指令的枚举约束编程模型,从数据流图中枚举所有满足约束条件的子图实现,具体方法为:
为了从数据流图G(V,E)中枚举出所有满足给定约束的自定义指令,设子图S=(Vs,Es)是自定义指令实例的图形化表示,
Figure BDA0002127557310000051
I1,I2分别表示图G中的有效结点的集合和非法结点的集合,
Figure BDA0002127557310000052
所述数据流图G=(V,E)是一个有向无环图(DirectedAcyclic Graph,即DAG),如图2所示,结点集V={v1,v2,...,vM}表示基本指令,M为数据流图结点的个数,边集
Figure BDA0002127557310000053
表示指令之间数据依赖关系,m表示数据流图边的个数;
所述给定的约束条件包括:自定义指令不包含非法结点的约束条件,自定义指令的连通性约束条件,自定义指令是凸的约束条件及自定义指令的输入输出约束条件;
分别对约束条件建模,并针对枚举问题,采用约束编程方法求所有满足约束条件的自定义指令,完成对自定义指令的枚举;
所述对自定义指令不包含非法结点的约束条件建模,如下公式所示:
Figure BDA0002127557310000061
其中,vsel=0表示非法结点v不包含在自定义指令中;
所述非法结点为:由于可扩展处理器体系结构的限制,内存操作和分支操作这两种基本指令不能包含在自定义指令中,代表这些基本指令的结点被视为非法结点;
所述对自定义指令的连通性的约束条件建模,如下公式所示:
Figure BDA0002127557310000062
其中,
Figure BDA0002127557310000063
表示结点v和结点vk之间存在一条无向路径,当枚举分离子图时此约束可去除;
所述自定义指令是凸的的约束条件为当且仅当子图s中的任意两个结点u,v之间的任何路径只经过子图s中的结点,对该约束条件建模,如下公式所示:
Figure BDA0002127557310000064
其中,usel,vsel分别表示结点u和v是否被选择,0表示没有被选择,1表示被选择;
本实施例中,对于如图2所示的数据流图,子图{1,2,3}是凸子图,而子图{2,3,5}不是凸子图。
所述自定义指令的输入输出约束条件如下公式所示:
Figure BDA0002127557310000065
Figure BDA0002127557310000066
Figure BDA0002127557310000067
Figure BDA0002127557310000068
其中,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个实例,分别为
Figure BDA0002127557310000071
每个自定义指令的实例的执行频率为fi,j;自定义指令带来的处理器性能提升和自定义指令在自定义功能单元中实现所需的硬件面积分别用Pi和Ai表示;
则自定义指令带来的处理器性能提升的最大化目标函数如下公式所示:
Figure BDA0002127557310000072
其中,si,j为二元变量,当自定义指令实例ci,j被选择的时候其值为1,否则为0;
由于自定义指令是通过封装多个基本指令,减少最终取指令和数据在寄存器和处理器之间传输的次数,从而减少处理器的能耗;则自定义指令带来的处理器能耗减少的最大化目标函数如下公式所示:
Figure BDA0002127557310000073
其中,E(ci,j)表示自定义指令实例ci,j内部边的数目,
Figure BDA0002127557310000074
表示取指令数目的减少量,
Figure BDA0002127557310000075
表示数据传输次数的减少量,α,β为权重参数,α+β=1;
在以上建立的基于目标函数的自定义指令选择模型基础上,为了简化问题,采用基于权重的方法,将多目标优化问题转换为单目标优化问题,得到如下公式所示的自定义指令选择模型:
Figure BDA0002127557310000076
其中,γ,ε为权重参数,γ+ε=1;
针对用户给定的面积约束,每个自定义指令在自定义功能单元中对应的硬件都有面积大小,则需要对自定义指令的面积约束进行建模,如下公式所示:
Figure BDA0002127557310000077
其中,A为可扩展处理器设计时给定的所有自定义指令对应的硬件的面积总预算,Ai为第i个自定义指令所对应的硬件面积,Si为二元变量;如果自定义指令Ci至少有一个实例被选择,那么Si的值为1,否则为0,如下公式所示:
Figure BDA0002127557310000081
本实施例中,运行的环境为i3-3240 3.4GHz处理器,4GB主存储器,操作系统为Windows 8.约束编程工具为JaCop 2.3。测试基准集来源于MediaBench和MiBench.本实施例中所用测试基准应用程序均是图像处理领域中或视频处理领域中常见算法。
本实施例中,对于针对图像处理领域的常见算法,首先采用GeCoS前端编译器,将算法程序转换为对应的控制数据流图。然后,采用本发明的基于约束编程的自定义指令枚举方法从数据流图中枚举所有满足约束条件的子图。基于约束编程方法的自定义指令枚举结果如表1所示。表1中的列Nodes,Enumerated Subgraphs和Time分别表示所用的基准程序对应的数据流图的结点数,枚举出的满足约束条件的连通子图数目(输入输出上限分别设为6和2)以及枚举方法的运行时间。
表1 自定义指令枚举结果
Figure BDA0002127557310000082
为了进一步分析不同约束条件对枚举方法的运行时间的影响,本实施例中,比较了在不同输入输出约束条件下枚举方法的运行时间。针对基准测试程序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∈SCi∈C(S)HW(i)+∑S∈SCT(S))+∑K∈PSW(K) (13)
其中,HW(i)表示自定义指令i的硬件延迟。T(S)表示传输自定义指令的输入和输出操作数所需的额外时延。式(13)中的∑S∈SCi∈C(S)HW(i)表示所选自定义指令累积硬件时延的总和(SC表示所选自定义指令的集合,C(S)表示是位于所选自定义指令s的关键路径上的节点);第2部分表示未包含进自定义指令的基本指令的累积软件时延,其中P表示未包含的基本指令的集合。
通过使用自定义指令实现的性能提升的计算如式(14)所示:
Figure BDA0002127557310000101
其中,
Figure BDA0002127557310000102
是原始应用程序的源代码中所有基本指令的累积软件时延(n表示原始代码中基本指令的数量)。
本实施例中,将本发明的自定义指令选择方法与Kamal等人和Xiao等人提出的自定义指令方法进行了比较。其中,面积约束条件分别设为参考面积的10%,30%和50%.参考面积为使用Bonzini等人提出的贪婪算法所选择的最大化提升性能的自定义指令面积之和.针对表1中列举的9个基准测试程序Benchmarks,三种方法所选择的指令数目(NS)及性能提升(PI)的比较结果如表3所示。
表3 自定义指令选择方法实验结果比较
Figure BDA0002127557310000103
Figure BDA0002127557310000111
本实施例中,本发明的多目标优化模型中的参数γ,ε,α和β均设为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 (1)

1.一种基于约束规划的自定义指令自动识别方法,其特征在于:包括自定义指令的枚举和自定义指令的选择两部分;
所述自定义指令的枚举通过建立自定义指令的枚举约束编程模型,从数据流图中枚举所有满足约束条件的子图实现,具体方法为:
为了从数据流图G(V,E)中枚举出所有满足给定约束的自定义指令,设子图S=(Vs,Es)是自定义指令实例的图形化表示,
Figure QLYQS_1
I1,I2分别表示图G中的有效结点的集合和非法结点的集合,
Figure QLYQS_2
所述数据流图G=(V,E)是一个有向无环图,结点集V={v1,v2,...,vM}表示基本指令,M为数据流图结点的个数,边集
Figure QLYQS_3
表示指令之间数据依赖关系,m表示数据流图边的个数;
所述给定的约束条件包括:自定义指令不包含非法结点的约束条件,自定义指令的连通性约束条件,自定义指令是凸的约束条件及自定义指令的输入输出约束条件;
分别对约束条件建模,并针对枚举问题,采用约束编程方法求所有满足约束条件的自定义指令,完成对自定义指令的枚举;
所述自定义指令的选择通过建立自定义指令的选择约束编程模型,实现多目标优化,具体方法为:
在自定义指令枚举阶段所枚举出的子图基础上,首先对所有子图进行图同构匹配处理;
为了建立自定义指令选择问题的约束编程模型,先定义一些变量:N为自定义指令枚举阶段枚举出的候选自定义指令的数目,Ci表示第i个候选自定义指令,i=1,…,N;自定义指令Ci在代码中有ni个实例,分别为
Figure QLYQS_4
每个自定义指令的实例的执行频率为fi,j;自定义指令带来的处理器性能提升和自定义指令在自定义功能单元中实现所需的硬件面积分别用Pi和Ai表示;
则自定义指令带来的处理器性能提升的最大化目标函数如下公式所示:
Figure QLYQS_5
其中,si,j为二元变量,当自定义指令实例ci,j被选择的时候其值为1,否则为0;
由于自定义指令是通过封装多个基本指令,减少最终取指令和数据在寄存器和处理器之间传输的次数,从而减少处理器的能耗;则自定义指令带来的处理器能耗减少的最大化目标函数如下公式所示:
Figure QLYQS_6
其中,E(ci,j)表示自定义指令实例ci,j内部边的数目,
Figure QLYQS_7
表示取指令数目的减少量,
Figure QLYQS_8
表示数据传输次数的减少量,α,β为权重参数,α+β=1;
在以上建立的基于目标函数的自定义指令选择模型基础上,为了简化问题,采用基于权重的方法,将多目标优化问题转换为单目标优化问题,得到如下公式所示的自定义指令选择模型:
Figure QLYQS_9
其中,γ,ε为权重参数,γ+ε=1;
针对用户给定的面积约束,每个自定义指令在自定义功能单元中对应的硬件都有面积大小,则需要对自定义指令的面积约束进行建模,如下公式所示:
Figure QLYQS_10
其中,A为可扩展处理器设计时给定的所有自定义指令对应的硬件的面积总预算,Ai为第i个自定义指令所对应的硬件面积,Si为二元变量;如果自定义指令Ci至少有一个实例被选择,那么Si的值为1,否则为0,如下公式所示:
Figure QLYQS_11
所述对自定义指令不包含非法结点的约束条件建模,如下公式所示:
Figure QLYQS_12
其中,vsel=0表示非法结点v不包含在自定义指令中;
所述非法结点为:由于可扩展处理器体系结构的限制,内存操作和分支操作这两种基本指令不能包含在自定义指令中,代表这些基本指令的结点被视为非法结点;
所述对自定义指令的连通性的约束条件建模,如下公式所示:
Figure QLYQS_13
其中,
Figure QLYQS_14
表示结点v和结点vk之间存在一条无向路径,当枚举分离子图时此约束可去除;
所述自定义指令是凸的约束条件为当且仅当子图S中的任意两个结点u,v之间的任何路径只经过子图S中的结点,对该约束条件建模,如下公式所示:
Figure QLYQS_15
其中,usel,vsel分别表示结点u和v是否被选择,0表示没有被选择,1表示被选择;
所述自定义指令的输入输出约束条件如下公式所示:
Figure QLYQS_16
Figure QLYQS_17
Figure QLYQS_18
Figure QLYQS_19
其中,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中;所述模式是候选自定义指令的图形化表示。
CN201910627531.6A 2019-07-12 2019-07-12 一种基于约束规划的自定义指令自动识别方法 Active CN110333857B (zh)

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 CN110333857A (zh) 2019-10-15
CN110333857B true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113296788B (zh) * 2021-06-10 2024-04-12 上海东软载波微电子有限公司 指令调度方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 华为技术有限公司 数据处理装置和方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
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
EP3125109B1 (en) * 2015-07-31 2019-02-20 ARM Limited Vector length querying instruction
US10474469B2 (en) * 2017-04-12 2019-11-12 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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929580A (zh) * 2012-11-06 2013-02-13 无锡江南计算技术研究所 数组多引用访问的分块方法和装置
CN103995540A (zh) * 2014-05-22 2014-08-20 哈尔滨工业大学 一种高超声速飞行器的有限时间轨迹快速生成方法
CN105335129A (zh) * 2014-06-23 2016-02-17 联想(北京)有限公司 信息处理方法及电子设备
CN105138601A (zh) * 2015-08-06 2015-12-09 中国科学院软件研究所 一种支持模糊约束关系的图模式匹配方法
CN107870780A (zh) * 2016-09-28 2018-04-03 华为技术有限公司 数据处理装置和方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CSPack:采用CSP图匹配的新型装箱算法;龚爱慧,等;《计算机辅助设计与图形学学报》;20101231;第22卷(第11期);全文 *
Handling Constraints in Multi-Objective GA for Embedded System Design;B. Chakraborty,等;《19th International Conference on VLSI Design held jointly with 5th International Conference on Embedded Systems Design (VLSID"06)》;20061231;全文 *
面向高层次综合的自定义指令自动识别方法;肖成龙,等;《计算机应用》;20180710;第38卷(第7期);全文 *

Also Published As

Publication number Publication date
CN110333857A (zh) 2019-10-15

Similar Documents

Publication Publication Date Title
Li et al. A high performance FPGA-based accelerator for large-scale convolutional neural networks
Park et al. Big/little deep neural network for ultra low power inference
AU2014203218B2 (en) Memory configuration for inter-processor communication in an MPSoC
AU2016203619A1 (en) Layer-based operations scheduling to optimise memory for CNN applications
KR20130114688A (ko) 아키텍처 최적화기
Guo et al. A fully-pipelined expectation-maximization engine for Gaussian mixture models
US20230297375A1 (en) Hardware accelerator, data processing method, system-level chip, and medium
CN110333857B (zh) 一种基于约束规划的自定义指令自动识别方法
Zhou et al. Towards the co-design of neural networks and accelerators
CN112051981B (zh) 一种数据流水线计算路径结构及单线程数据流水线系统
CN112434785A (zh) 一种面向超级计算机的分布式并行深度神经网络性能评测方法
CN110377525B (zh) 一种基于运行时特征和机器学习的并行程序性能预测系统
Liang et al. DeGTeC: a deep graph-temporal clustering framework for data-parallel job characterization in data centers
Medhat et al. Managing the performance/error tradeoff of floating-point intensive applications
CN110969259B (zh) 具有数据关联自适应舍入的处理核心
CN113705800A (zh) 处理单元、相关装置和方法
Hussein et al. Automating application-driven customization of ASIPs: A survey
Zhou et al. Implementation of hierarchical temporal memory on a many-core architecture
Wang et al. Loop Kernel Pipelining Mapping onto Coarse-Grained Reconfigurable Architecture for Data-Intensive Applications.
Koshulko et al. Adaptive parallel implementation of the Combinatorial GMDH algorithm
CN116991428B (zh) 一种编译方法、装置、编译器、计算设备及存储介质
Mohaidat et al. A Survey on Neural Network Hardware Accelerators
Banković et al. Trading-off Accuracy vs Energy in Multicore Processors via Evolutionary Algorithms Combining Loop Perforation and Static Analysis-Based Scheduling
Dey et al. Asynchronous Hybrid Deep Learning (AHDL): A Deep Learning Based Resource Mapping in DVFS Enabled Mobile MPSoCs
Elango Convolutional neural network acceleration on GPU by exploiting data reuse

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