CN107885503B - 一种基于程序特征分析的迭代编译优化方法 - Google Patents
一种基于程序特征分析的迭代编译优化方法 Download PDFInfo
- Publication number
- CN107885503B CN107885503B CN201711113109.6A CN201711113109A CN107885503B CN 107885503 B CN107885503 B CN 107885503B CN 201711113109 A CN201711113109 A CN 201711113109A CN 107885503 B CN107885503 B CN 107885503B
- Authority
- CN
- China
- Prior art keywords
- compilation
- option
- options
- compiling
- sequence
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
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
技术领域
本专利属于信息技术及计算机领域,尤其涉及一种基于程序特征分析的迭代编译优化方法。
背景技术
迭代编译是一种针对高性能体系结构程序性能优化方法。它通过对编译器各种优化选项序列的变换,生成不同版本的程序,并通过在同一平台上执行不同版本程序,从而选择具有最优性能的程序版本。由于编译器中数量众多的编译选项,各编译选项自身的参数的选取以及编译遍的实施顺序和实施次数等,产生了一个巨大的迭代空间;而这个迭代空间中各种优化组合所形成的不同程序版本将带来巨大的执行开销。为了减少迭代过程中的开销,目前通常的做法主要分为以下几种:
1.通过对迭代空间的修剪来减小迭代空间的大小。Knijnengburg提出了一种结合静态模型来降低迭代编译开销的方法;Epshteyn使用已知的定性分析模型来选择搜索结点;Franke对目标程序进行程序特征匹配来减小搜索空间。这些做法的前期数据收集时间较多,训练开销较大;且模型的精确度会直接影响搜索结果。
2.通过对搜索算法的优化来减少迭代空间的大小。Eigenmann提出了一种组合排除算法来加速对迭代空间的搜索;Copper将遗传算法引入到迭代空间的搜索;Kulkarni则发现简单的局部搜索技术在多次迭代运行后能找到优于其他算法的组合,同时还能大大降低搜索时间;Qasem提出的直接搜索算法对于迭代编译是一种有效的搜索算法。但是这些典型的优化搜索算法没有考虑各种变换之间的关系,很多时候是盲目的组合各种编译选项,并不一定能得到最优结果。
3.程序变换表示。这种方法主要包括非参数优化变换和参数优化变换;非参数优化变换的工作主要针对一些变换的实施顺序,这些变换互相影响制约,从而导致了它们不能被参数化。而有些变化如循环展开,分块等能够参数化,所以它们的搜索空间能被相对简单的描述出来;这里多面体方法是较常用的一种方法。但是这两种方法都无法包含到对方,所以只能给出对应搜索空间的搜索结果,而无法考虑到所有的优化选项。
综上所述,迭代编译的各种优化方法都会受限于自身的特点,机器学习类方法对于样本采集分类、训练需要耗费大量的时间,同时数据库的建立也会耗费大量的空间;而算法设计类方法对于编译选项的敏感度较低,对于选项之间的相互影响考虑较少,搜索空间的选取成为了很大的瓶颈。
发明内容
为解决上述问题,本发明公开了一种基于程序特征分析的迭代编译优化方法。本发明的方法结合了程序特征分析和局部搜索算法,大大减小了搜索空间的同时也充分考虑了各编译选项之间的影响,对比现有的方法,我们的方法能够在较短时间内找到一个适合目标程序的最优编译选项序列。
为实现上述目的,本发明的技术方案为:
一种基于程序特征分析的迭代编译优化方法,包括如下步骤:
步骤一、对编译器中的编译选项按作用进行分类;
步骤二、对每一个编译选项依据规定关系构建关系树形图;
步骤三、建立测试数据集对目标程序进行数据集测试,收集整理测试结果;
步骤四、对数据集测试的测试结果进行分析,提取出目标程序的程序特征和调用关系;
步骤五、根据目标程序的程序特征找出对应的编译选项类,并对编译选项类进行整理,组成一个迭代搜索空间;
步骤六、在此迭代搜索空间中以类为基础进行局部最优搜索,再对得到的局部最优解进行组合优化,从而得到全局最优解,即最优结果;
步骤七、将最优结果和对应的编译选项序列保存,结束。
进一步的改进,所述步骤一中,对编译器中的编译选项按作用进行分类步骤为:构建编译器编译选项的分类图,针对各个编译选项的优化目的和功能,把所有的编译选项分为q个类别c1,c2,...,cq,每一类中的编译选项都进行相同的优化,q表示所分类别的个数。
进一步的改进,所述步骤二中,规定关系包括以下情况:
c.如果任意两个编译选项A、B之间存在依赖关系,如果B选项依赖A而存在,我们称之为依赖,记做:A→B;
对于每一个编译选项,以上述四种关系为基础,建立一个关系树形图Gi。
进一步的改进,所述步骤三包括如下步骤:
3.1)建立测试数据集,测试目标程序是否对测试数据集大小敏感,如果敏感,跳至3.2);如果不敏感,跳至3.3);
3.2)用标准数据集加上基本编译选项进行测试,至3.4);
3.3)用小于标准数据集的小数据集加上基本编译选项进行测试,至3.4);
3.4)收集整理数据。
进一步的改进,所述步骤四包括如下步骤:
对于数据集测试的测试结果进行分析,找到影响程序性能的主要程序片段及其特征;根据目标程序特征,找出相对应的编译选项类别;具体过程如下:
4.1)根据数据集测试的测试结果,提取热点函数;
4.2)提取热点函数程序结构,程序特征,以及程序中其他函数对热点函数的调用图;
4.3)针对热点函数的程序特征和被调用关系,找到对应的编译选项类c1,c2,...,ci,其中i表示对应的编译选项类的个数;
4.4)将上述所有编译选项类组成一个迭代搜索空间C={c1,c2,...,ci}。
进一步的改进,所述步骤五包括如下步骤:对步骤二中建立的编译选项关系图进行剪枝,形成一个目标程序的迭代搜索空间。具体过程如下:
5.1)对于已找出分类中C={c1,c2,...,ci}的每个编译选项其中,表示c1类中找出对应的编译选项的最后一个c1;m表示c1类中找出的对应编译选项个数,表示ci类中找出对应的编译选项的最后一个;n表示ci类找出对应的编译选项个数:其中表示编译选项的关系树形图),表示编译选项的关系树形图;
5.3)更新完成,得到新的关系树形图:
进一步的改进,所述步骤六中使用搜索算法对迭代搜索空间以类为基础进行局部最优搜索,再对得到的局部最优解进行组合优化,从而得到全局最优解,具体包括如下步骤:
6.1)对于迭代搜索空间C中的每一个小分类c1,c2,...,ci进行局部最优搜索;
6.2)初始化编译选项序列S←0;箭头←为赋值的意思;
6.3)初始化编译时间T←∞;
6.4)对于每一个小分类ci初始化结果存储空间Ri←0,用于保存指定个数编译选项序列;
6.5)对于每一个小分类ci中的编译选项{O1,O2,...,Om}进行组合,得到p个不同组合:{Com1,Com2,...,Comp},Com表示编译选项组合;
6.6)对于每一种组合Comj'∈{Com1,Com2,...,Comp},由k个编译选项组成Comj'={O1,O2,...,Ok},这里1≤k≤m,j表示组合中任意一个元素;
6.7)对于每个组合中的每一个编译选项Ok∈Comj':
6.7.5)当所有关系树形图都处理完后,得到一个编译选项序列Snew;
6.8)使用生成的编译选项序列Snew进行测试:
6.8.1)对于编译选项序列Snew中的编译选项,如果参数可调,调整不同参数进行测试;
6.8.2)如果测试结果t<T,则将编译选项序列Snew及其对应参数存入结果存储空间:Ri←Snew,T←t;其中,T表示编译时间;
6.9)对于每一编译选项分类,找到指定个数优化序列结果;
6.10)对于每一类中的优化序列进行组合搜索:
6.10.2)每类中提取一个序列组合成新的序列l表示从第l类中提取序列Sf l,f表示序列包含f个编译选项;g表示从第g类中提取序列Sb g,b表示序列包含b个编译选项;h表示从第h类提取序列Sr h,r表示序列包含r个编译选项;
6.10.3)在新的序列Snew中,对互斥、依赖关系编译选项进行删除处理;
6.10.4)形成新的编译选项序列;
6.10.5)对编译顺序进行调整;
6.10.6)对Snew进行数据集测试,如果t<T,则R←Snew,T←t;
6.10.7)得到最优结果Topt和最优编译选项序列Sopt;
步骤七、将最优结果Topt和最优编译选项序列Sopt保存,结束。
附图说明
图1为本发明的总流程图。
实施例
实施例1
如图1所示的一种基于程序特征分析的迭代编译优化方法,图1是本发明的总流程图。
步骤1)、对编译器中的编译选项按作用进行分类;
步骤2)、对每一个编译选项依据规定的四条关系构建关系树形图;
步骤3)、对目标程序进行数据集测试,收集整理测试结果;
步骤4)、对测试结果进行分析,提取出目标程序的程序特征和调用关系;
步骤5)、根据目标程序的特征找出对应的编译选项类,并对编译选项类进行整理,组成一个迭代搜索空间;
步骤6)、在此迭代搜索空间中以类为基础进行局部最优搜索,再对得到的局部最优解进行组合优化,从而得到全局最优解;
步骤7)、将全局最优解和对应的编译选项序列保存,结束。
具体步骤如下:
第一步、构建编译器编译选项的分类图。针对各个编译选项的优化目的和功能,我们把所有的编译选项分为q个类别c1,c2,...,cq,每一类中的编译选项都针对相同的优化。
第二步、构建编译器中编译选项的关系图。这里,我们把编译选项之间的关系分为四类:
1.如果任意两个编译选项A、B互不影响,我们称之为AB无关,记做:
3.如果任意两个编译选项A、B之间存在依赖关系,如果B选项依赖A而存在,我们称之为依赖,记做:A→B;
4.如果任意两个编译选项A、B之间存在依赖关系,如果A选项依赖B而存在,我们称之为被依赖,记做:A←B;
第三步、程序特征提取:
3.1测试目标程序是否对测试数据集大小敏感,如果敏感,跳至3.2;如果不敏感,跳至3.3;
3.2用标准数据集加上基本编译选项进行测试,至3.4;
3.3用小数据集加上基本编译选项进行测试,至3.4;
3.4收集整理数据;
第四步、程序特征分析和编译选项类别的选取。对于程序特征测试结果进行分析,找到影响程序性能的主要程序片段及其特征;根据目标程序特征,找出相对应的编译选项类别。具体过程如下:
4.1根据数据集测试结果,提取热点函数;
4.2提取热点函数程序结构,程序特征,以及其他函数对热点函数的调用图;
4.3针对热点函数的程序特征和被调用关系,找到对应的编译选项类c1,c2,...,ci;
4.4将上述所有分类组成一个迭代搜索空间C={c1,c2,...,ci}。
第五步、迭代搜索空间的建立。对找出的编译选项类别中的所有编译选项,对第二步中建立起来的编译选项关系图进行剪枝,形成一个目标程序的迭代搜索空间。具体过程如下:
5.3更新完成,得到新的关系树形图:
第六步、使用搜索算法进行迭代空间搜索:
6.1)对于迭代搜索空间C中的每一个小分类c1,c2,...,ci进行局部最优搜索;
6.2)初始化编译选项序列S←0;箭头←为赋值的意思;
6.3)初始化编译时间T←∞;
6.4)对于每一个小分类ci初始化结果存储空间Ri←0,用于保存指定个数编译选项序列;
6.5)对于每一个小分类ci中的编译选项{O1,O2,...,Om}进行组合,得到p个不同组合:{Com1,Com2,...,Comp},Com表示编译选项组合;
6.6)对于每一种组合Comj'∈{Com1,Com2,...,Comp},由k个编译选项组成Comj'={O1,O2,...,Ok},这里1≤k≤m,j表示组合中任意一个元素;
6.7)对于每个组合中的每一个编译选项Ok∈Comj':
6.7.5)当所有关系树形图都处理完后,得到一个编译选项序列Snew;
6.8)使用生成的编译选项序列Snew进行测试:
6.8.1)对于编译选项序列Snew中的编译选项,如果参数可调,调整不同参数进行测试;
6.8.2)如果测试结果t<T,则将编译选项序列Snew及其对应参数存入结果存储空间:Ri←Snew,T←t;其中,T表示编译时间;
6.9)对于每一编译选项分类,找到指定个数优化序列结果;
6.10)对于每一类中的优化序列进行组合搜索:
6.10.2)每类中提取一个序列组合成新的序列l表示从第l类中提取序列Sf l,f表示序列包含f个编译选项;g表示从第g类中提取序列Sb g,b表示序列包含b个编译选项;h表示从第h类提取序列Sr h,r表示序列包含r个编译选项;
6.10.3)在新的序列Snew中,对互斥、依赖关系编译选项进行删除处理;
6.10.4)形成新的编译选项序列;
6.10.5对编译顺序进行调整;
6.10.6对Snew进行数据集测试,如果t<T,则R←Snew,T←t;
6.10.7得到最优结果Topt和最优编译选项序列Sopt;
将最优结果Topt和最优编译选项序列Sopt保存;
第七步、完成。
本发明对编译器编译选项做了详细的分析,对各选项之间的关系进行了一个系统的划分和归类,建立起一个编译选项关系图;并对目标程序进行动态分析,找出目标程序的程序特征,针对程序特征找到对应编译优化选项的集合;对于所有集合中的各编译选项,利用之前建立起来的编译选项关系图,找出对应的所有选项共同组成一个搜索空间。在此空间中利用搜索算法找到一个最优组合。与现有技术相比,采用本发明可达到以下技术效果:
1.第一步和第二步对编译器的所有编译选项做了一个较清晰的分类,同时为每一个编译选项构建了一个关系树形图,这些工作只需做一次;对于以后新增加的或被删减的编译选项,只需在此基础上做出修改。
2.第三步和第四步对目标程序进行了程序特征分析,这些特征信息是整个算法的基础,它能够决定整个迭代编译的空间大小。
3.第五步到第七步实现了整个搜索算法,它进行了一个局部最优搜索,得到每个子空间的最优解后,再组合成一个完整的空间进行搜索,从而得到一个最优解。
4.本发明的方法结合了程序特征分析和局部搜索算法,大大减小了搜索空间的同时也充分考虑了各编译选项之间的影响,能够在较短时间内找到一个适合目标程序的最优编译选项序列。
尽管本发明的实施方案已公开如上,但并不仅仅限于说明书和实施方案中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里所示出与描述的图例。
Claims (7)
1.一种基于程序特征分析的迭代编译优化方法,其特征在于,包括如下步骤:
步骤一、对编译器中的编译选项按作用进行分类;
步骤二、对每一个编译选项依据规定关系构建关系树形图;
步骤三、建立测试数据集对目标程序进行数据集测试,收集整理测试结果;
步骤四、对于数据集测试的测试结果进行分析,找到影响程序性能的主要程序片段及其特征;根据目标程序特征,找出相对应的编译选项类别,将所有编译选项类组成一个迭代搜索空间;
步骤五、在此迭代搜索空间中以类为基础进行局部最优搜索,再对得到的局部最优解进行组合优化,从而得到全局最优解,即最优结果;
步骤六、将最优结果和对应的编译选项序列保存,结束。
2.如权利要求1所述的基于程序特征分析的迭代编译优化方法,其特征在于,所述步骤一中,对编译器中的编译选项按作用进行分类步骤为:构建编译器编译选项的分类图,针对各个编译选项的优化目的和功能,把所有的编译选项分为q个类别c1,c2,...,cq,每一类中的编译选项都进行相同的优化,q表示所分类别的个数。
4.如权利要求1所述的基于程序特征分析的迭代编译优化方法,其特征在于,所述步骤三包括如下步骤:
3.1)建立测试数据集,测试目标程序是否对测试数据集大小敏感,如果敏感,跳至3.2);如果不敏感,跳至3.3);
3.2)用标准数据集加上基本编译选项进行测试,至3.4);
3.3)用小于标准数据集的小数据集加上基本编译选项进行测试,至3.4);
3.4)收集整理数据。
5.如权利要求1所述的基于程序特征分析的迭代编译优化方法,其特征在于,所述步骤四包括如下步骤:
4.1)根据数据集测试的测试结果,提取热点函数;
4.2)提取热点函数程序结构,程序特征,以及程序中其他函数对热点函数的调用图;
4.3)针对热点函数的程序特征和被调用关系,找到对应的编译选项类c1,c2,...,ci,其中i表示对应的编译选项类的个数;
4.4)将上述所有编译选项类组成一个迭代搜索空间C={c1,c2,...,ci}。
6.如权利要求5所述的基于程序特征分析的迭代编译优化方法,其特征在于,所述步骤五包括如下步骤:对步骤二中建立的编译选项关系图进行剪枝,形成一个目标程序的迭代搜索空间;具体过程如下:
5.1)对于已找出分类中C={c1,c2,...,ci}的每个编译选项其中,表示c1类中找出对应的编译选项的最后一个c1;m表示c1类中找出的对应编译选项个数,表示ci类中找出对应的编译选项的最后一个;n表示ci类找出对应的编译选项个数:其中表示编译选项的关系树形图,表示编译选项的关系树形图;
5.3)更新完成,得到新的关系树形图:
7.如权利要求6所述的基于程序特征分析的迭代编译优化方法,其特征在于,所述步骤五中使用搜索算法对迭代搜索空间以类为基础进行局部最优搜索,再对得到的局部最优解进行组合优化,
从而得到全局最优解,具体包括如下步骤:
6.1)对于迭代搜索空间C中的每一个小分类c1,c2,...,ci进行局部最优搜索;
6.2)初始化编译选项序列S←0;
6.3)初始化编译时间T←∞;
6.4)对于每一个小分类ci初始化结果存储空间Ri←0,用于保存指定个数编译选项序列;
6.5)对于每一个小分类ci中的编译选项{O1,O2,...,Om}进行组合,得到p个不同组合:{Com1,Com2,...,Comp},Com表示编译选项组合;
6.6)对于每一种组合Comj'∈{Com1,Com2,...,Comp},由k个编译选项组成Comj'={O1,O2,...,Ok},这里1≤k≤m,j表示组合中任意一个元素;
6.7)对于每个组合中的每一个编译选项Ok∈Comj':
6.7.5)当所有关系树形图都处理完后,得到一个编译选项序列Snew;
6.8)使用生成的编译选项序列Snew进行测试:
6.8.1)对于编译选项序列Snew中的编译选项,如果参数可调,调整不同参数进行测试;
6.8.2)如果测试结果t<T,则将编译选项序列Snew及其对应参数存入结果存储空间:Ri←Snew,T←t;其中,T表示编译时间;
6.9)对于每一编译选项分类,找到指定个数优化序列结果;
6.10)对于每一类中的优化序列进行组合搜索:
6.10.2)每类中提取一个序列组合成新的序列l表示从第l类中提取序列Sf l,f表示序列包含f个编译选项;g表示从第g类中提取序列Sb g,b表示序列包含b个编译选项;h表示从第h类提取序列Sr h,r表示序列包含r个编译选项;
6.10.3)在新的序列Snew中,对互斥、依赖关系编译选项进行删除处理;
6.10.4)形成新的编译选项序列;
6.10.5)对编译顺序进行调整;
6.10.6)对Snew进行数据集测试,如果t<T,则R←Snew,T←t;
6.10.7)得到最优结果Topt和最优编译选项序列Sopt。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711113109.6A CN107885503B (zh) | 2017-11-11 | 2017-11-11 | 一种基于程序特征分析的迭代编译优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711113109.6A CN107885503B (zh) | 2017-11-11 | 2017-11-11 | 一种基于程序特征分析的迭代编译优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107885503A CN107885503A (zh) | 2018-04-06 |
CN107885503B true CN107885503B (zh) | 2021-01-08 |
Family
ID=61780171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711113109.6A Active CN107885503B (zh) | 2017-11-11 | 2017-11-11 | 一种基于程序特征分析的迭代编译优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107885503B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669698A (zh) * | 2018-11-09 | 2019-04-23 | 福州三鑫隆铸业有限公司 | 基于频繁模式挖掘的gcc编译时能耗演化优化方法及存储设备 |
CN109977019B (zh) * | 2019-04-01 | 2021-04-20 | 大连理工大学 | 一种基于增量采样的编译器优化序列测试方法 |
CN110347583A (zh) * | 2019-05-23 | 2019-10-18 | 平安科技(深圳)有限公司 | 一种数据分析系统会诊方法及相关装置 |
CN111124880B (zh) * | 2019-11-04 | 2021-08-17 | 北京大学 | 基于历史数据的编译器测试输入生成方法和系统 |
CN112433706B (zh) * | 2020-11-27 | 2023-03-14 | 海光信息技术股份有限公司 | 编译选项调优方法、装置、处理器芯片及服务器 |
CN116860259B (zh) * | 2023-09-05 | 2023-12-19 | 之江实验室 | 一种模型训练和编译器自动调优的方法、装置及设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101311901A (zh) * | 2007-05-25 | 2008-11-26 | 松下电器产业株式会社 | 程序重写装置 |
CN103279356A (zh) * | 2013-06-04 | 2013-09-04 | 百度在线网络技术(北京)有限公司 | Makefile文件的自动生成方法和装置 |
CN103699389A (zh) * | 2013-12-30 | 2014-04-02 | 北京大学 | 一种基于编译选项的Linux内核模块关系提取方法 |
CN104866369A (zh) * | 2015-05-22 | 2015-08-26 | 广州华多网络科技有限公司 | 一种数据处理的方法以及装置 |
CN106126235A (zh) * | 2016-06-24 | 2016-11-16 | 中国科学院信息工程研究所 | 一种复用代码库构建方法、复用代码快速溯源方法及系统 |
CN106293683A (zh) * | 2015-06-12 | 2017-01-04 | 小米科技有限责任公司 | 一种项目的编译方法及装置 |
CN106406971A (zh) * | 2016-09-26 | 2017-02-15 | 杭州迪普科技有限公司 | 一种代码文件的编译方法及装置 |
WO2017058541A1 (en) * | 2015-09-30 | 2017-04-06 | Apple Inc. | System and method for using ubershader variants without preprocessing macros |
-
2017
- 2017-11-11 CN CN201711113109.6A patent/CN107885503B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101311901A (zh) * | 2007-05-25 | 2008-11-26 | 松下电器产业株式会社 | 程序重写装置 |
CN103279356A (zh) * | 2013-06-04 | 2013-09-04 | 百度在线网络技术(北京)有限公司 | Makefile文件的自动生成方法和装置 |
CN103699389A (zh) * | 2013-12-30 | 2014-04-02 | 北京大学 | 一种基于编译选项的Linux内核模块关系提取方法 |
CN104866369A (zh) * | 2015-05-22 | 2015-08-26 | 广州华多网络科技有限公司 | 一种数据处理的方法以及装置 |
CN106293683A (zh) * | 2015-06-12 | 2017-01-04 | 小米科技有限责任公司 | 一种项目的编译方法及装置 |
WO2017058541A1 (en) * | 2015-09-30 | 2017-04-06 | Apple Inc. | System and method for using ubershader variants without preprocessing macros |
CN106126235A (zh) * | 2016-06-24 | 2016-11-16 | 中国科学院信息工程研究所 | 一种复用代码库构建方法、复用代码快速溯源方法及系统 |
CN106406971A (zh) * | 2016-09-26 | 2017-02-15 | 杭州迪普科技有限公司 | 一种代码文件的编译方法及装置 |
Non-Patent Citations (2)
Title |
---|
Design and evaluation of a parallel neighbor algorithm for the disjunctively constrained knapsack problem;Quan, Z. etl.;《CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE》;20160512;第29卷(第20期);第1-10页 * |
基于QEMU的动态函数调用跟踪;向勇 等;《计算机研究与发展》;20170731;第1569-1576页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107885503A (zh) | 2018-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107885503B (zh) | 一种基于程序特征分析的迭代编译优化方法 | |
JP6605573B2 (ja) | 並列ディシジョン・ツリー・プロセッサー・アーキテクチャ | |
WO2016062044A1 (zh) | 一种模型参数训练方法、装置及系统 | |
CN110110858B (zh) | 一种基于强化学习的自动化机器学习方法 | |
CN111104120B (zh) | 神经网络编译方法、系统及相应异构计算平台 | |
CN111882040A (zh) | 基于通道数量搜索的卷积神经网络压缩方法 | |
CN107273294B (zh) | 一种基于神经网络语言模型的重复代码检测方法 | |
US9823911B2 (en) | Method and apparatus for compiling code based on a dependency tree | |
CN115563610B (zh) | 入侵检测模型的训练方法、识别方法和装置 | |
CN111325264A (zh) | 一种基于熵的多标签数据分类方法 | |
TW202036584A (zh) | 一種基因變異識別方法、裝置和儲存介質 | |
Xie et al. | Graphiler: Optimizing graph neural networks with message passing data flow graph | |
CN111767216B (zh) | 一种可缓解类重叠问题的跨版本深度缺陷预测方法 | |
CN114416105B (zh) | 一种量子操作的编译方法、系统、存储介质和电子设备 | |
CN112199416A (zh) | 数据规则生成方法及装置 | |
CN106599122B (zh) | 一种基于垂直分解的并行频繁闭序列挖掘方法 | |
CN113468044B (zh) | 一种基于改进的灰色预测演化算法的测试用例生成方法 | |
CN107430506B (zh) | 发现向量内的重复值的多个实例的方法和装置及到排序的应用 | |
US9619362B2 (en) | Event sequence construction of event-driven software by combinational computations | |
KR100538451B1 (ko) | 분산 컴퓨팅 환경에서의 유전자 및 단백질 유사서열 검색시스템 및 그 방법 | |
CN106796615B (zh) | 使用自下而上方法的并行处理 | |
Sinaei et al. | Run-time mapping algorithm for dynamic workloads using association rule mining | |
US10776548B1 (en) | Parallel Monte Carlo sampling for predicting tail performance of integrated circuits | |
WO2023087759A1 (zh) | 一种深度学习模型的测试方法和装置 | |
Vahidi et al. | Parallel Longest Common SubSequence Analysis In Chapel |
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 |