CN116931955B - 基于人工智能的编译器自动调优方法及装置 - Google Patents
基于人工智能的编译器自动调优方法及装置 Download PDFInfo
- Publication number
- CN116931955B CN116931955B CN202311202659.0A CN202311202659A CN116931955B CN 116931955 B CN116931955 B CN 116931955B CN 202311202659 A CN202311202659 A CN 202311202659A CN 116931955 B CN116931955 B CN 116931955B
- Authority
- CN
- China
- Prior art keywords
- optimization
- sequence
- program
- option
- probability
- 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 69
- 238000005457 optimization Methods 0.000 title claims description 247
- 238000013473 artificial intelligence Methods 0.000 title claims description 21
- 238000012549 training Methods 0.000 claims description 67
- 238000003860 storage Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 17
- 239000000284 extract Substances 0.000 claims description 15
- 238000000605 extraction Methods 0.000 claims description 6
- 239000002699 waste material Substances 0.000 abstract description 3
- 239000003795 chemical substances by application Substances 0.000 description 89
- 230000008569 process Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 230000006872 improvement Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction 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/40—Transformation of program code
- G06F8/41—Compilation
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
Abstract
本说明书公开了基于人工智能的编译器自动调优方法及装置,在此方法中,将程序输入到模型中得到各优化序列,编译器针对每个优化序列对程序进行编译运行得到实际运行时间,据此来调整智能体模型输出各优化序列的概率,使得训练后的智能体模型能够输出最优的优化序列,而编译器使用最优优化序列对待运行程序进行编译优化,从而在一定程度上提高运行效率和减少资源浪费。
Description
技术领域
本说明书涉及计算机技术领域和人工智能领域,尤其涉及一种基于人工智能的编译器自动调优方法及装置。
背景技术
编译器是一种把高级程序设计语言编写的源程序翻译成等价的机器语言格式的翻译程序。在编译过程中,编译器会对程序进行优化,在保证语义等价性的前提下,使程序执行更快且使用更少的资源。
目前,编译器可以提供通用的优化选项组合,选中一个优化选项组合后,编译器执行程序的过程中即可以开启该优化选项组合中的各优化选项,以实现对程序执行的优化。
然而,默认提供的优化选项组合往往并不是最优的优化方案,从而使得无法保证编译器通过最优的优化方案来执行程序,进而造成运行效率低和资源浪费。
发明内容
本说明书实施例提供一种基于人工智能的编译器自动调优方法及装置,以部分解决上述现有技术存在的问题。
本说明书实施例采用下述技术方案:
本说明书提供的一种基于人工智能的编译器自动调优方法,包括:
获取样本程序;
将所述样本程序输入到待训练的智能体模型中,以使所述智能体模型对所述样本程序特征提取,并根据提取出的特征信息,得到各优化序列,针对每个优化序列,该优化序列对应一种优化选项组合,所述优化选项组合用于表示各优化选项的开关情况;
针对每个优化序列,按照该优化序列,通过编译器对所述样本程序进行编译并运行,以得到所述编译器按照该优化序列执行所述样本程序后的实际运行时间,作为该优化序列对应的实际运行时间;
针对任意两个优化序列,以所述智能体模型输出对应实际运行时间短的优化序列的概率相比于所述智能体模型输出对应实际运行时间长的优化序列的概率越大为优化目标,对所述智能体模型进行训练;
获取待运行程序,并将所述待运行程序输入到训练后的智能体模型中,以得到所述待运行程序对应的优化序列;
按照所述待运行程序对应的优化序列,通过所述编译器,执行所述待运行程序。
可选地,所述智能体模型包括编码层和解码层;
将所述样本程序输入到待训练的智能体模型中,以使所述智能体模型对所述样本程序特征提取,并根据提取出的特征信息,得到各优化序列,具体包括:
针对得到的每个优化序列,将所述样本程序输入到待训练的智能体模型中,以使所述智能体模型通过所述编码层,对所述样本程序对应的程序信息以及预测出的前N-1个优化选项的开关信息进行编码,以得到特征信息,将所述特征信息输入所述解码层中,以通过所述解码层,预测第N个优化选项的开关概率,并根据所述第N个优化选项的开关概率,得到所述第N个优化选项的开关信息,直至预测出所有优化选项的开关信息为止,得到该优化序列,以及根据每个优化选项的开关概率,确定该优化序列的概率,针对每个优化选项,该优化选项的开关概率用于表示该优化选项是否开启的概率,该优化选项的开关信息用于表示该优化选项是否开启,N为不小于1的正整数。
可选地,针对任意两个优化序列,以所述智能体模型输出对应实际运行时间短的优化序列的概率相比于所述智能体模型输出对应实际运行时间长的优化序列的概率越大为优化目标,对所述智能体模型进行训练,具体包括:
在完成针对所述智能体模型的当前轮次训练后,判断是否到达预设的迭代轮次;
若否,则将样本程序输入所述智能体模型中,以使所述智能体模型对所述样本程序特征提取,并基于提取出的特征信息,重新得到各优化序列,以及根据重新得到的各优化序列对应的实际运行时间,对所述智能体模型进行训练,直至达到预设的迭代轮次为止。可选地,将所述待运行程序输入到训练后的智能体模型中,以得到所述待运行程序对应的优化序列,具体包括:
在模型训练阶段所使用的训练集中确定出与所述待运行程序属于同一程序类别的样本程序,作为参考程序,并确定所述参考程序在所述训练集中的占比;
若确定所述占比低于预设占比,则将所述待运行程序作为样本程序,对所述智能体模型进行训练,并根据经过所述待运行程序训练后的智能体模型,确定所述待运行程序对应的优化序列。
本说明书提供的一种基于人工智能的编译器自动调优装置,包括:
获取模块,用于获取样本程序;
特征提取模块,用于将所述样本程序输入到待训练的智能体模型中,以使所述智能体模型对所述样本程序特征提取,并根据提取出的特征信息,得到各优化序列,针对每个优化序列,该优化序列对应一种优化选项组合,所述优化选项组合用于表示各优化选项的开关情况;
运行模块,用于针对每个优化序列,按照该优化序列,通过编译器对所述样本程序进行编译并运行,以得到所述编译器按照该优化序列执行所述样本程序后的实际运行时间,作为该优化序列对应的实际运行时间;
训练模块,用于针对任意两个优化序列,以所述智能体模型输出对应实际运行时间短的优化序列的概率相比于所述智能体模型输出对应实际运行时间长的优化序列的概率越大为优化目标,对所述智能体模型进行训练;
应用模块,用于获取待运行程序,并将所述待运行程序输入到训练后的智能体模型中,以得到所述待运行程序对应的优化序列;按照所述待运行程序对应的优化序列,通过所述编译器,执行所述待运行程序。
可选地,所述智能体模型包括编码层和解码层;
所述特征提取模块具体用于,针对得到的每个优化序列,将所述样本程序输入到待训练的智能体模型中,以使所述智能体模型通过所述编码层,对所述样本程序对应的程序信息以及预测出的前N-1个优化选项的开关信息进行编码,以得到特征信息,将所述特征信息输入所述解码层中,以通过所述解码层,预测第N个优化选项的开关概率,并根据所述第N个优化选项的开关概率,得到所述第N个优化选项的开关信息,直至预测出所有优化选项的开关信息为止,得到该优化序列,以及根据每个优化选项的开关概率,确定该优化序列的概率,针对每个优化选项,该优化选项的开关概率用于表示该优化选项是否开启的概率,该优化选项的开关信息用于表示该优化选项是否开启,N为不小于1的正整数。
可选地,所述训练模块具体用于,针对任意两个优化序列,以所述智能体模型输出对应实际运行时间短的优化序列的概率相比于所述智能体模型输出对应实际运行时间长的优化序列的概率越大为优化目标,对所述智能体模型进行训练,在完成针对所述智能体模型的当前轮次训练后,判断是否到达预设的迭代轮次;
若否,则将样本程序输入所述智能体模型中,以使所述智能体模型对所述样本程序特征提取,并基于提取出的特征信息,重新得到各优化序列,以及根据重新得到的各优化序列对应的实际运行时间,对所述智能体模型进行训练,直至达到预设的迭代轮次为止。
可选地,所述应用模块具体用于,在模型训练阶段所使用的训练集中确定出与所述待运行程序属于同一程序类别的样本程序,作为参考程序,并确定所述参考程序在所述训练集中的占比;若确定所述占比低于预设占比,则将所述待运行程序作为样本程序,对所述智能体模型进行训练,并根据经过所述待运行程序训练后的智能体模型,确定所述待运行程序对应的优化序列。
本说明书提供的一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于人工智能的编译器自动调优方法。
本说明书提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的基于人工智能的编译器自动调优方法。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
本说明书实施例中先将样本程序输入到待训练的智能体模型中,并基于样本程序的特征信息得到各优化序列,针对每个优化序列,编译器对样本程序进行编译运行得到实际运行时间,针对任意两个优化序列,以智能体模型输出对应实际运行时间短的优化序列的概率相比于智能体模型输出对应实际运行时间长的优化序列的概率越大为优化目标,对智能体模型进行训练,得到训练后的智能体模型。在使用智能体模型时,将待运行程序输入到训练后的智能体模型中,以通过训练后的智能体模型输出待运行程序的最优优化序列,编译器通过最优优化序列执行待运行程序。
在此方法中,将程序输入到智能体模型中得到各优化序列,编译器根据各优化序列对程序进行编译运行,通过实际运行得到运行时间,来调整智能体模型输出各优化序列所对应的概率,使得智能体模型在训练的过程中能够学习到各种优化序列针对程序的潜在优化能力,从而保证训练后的智能体模型能够根据程序的特征信息得到最优优化序列,而编译器根据最优优化序列执行程序,将最大程度提高程序的运行效率,并显著的减少运行程序时的资源消耗。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书实施例提供的基于人工智能的编译器自动调优方法的流程示意图;
图2为本说明书实施例提供的方法的训练流程示意图;
图3为本说明书实施例提供的一种基于人工智能的编译器自动调优装置的结构示意图;
图4为本说明书实施例提供的电子设备的结构示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书实施例提供的基于人工智能的编译器自动调优方法的流程示意图,包括:
S100:获取样本程序。
在实际应用中,编译器中通常会设有诸多的优化选项,这些优化选项可以便于程序运行。以GNU操作系统中的GNU编译器套件GCC(即GNU Compiler Collection,GCC)为例,打开优化选项-fdce后,编译器会执行死代码消除。
但是,由于优化选项数量过多,编译器的使用者甚至无法理解每一个优化选项的功能,与此同时,不同的优化选项之间往往存在着相互作用。这就导致编译器的使用者很难判断一个优化选项是开启还是关闭才能使编译后的代码运行时间更短或是使用资源更少。
为了应对上述问题,目前,编译器一般会提供通用的优化选项组合,如GCC中不同的优化选项组合-O1,-O2,-O3,根据使用者的需求使用其中的优化选项组合,编译器使用该优化选项组合执行程序。
然而,默认提供的优化选项组合往往并不是最优的优化方案,所以,这种方式无法保证编译器通过最优的优化方案来执行程序,从而造成运行效率低和资源浪费。
为了解决上述问题,在本说明书实施例中,首先使用样本程序对智能体模型进行训练。将样本程序输入到智能体模型中得到各优化序列,编译器根据各优化序列对样本程序进行编译运行,得到实际运行时间,据此得到最佳运行时间,并将最佳运行时间对应的优化序列为最优优化序列。而后,根据最优优化序列指导智能体模型训练,以使得训练后的智能体模型能够根据程序的特征信息输出最优优化序列。这样一来,编译器使用最佳优化序列执行程序,将最大程度的提高了程序的性能,从而在一定程度上提高运行效率和减少资源浪费。
对于本说明书提供的基于人工智能的编译器自动调优方法来说,可以通过诸如台式电脑、笔记本电脑等终端设备作为执行主体,也可以通过服务器作为执行主体。而为了便于描述,下面仅以终端设备为执行主体,对本说明书提供的基于人工智能的编译器自动调优方法进行描述。
接下来,终端设备需要先对智能体模型进行训练。
具体的,在本说明书实施例中,终端设备获取样本程序。其中,这里提到的样本程序可以是人为选取出的程序。需要说明的是,为了使得智能体模型能够对各种类型的程序进行准确的预测,那么,在实际训练过程中,可以获取一个包含有众多样本程序的训练集合,在该训练集合中可以包含有各种类型的程序。
这样一来,通过该训练集合对智能体模型进行训练后,可以使得智能体模型学习到各种类型程序的特征,所以在实际应用中,智能体模型能够针对各种类型的程序,给出与之相对应的最优优化序列,从而能够保证编译器在运行各类程序时,均能够显著的提升程序运行的效率。
S102:将所述样本程序输入到待训练的智能体模型中,以使所述智能体模型对所述样本程序特征提取,并根据提取出的特征信息,得到各优化序列,针对每个优化序列,该优化序列对应一种优化选项组合,所述优化选项组合用于表示各优化选项的开关情况。
在本说明书实施例中,终端设备将样本程序输入到待训练的智能体模型中,以使智能体模型对样本程序特征提取,并根据提取出的特征信息,得到各优化序列。
其中,特征信息用于表征程序所具备的特征,所以,在将样本程序的程序信息输入到待训练的智能体模型中后,智能体模型将会通过诸如语义分析、句法分析等方式,来分析整个样本程序所具备的特征,进而从中提取出用于预测针对这一样本程序的优化序列所需的特征信息。
在本说明书中,特征信息的维度可以根据实际需求而定,例如,以静态特征为例,上述提取出的特征信息可以用于反映该样本程序所用到的算术指令和指令循环信息等。
在本说明书中,智能体模型可以具有多种形式,例如,上述提到的智能体模型可以包括编码层和解码层。所以,当终端设备在将样本程序输入到待训练的智能体模型中时,首先将样本程序的程序信息输入到智能体模型的编码层中,以通过编码层对程序的程序信息进行编码,经过编码层中的多层神经网络后输出编码向量。而后,再将编码向量输入到智能体模型的解码层中,解码层使用循环神经网络根据输入的特征向量预测第一个优化选项的开关概率,并根据该开关概率得到第一个优化选项的开关信息,这里提到的开关信息用于反映第一个优化选项的开关情况,即,开启第一个优化选项,还是关闭第一个优化选项。
然后,在预测第二个优化选项的开关概率和开关情况时,将预测出的第一个优化选项的开关信息和样本程序的程序信息输入到智能体模型的编码层中,以通过编码层的多层神经网络后对该输入进行编码,输出编码向量,再将编码向量输入到智能体模型的解码层中,以预测出第二个优化选项的开关概率和第二个优化选项的开关信息。
以此类推,终端设备实际上将样本程序输入到待训练的智能体模型后,智能体模型将通过上述编码层,对样本程序对应的程序信息以及预测出的前N-1个优化选项的开关信息进行编码,以得到特征信息,再将编码得到的特征信息输入到解码层中,以通过该解码层,预测第N个优化选项的开关概率,并根据第N个优化选项的开关概率,得到第N个优化选项的开关信息,直至预测出所有优化选项的开关信息为止,从而得到的一个优化序列,N为不小于1的正整数。
按照上述方式,可以使得智能体模型预测出多个优化序列,而与此同时,针对任意一个优化序列,可以根据该优化序列中各优化选项的开关概率,确定出智能体模型输出该优化序列的概率。
下面针对智能体模型输出优化序列的概率进行举例说明,在此定义优化序列出现的概率,其中,X代表的是该优化序列,p(X|code)表示智能体模型能够得到该优化序列的概率,/>是该优化序列中的其中一个优化选项是否开启的概率,也就是说,通过对该优化选项0-1分布采样决定对应优化选项开启的概率,/>是所有优化选项的是否开启的概率的乘积,基于此,智能体模型能够得到输出该优化序列的概率值。
S104:针对每个优化序列,按照该优化序列,通过编译器对所述样本程序进行编译并运行,以得到所述编译器按照该优化序列执行所述样本程序后的实际运行时间,作为该优化序列对应的实际运行时间。
在通过上述方式得到智能体模型所输出的各优化序列后,需要明确获知哪些优化序列能显著提高程序的执行效率。所以,在本说明书中,终端设备可以按照智能体模型所输出的各优化序列,使用编译器对样本程序进行运行。
也就是说,针对智能体模型所输出的每个优化序列,编译器可以使用该优化序列中关于各优化选项的开关组合情况,来对样本程序进行执行。编译器在执行该样本程序的过程中,终端设备可以监控该样本程序的运行时间,进而确定出编译器按照该优化序列来执行该样本程序所消耗的时间,即,该优化序列对应的实际运行时间。
S106:针对任意两个优化序列,以所述智能体模型输出对应实际运行时间短的优化序列的概率相比于所述智能体模型输出对应实际运行时间长的优化序列的概率越大为优化目标,对所述智能体模型进行训练。
通过编译器按照各优化序列对上述样本程序进行运行后,可以得到各优化序列对应的实际运行时间,以及智能体模型输出各优化序列的概率。
为了能够使训练后的智能体模型能够输出最优的优化序列,可以在模型训练过程中,以优化序列对应的实际运行时间越短,智能体模型输出该优化序列的概率越大为优化目标,对智能体模型进行训练,这样一来,可以使得智能体模型在训练的过程中学习到各种优化序列针对样本程序的潜在优化能力,最终保证训练后的智能体模型针对上述样本程序程序能够输出的最优优化序列,即为运行时间最短的优化序列。
也就是说,对于智能体模型输出的任意两个优化序列,实际上是以智能体模型输出对应实际运行时间短的优化序列的概率相比于智能体模型输出对应实际运行时间长的优化序列的概率越大为优化目标,来对智能体模型进行训练的。
图2本说明书实施例提供的方法的训练流程示意图。
先初始化智能体模型的参数,并设置迭代次数。根据从上述内容中提到的智能体模型输出的各优化序列的概率,以及编译器使用每个优化序列对样本程序进行编译运行后的实际运行时间,终端设备可以利用策略梯度算法对智能体模型的参数进行更新,得到更新后的智能体模型。
而后,终端设备可以判断是否到达预设的迭代次数,若确定未到达预设的迭代次数,则可以使用更新后的智能体模型对样本程序进行特征提取,得到当前迭代轮次所输出的各优化序列,即重新得到的各优化序列,其中,由于智能体模型的参数相比于之前轮次的智能体模型有所更新,所以,当前迭代轮次的智能体模型所输出的各优化序列,可能会与上一迭代轮次的智能体模型所输出的各优化序列存在一定的不同。
进一步地,针对当前迭代轮次所输出的每个优化序列,通过编译器使用这些优化序列对样本程序进行运行,进而确定出编译器按照各优化序列来执行该样本程序所消耗的时间,即,各优化序列对应的实际运行时间。
而后,终端设备再次根据智能体模型输出的各优化序列的概率,以及编译器使用每个优化序列对样本程序进行编译运行后的实际运行时间,利用策略梯度算法对智能体模型的参数进行更新,在当前迭代轮次所更新的更新后的智能体模型。以此类推,直到达到预设的迭代次数为止,或是智能体模型的模型参数已经收敛至预设的范围内,则认为智能体模型已经训练结束,即,已经得到训练好的智能体模型。
在本说明书中,可以通过定义一个损失函数,来执行模型训练过程,定义损失函数可以为,其中,/>实际上表明了一种负相关关系,即优化序列对应的实际运行时间越短,智能体模型输出该优化序列的概率越高,反之,优化序列对应的实际运行时间越长,智能体模型输出该优化序列的概率越低。所以,可以理解对智能体模型进行训练是为了期望训练后的智能体模型能够满足这一负相关关系。θ表示为智能体模型的参数,f(X|code)指代编译器根据智能体模型输出的优化序列X对样本程序进行编译运行得到的运行时间,/>表示优化序列X出现的概率。
另外,上述损失函数可以通过使用蒙特卡洛算法求近似而实现,即,,其中,/>表示的是预设的运行时间阈值,一轮迭代轮次结束后,与运行时间阈值相比运行时间短的优化序列,应当使智能体模型输出该优化序列的概率越大,即/>值越大,进而使得/>值越小。而与运行时间阈值相比运行时间长的优化序列,应当使智能体模型输出该优化序列的概率值越小,即/>越小,进而使得/>值越小。
由此看出,在上述训练过程中,实际上可以最小化损失函数为优化目标,对智能体模型进行训练,换句话说,上述过程可以理解为通过提高智能体模型输出运行时间最短的优化序列的概率,以及,通过降低智能体模型输出运行时间较长长的优化序列的概率,来对智能体模型的参数进行优化。
从上述公式可以看出,终端设备通过上述损失函数对智能体模型的参数进行更新,实际上希望损失函数的损失值越小越好,即,希望能够使智能体模型输出实际运行时间越短的优化序列的概率越大越好,这样可以保证训练后的智能体模型能够输出最优的优化序列。
智能体模型能够量化每个优化选项出现的概率以及开关情况,终端设备根据各优化序列的实际运行时间和智能体模型输出各优化序列的概率,进而通过损失函数更新智能体模型的参数,而后,通过不断的迭代,对智能体模型的参数进行优化,这样一来,训练好的智能体模型可以输出待运行程序的最优优化序列。
S108:获取待运行程序,并将所述待运行程序输入到训练后的智能体模型中,以得到所述待运行程序对应的优化序列,按照所述待运行程序对应的优化序列,通过所述编译器,执行所述待运行程序。
通过上述方式对智能体模型进行训练后,可以将训练后的智能体模型部署在实际应用中。那么,在本说明书实施例中,对于获取到的待运行程序,则可以将该待运行程序的程序信息输入到训练后的智能体模型中,训练后的智能体模型可以输出该待运行程序对应的优化序列,由于智能体模型已经完成了上述训练,则可以认为训练后的智能体模型输出的即为最优的优化序列。
终端设备可以根据训练后的智能体模型输出的优化序列,来执行该待运行程序。即,将智能体模型输出的优化序列给到编译器,由编译器在运行该待运行程序之前,先按照该优化序列,将各个优化选项的开关选项的状态进行调整,而后,再执行该待运行程序。
当然,由于在训练过程中,所采用的训练集中不同类型的样本程序的占比有所不同,这导致训练后的智能体模型对不同类型的程序的预测能力也有所不同。而为了保证智能体模型能够输出准确的优化序列,在本说明书中,终端设备可以先待运行程序的程序类型,然后,在模型训练阶段所使用的训练集中,确定出属于该程序类型的样本程序,作为参考程序,并确定参考程序在训练集中的占比。
若确定该占比低于预设占比,则说明该程序类型的样本程序在训练集中的占比较少,致使训练后的智能体模型对这种程序类型的样本程序不能进行较好的预测,所以,可以将待运行程序作为样本程序,采用上述方法对智能体模型进行进一步地训练,进而根据训练后的智能体模型,来确定出该待运行程序所对应的优化序列。
而若是确定出该占比不低于预设占比,则说明该程序类型的样本程序在训练集中的占比较多,训练后的智能体模型能够对这种程序类型的样本程序进行较好的预测,所以,可以将待运行程序的程序信息直接输入到该智能体模型中,以得到待运行程序的优化序列。
S110:按照所述待运行程序对应的优化序列,通过所述编译器,执行所述待运行程序。
在本说明书实施例中,编译器根据上述内容得到的最优优化序列中关于各优化选项的开关组合情况,对待运行程序进行执行。而从上述方法可以看出,程序输入到智能体模型中得到各优优化序列,编译器根据各优化序列对程序进行编译运行,通过实际运行得到运行时间,来调整智能体模型输出各优化序列所对应的概率,使得智能体模型在训练的过程中能够学习到各种优化序列针对程序的潜在优化能力,从而保证训练后的智能体模型能够根据程序的特征信息得到最优优化序列,而编译器根据最优优化序列执行程序,将最大程度提高程序的运行效率,并显著的减少运行程序时的资源消耗。
并且,由于在训练阶段中所使用的训练集中包含有各种类型的样本程序,所以,可以保证训练后的智能体模型能够对各种类型的程序进行有效的预测,从而提高了智能体模型的应用范围。
以上为本说明书实施例提供的基于人工智能的编译器自动调优方法,基于同样的思路,本说明书还提供了相应的装置、存储介质和电子设备。
图3为本说明书实施例提供的一种基于人工智能的编译器自动调优装置的结构示意图,所述装置包括:
获取模块301,用于获取样本程序;
特征提取模块302,用于将所述样本程序输入到待训练的智能体模型中,以使所述智能体模型对所述样本程序特征提取,并根据提取出的特征信息,得到各优化序列,针对每个优化序列,该优化序列对应一种优化选项组合,所述优化选项组合用于表示各优化选项的开关情况;
运行模块303,用于针对每个优化序列,按照该优化序列,通过编译器对所述样本程序进行编译并运行,以得到所述编译器按照该优化序列执行所述样本程序后的实际运行时间,作为该优化序列对应的实际运行时间;
训练模块304,用于针对任意两个优化序列,以所述智能体模型输出对应实际运行时间短的优化序列的概率相比于所述智能体模型输出对应实际运行时间长的优化序列的概率越大为优化目标,对所述智能体模型进行训练;
应用模块305,用于获取待运行程序,并将所述待运行程序输入到训练后的智能体模型中,以得到所述待运行程序对应的优化序列;按照所述待运行程序对应的优化序列,通过所述编译器,执行所述待运行程序。
可选地,所述智能体模型包括编码层和解码层;
所述特征提取模块302具体用于,针对得到的每个优化序列,将所述样本程序输入到待训练的智能体模型中,以使所述智能体模型通过所述编码层,对所述样本程序对应的程序信息以及预测出的前N-1个优化选项的开关信息进行编码,以得到特征信息,将所述特征信息输入所述解码层中,以通过所述解码层,预测第N个优化选项的开关概率,并根据所述第N个优化选项的开关概率,得到所述第N个优化选项的开关信息,直至预测出所有优化选项的开关信息为止,得到该优化序列,以及根据每个优化选项的开关概率,确定该优化序列的概率,针对每个优化选项,该优化选项的开关概率用于表示该优化选项是否开启的概率,该优化选项的开关信息用于表示该优化选项是否开启,N为不小于1的正整数。
可选地,所述训练模块304具体用于,针对任意两个优化序列,以所述智能体模型输出对应实际运行时间短的优化序列的概率相比于所述智能体模型输出对应实际运行时间长的优化序列的概率越大为优化目标,对所述智能体模型进行训练,在完成针对所述智能体模型的当前轮次训练后,判断是否到达预设的迭代轮次;
若否,则将样本程序输入所述智能体模型中,以使所述智能体模型对所述样本程序特征提取,并基于提取出的特征信息,重新得到各优化序列,以及根据重新得到的各优化序列对应的实际运行时间,对所述智能体模型进行训练,直至达到预设的迭代轮次为止。
可选地,所述应用模块305具体用于,在模型训练阶段所使用的训练集中确定出与所述待运行程序属于同一程序类别的样本程序,作为参考程序,并确定所述参考程序在所述训练集中的占比;若确定所述占比低于预设占比,则将所述待运行程序作为样本程序,对所述智能体模型进行训练,并根据经过所述待运行程序训练后的智能体模型,确定所述待运行程序对应的优化序列。
本说明书还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可用于执行上述图1提供的基于人工智能的编译器自动调优方法。
基于图1所示的基于人工智能的编译器自动调优方法,本说明书实施例还提供了图4所示的电子设备的结构示意图。如图4,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的基于人工智能的编译器自动调优方法。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (10)
1.一种基于人工智能的编译器自动调优方法,其特征在于,包括:
获取样本程序;
将所述样本程序输入到待训练的智能体模型中,以使所述智能体模型对所述样本程序特征提取,并根据提取出的特征信息,得到各优化序列,针对每个优化序列,该优化序列对应一种优化选项组合,所述优化选项组合用于表示各优化选项的开关情况;
针对每个优化序列,按照该优化序列,通过编译器对所述样本程序进行编译并运行,以得到所述编译器按照该优化序列执行所述样本程序后的实际运行时间,作为该优化序列对应的实际运行时间;
针对任意两个优化序列,以所述智能体模型输出对应实际运行时间短的优化序列的概率相比于所述智能体模型输出对应实际运行时间长的优化序列的概率越大为优化目标,对所述智能体模型进行训练;
获取待运行程序,并将所述待运行程序输入到训练后的智能体模型中,以得到所述待运行程序对应的优化序列;
按照所述待运行程序对应的优化序列,通过所述编译器,执行所述待运行程序。
2.如权利要求1所述的方法,其特征在于,所述智能体模型包括编码层和解码层;
将所述样本程序输入到待训练的智能体模型中,以使所述智能体模型对所述样本程序特征提取,并根据提取出的特征信息,得到各优化序列,具体包括:
针对每个优化序列,将所述样本程序输入到待训练的智能体模型中,以使所述智能体模型通过所述编码层,对所述样本程序对应的程序信息以及预测出的前N-1个优化选项的开关信息进行编码,以得到特征信息,将所述特征信息输入所述解码层中,以通过所述解码层,预测第N个优化选项的开关概率,并根据所述第N个优化选项的开关概率,得到所述第N个优化选项的开关信息,直至预测出所有优化选项的开关信息为止,得到该优化序列,以及根据每个优化选项的开关概率,确定该优化序列的概率,针对每个优化选项,该优化选项的开关概率用于表示该优化选项是否开启的概率,该优化选项的开关信息用于表示该优化选项是否开启,N为不小于1的正整数。
3.如权利要求1所述的方法,其特征在于,针对任意两个优化序列,以所述智能体模型输出对应实际运行时间短的优化序列的概率相比于所述智能体模型输出对应实际运行时间长的优化序列的概率越大为优化目标,对所述智能体模型进行训练,具体包括:
在完成针对所述智能体模型的当前轮次训练后,判断是否到达预设的迭代轮次;
若否,则将样本程序输入所述智能体模型中,以使所述智能体模型对所述样本程序特征提取,并基于提取出的特征信息,重新得到各优化序列,以及根据重新得到的各优化序列对应的实际运行时间,对所述智能体模型进行训练,直至达到预设的迭代轮次为止。
4.如权利要求1所述的方法,其特征在于,将所述待运行程序输入到训练后的智能体模型中,以得到所述待运行程序对应的优化序列,具体包括:
在模型训练阶段所使用的训练集中确定出与所述待运行程序属于同一程序类别的样本程序,作为参考程序,并确定所述参考程序在所述训练集中的占比;
若确定所述占比低于预设占比,则将所述待运行程序作为样本程序,对所述智能体模型进行训练,并根据经过所述待运行程序训练后的智能体模型,确定所述待运行程序对应的优化序列。
5.一种基于人工智能的编译器自动调优装置,其特征在于,包括:
获取模块,用于获取样本程序;
特征提取模块,用于将所述样本程序输入到待训练的智能体模型中,以使所述智能体模型对所述样本程序特征提取,并根据提取出的特征信息,得到各优化序列,针对每个优化序列,该优化序列对应一种优化选项组合,所述优化选项组合用于表示各优化选项的开关情况;
运行模块,用于针对每个优化序列,按照该优化序列,通过编译器对所述样本程序进行编译并运行,以得到所述编译器按照该优化序列执行所述样本程序后的实际运行时间,作为该优化序列对应的实际运行时间;
训练模块,用于针对任意两个优化序列,以所述智能体模型输出对应实际运行时间短的优化序列的概率相比于所述智能体模型输出对应实际运行时间长的优化序列的概率越大为优化目标,对所述智能体模型进行训练;
应用模块,用于获取待运行程序,并将所述待运行程序输入到训练后的智能体模型中,以得到所述待运行程序对应的优化序列;按照所述待运行程序对应的优化序列,通过所述编译器,执行所述待运行程序。
6.如权利要求5所述的装置,其特征在于,所述智能体模型包括编码层和解码层;
所述特征提取模块具体用于,针对每个优化序列,将所述样本程序输入到待训练的智能体模型中,以使所述智能体模型通过所述编码层,对所述样本程序对应的程序信息以及预测出的前N-1个优化选项的开关信息进行编码,以得到特征信息,将所述特征信息输入所述解码层中,以通过所述解码层,预测第N个优化选项的开关概率,并根据所述第N个优化选项的开关概率,得到所述第N个优化选项的开关信息,直至预测出所有优化选项的开关信息为止,得到该优化序列,以及根据每个优化选项的开关概率,确定该优化序列的概率,针对每个优化选项,该优化选项的开关概率用于表示该优化选项是否开启的概率,该优化选项的开关信息用于表示该优化选项是否开启,N为不小于1的正整数。
7.如权利要求5所述的装置,其特征在于,所述训练模块具体用于,针对任意两个优化序列,以所述智能体模型输出对应实际运行时间短的优化序列的概率相比于所述智能体模型输出对应实际运行时间长的优化序列的概率越大为优化目标,对所述智能体模型进行训练,在完成针对所述智能体模型的当前轮次训练后,判断是否到达预设的迭代轮次;
若否,则将样本程序输入所述智能体模型中,以使所述智能体模型对所述样本程序特征提取,并基于提取出的特征信息,重新得到各优化序列,以及根据重新得到的各优化序列对应的实际运行时间,对所述智能体模型进行训练,直至达到预设的迭代轮次为止。
8.如权利要求5所述的装置,其特征在于,所述应用模块具体用于,在模型训练阶段所使用的训练集中确定出与所述待运行程序属于同一程序类别的样本程序,作为参考程序,并确定所述参考程序在所述训练集中的占比;若确定所述占比低于预设占比,则将所述待运行程序作为样本程序,对所述智能体模型进行训练,并根据经过所述待运行程序训练后的智能体模型,确定所述待运行程序对应的优化序列。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1-4任一项所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1-4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311202659.0A CN116931955B (zh) | 2023-09-18 | 2023-09-18 | 基于人工智能的编译器自动调优方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311202659.0A CN116931955B (zh) | 2023-09-18 | 2023-09-18 | 基于人工智能的编译器自动调优方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116931955A CN116931955A (zh) | 2023-10-24 |
CN116931955B true CN116931955B (zh) | 2024-01-09 |
Family
ID=88390101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311202659.0A Active CN116931955B (zh) | 2023-09-18 | 2023-09-18 | 基于人工智能的编译器自动调优方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116931955B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433706A (zh) * | 2020-11-27 | 2021-03-02 | 海光信息技术股份有限公司 | 编译选项调优方法、装置、处理器芯片及服务器 |
CN113204349A (zh) * | 2021-05-10 | 2021-08-03 | 西北大学 | 基于rl的超优化编译器建立、代码超优化方法及系统 |
CN114995818A (zh) * | 2022-04-14 | 2022-09-02 | 大连海事大学 | 一种Simulink模型到C语言的优化参数自动配置方法 |
CN115469851A (zh) * | 2022-10-20 | 2022-12-13 | 晞德软件(北京)有限公司 | 一种编译器自动调参方法 |
CN116126341A (zh) * | 2022-12-30 | 2023-05-16 | 深圳思谋信息科技有限公司 | 模型编译方法、装置、计算机设备及计算机可读存储介质 |
CN116204191A (zh) * | 2023-01-09 | 2023-06-02 | 北京航空航天大学 | 一种基于遗传算法的编译器参数自动调优方法 |
CN116521176A (zh) * | 2023-05-06 | 2023-08-01 | 东莞理工学院 | 一种编译优化选项优化方法、装置、智能终端及存储介质 |
CN116627503A (zh) * | 2023-05-25 | 2023-08-22 | 北京地平线信息技术有限公司 | 神经网络模型的编译方法、优化模型的训练方法和装置 |
CN116679938A (zh) * | 2023-06-06 | 2023-09-01 | 福建师范大学 | Llvm编译选项序列两阶段优化方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9996325B2 (en) * | 2013-03-06 | 2018-06-12 | Qualcomm Incorporated | Dynamic reconfigurable compiler |
-
2023
- 2023-09-18 CN CN202311202659.0A patent/CN116931955B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433706A (zh) * | 2020-11-27 | 2021-03-02 | 海光信息技术股份有限公司 | 编译选项调优方法、装置、处理器芯片及服务器 |
CN113204349A (zh) * | 2021-05-10 | 2021-08-03 | 西北大学 | 基于rl的超优化编译器建立、代码超优化方法及系统 |
CN114995818A (zh) * | 2022-04-14 | 2022-09-02 | 大连海事大学 | 一种Simulink模型到C语言的优化参数自动配置方法 |
CN115469851A (zh) * | 2022-10-20 | 2022-12-13 | 晞德软件(北京)有限公司 | 一种编译器自动调参方法 |
CN116126341A (zh) * | 2022-12-30 | 2023-05-16 | 深圳思谋信息科技有限公司 | 模型编译方法、装置、计算机设备及计算机可读存储介质 |
CN116204191A (zh) * | 2023-01-09 | 2023-06-02 | 北京航空航天大学 | 一种基于遗传算法的编译器参数自动调优方法 |
CN116521176A (zh) * | 2023-05-06 | 2023-08-01 | 东莞理工学院 | 一种编译优化选项优化方法、装置、智能终端及存储介质 |
CN116627503A (zh) * | 2023-05-25 | 2023-08-22 | 北京地平线信息技术有限公司 | 神经网络模型的编译方法、优化模型的训练方法和装置 |
CN116679938A (zh) * | 2023-06-06 | 2023-09-01 | 福建师范大学 | Llvm编译选项序列两阶段优化方法及系统 |
Non-Patent Citations (3)
Title |
---|
"Optimizing a Retargetable Compiled Simulator to Achieve Near-Native Performance";Maxiwell Salvador Garcia 等;《IEEE》;全文 * |
一种运算和数据协同优化的深度学习编译框架;吴林阳;杜伟健;陈小兵;庄毅敏;;高技术通讯(02);全文 * |
基于集成学习的编译优化参数选择方法研究;刘慧;姚金阳;赵荣彩;;信息工程大学学报(03);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116931955A (zh) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116304720B (zh) | 一种代价模型训练的方法、装置、存储介质及电子设备 | |
CN116663618A (zh) | 一种算子优化方法、装置、存储介质及电子设备 | |
CN116185532B (zh) | 一种任务执行系统、方法、存储介质及电子设备 | |
CN116225669B (zh) | 一种任务执行方法、装置、存储介质及电子设备 | |
CN116860259B (zh) | 一种模型训练和编译器自动调优的方法、装置及设备 | |
CN116842715B (zh) | 一种仿真数据结构化处理系统 | |
CN116931955B (zh) | 基于人工智能的编译器自动调优方法及装置 | |
CN116932092B (zh) | 一种算子调用代码自动生成的方法、装置、介质及设备 | |
CN117009093B (zh) | 降低神经网络推理所需内存占用量的重计算方法和系统 | |
CN115543945B (zh) | 一种模型压缩的方法、装置、存储介质及电子设备 | |
CN111753990B (zh) | 一种量子计算机模拟环境方法、设备及介质 | |
CN117828360A (zh) | 一种模型训练、代码生成方法、装置、存储介质及设备 | |
CN116755862B (zh) | 一种算子优化调度模型的训练方法、装置、介质及设备 | |
CN116996397B (zh) | 一种网络丢包优化的方法、装置、存储介质及电子设备 | |
CN116684499B (zh) | 一种基于多网协同的智能调音台 | |
CN116501852B (zh) | 一种可控对话模型训练方法、装置、存储介质及电子设备 | |
CN117201334B (zh) | 一种多模态网络流量预测方法及装置 | |
CN117522669B (zh) | 一种图形处理器内存优化方法、装置、介质及设备 | |
CN116167431B (zh) | 一种基于混合精度模型加速的业务处理方法及装置 | |
CN116991388B (zh) | 一种深度学习编译器的图优化序列生成方法及装置 | |
CN116434787B (zh) | 一种语音情感识别的方法、装置、存储介质及电子设备 | |
CN117668543A (zh) | 一种模型训练方法、装置、存储介质及电子设备 | |
CN117591130A (zh) | 一种模型部署的方法、装置、存储介质及电子设备 | |
CN116227604A (zh) | 基于分布式的贝叶斯网络训练方法及装置 | |
CN114241727A (zh) | 变电设备智能诊断预警系统、方法及装置 |
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 |