CN116301904B - 一种用于深度学习编译器的算子优化加速方法及装置 - Google Patents
一种用于深度学习编译器的算子优化加速方法及装置 Download PDFInfo
- Publication number
- CN116301904B CN116301904B CN202310559970.4A CN202310559970A CN116301904B CN 116301904 B CN116301904 B CN 116301904B CN 202310559970 A CN202310559970 A CN 202310559970A CN 116301904 B CN116301904 B CN 116301904B
- Authority
- CN
- China
- Prior art keywords
- operator
- optimization
- particle
- algorithm
- search
- 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
- 238000005457 optimization Methods 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000013135 deep learning Methods 0.000 title claims abstract description 25
- 230000001133 acceleration Effects 0.000 title claims abstract description 17
- 239000002245 particle Substances 0.000 claims abstract description 71
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 45
- 238000004364 calculation method Methods 0.000 claims abstract description 12
- 238000010845 search algorithm Methods 0.000 claims abstract description 11
- 230000006870 function Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 12
- 238000005070 sampling Methods 0.000 claims description 12
- 230000009191 jumping Effects 0.000 claims description 9
- 238000003062 neural network model Methods 0.000 claims description 6
- 230000019637 foraging behavior Effects 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000005259 measurement Methods 0.000 abstract description 6
- 238000013528 artificial neural network Methods 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000013136 deep learning model Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 150000004820 halides Chemical class 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000002922 simulated annealing Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation 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
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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
本发明公开了一种用于深度学习编译器的算子优化加速方法及装置,目的是减少算子优化空间的搜索时间。该方法首先将神经网络抽象成计算图的形式,再对计算图进行图优化,并为优化后的计算图中的每个算子定义优化空间。然后以LightGBM为代价模型,粒子群优化算法为搜索算法对优化空间进行搜索。在每轮搜索中,对搜索算法输出的候选解采用DBSCAN进行聚类和采样,减少在硬件上的实测次数,进一步提升搜索效率。
Description
技术领域
本发明涉及深度学习、编译技术、高性能计算交叉技术应用领域,尤其是涉及一种用于深度学习编译器的算子优化加速方法及装置。
背景技术
近年来,深度学习技术飞速发展并在机器视觉、自然语言处理、自动驾驶等多个领域取得了巨大成功。随着深度学习应用场景的不断增加,对深度学习模型的部署提出了更高的要求,其中一个重要的优化目标就是模型的推理速度。一般地,使用Tensorflow,Pytorch等深度学习框架训练的模型都可以导出为计算图的形式,在部署时,会以上述计算图为输入先进行计算图优化,如算子融合等,这类优化是与硬件平台无关的。然后将优化后的计算图中的算子映射到硬件供应商提供的计算库来获得高效执行。
硬件供应商提供的计算库往往具有很高的性能,比如NVIDIA公司的cuDNN,但是这种高性能计算库的构建和调优需要耗费巨大的工程量,随着新的神经网络结构不断被提出,工程上的压力也越来越大。另一方面,设计新的神经网络加速硬件也需要开发对应的高性能计算库,这也增大了工程负担。
为了解决上述问题,通过编译技术将不同深度学习框架产生的计算图映射到不同硬件并产生目标硬件可执行代码的方案获得了显著效果。一种比较高效的神经网络编译器包含以下流程:首先导入各种深度学习框架输出的计算图为高级中间表示(IntermediateRepresentation,IR),并进行图级别的优化,然后将优化后的高级IR转化为低级IR,并进行算子级别的优化,最后进行代码生成,将低级IR转化为目标硬件的可执行代码。TVM,Halide等深度学习编译器便采用了与上述流程相近的方案。
当进行算子级别的优化时,需要先定义算子的搜索空间,然后设计算法对搜索空间进行搜索,获得最佳的优化方案。一般地,搜索方案包括代价模型和搜索算法。其中代价模型用于预测算子在硬件上的运行时间,以减少在硬件上实测的开销。在每一轮迭代中,基于代价模型,搜索算法寻找一批最优的候选程序在硬件上运行,并根据实测的运行时间,构建数据集对代价模型进行更新。搜索过程按照上述流程进行循环,直到满足退出条件。
一般情况下,算子的搜索空间是高维的且往往非常大,因此,对于常用的搜索算法比如模拟退火和遗传算法等效率仍然偏低,以及导致算子优化的时间非常长的问题也需更新技术进行解决。
发明内容
针对现有技术的不足,本发明提出一种用于深度学习编译器的算子优化加速方法; 该方法改善编译器在算子优化过程中的时间开销;
本发明采用如下技术方案来实现的:
一种用于深度学习编译器的算子优化加速方法,包括如下步骤:
S1,将神经网络模型导入为计算图形式的高级IR;
S2,对计算图形式的高级IR进行图优化;
S3,将高级IR转化为低级IR,并为每个算子定义搜索空间;
S4,采用LightGBM作为代价模型,粒子群优化算法作为搜索算法并结合候选集采样对算子的搜索空间进行搜索;
S5,选择搜索到的最优算子进行代码生成,生成目标硬件的可执行代码。
具体地,所述S4中LightGBM是一种梯度提升树算法。
具体地,所述S4中粒子群优化算法是一种受鸟群觅食行为启发的元启发式算法,适用于算子优化的场景,用于加速算子优化速度;
进一步地,所述算子优化具体为:
假设待搜索的参数维度为维,则可行解的形式为/>,其中/>对应第/>维的一种配置,其取值范围为/>,且/>;搜索过程中用代价模型作为目标函数,记为/>,搜索的目标是找到使/>达到最大的最优解/>。
进一步地,所述S4粒子群优化算法的流程步骤如下:
S4.1,本轮搜索开始,初始化参数,包括迭代次数、粒子数量/>、参数维度/>,以及速度更新权重/>、/>和/>;
S4.2,第一轮搜索随机初始化粒子群位置z和速度/>,后续搜索以上一轮搜索结束时的状态作为初始状态;
S4.3,判断是否满足结束条件,如满足结束条件,跳至步骤S4.9,否则跳至步骤S4.4;
S4.4,基于代价模型计算每个粒子的目标函数;
S4.5,更新每个粒子的最优位置;
S4.6,更新全局最优位置;
S4.7,计算每个粒子的速度,并向下取整/>;
S4.8,根据公式计算每个粒子的新位置,若/>的某个维度超过了对应的取值范围,则将该维度重新初始化,保证更新后的/>在可行域内;更新位置后跳至步骤S4.3;
S4.9,输出每个粒子的历史最优位置;
S4.10,本轮搜索结束;
所述粒子群优化算法的相关符号如下:迭代次数为T;粒子数量为;第/>轮迭代的编号为/>的粒子位置为/>,速度为/>;编号为/>的粒子已搜索到的最优位置为/>,全局最优位置为/>。
具体地,所述S4.7计算每个粒子的速度的数学表达式为:
其中,、/>和/>为速度更新权重;/>和/>表示取值范围为/>的随机数。
具体地,所述候选集采样,具体为,在每轮搜索中,粒子群优化算法会输出一批候选最优解,采用了一种基于密度聚类的算法DBSACN,对每轮搜索后的候选解进行聚类,对于聚类后的每一个类进行随机采样,得到需要在硬件上待实测的候选解。
一种用于深度学习编译器的算子优化加速装置,该装置包括以下模块:
导入模块:将神经网络模型导入为计算图形式的高级IR;
优化模块:对计算图形式的高级IR进行图优化;
转化模块:将高级IR转化为低级IR,并为每个算子定义搜索空间;
搜索模块:采用LightGBM作为代价模型,粒子群优化算法作为搜索算法并结合候选集采样对算子的搜索空间进行搜索;
生成模块:选择搜索到的最优算子进行代码生成,生成目标硬件的可执行代码。
一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现所述的方法。
一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现所述方法的步骤。
本发明的有益效果如下:
本发明提出的方法主要针对深度学习编译器的算子优化过程,它可以自动地为各种算子搜索高效的代码实现,极大降低了工程师手工优化的工作量,为深度学习模型的部署提供了方便。之前的算子优化方案的一个痛点是算子优化时间长,本发明以LightGBM为代价模型可以高效地训练并评估算子的运行时间;以粒子群优化算法为搜索算法可以使各样本点进行充分的信息交互,从而加快搜索过程。另外,在每轮搜索中,对搜索算法输出的候选解采用DBSCAN进行聚类和采样,减少在硬件上的实测次数。通过上述方案,可以对整个算子优化过程进行加速,从而提升模型的部署效率。
附图说明
图1为本发明的算子优化示意图;
图2为本发明的粒子群优化算法流程图;
图3为本发明的算子优化流程图;
图4为本发明的装置流程图;
图5为本发明的电子设备结构图。
具体实施方式
为了使本发明的技术方案及优点更加清楚明白,以下对本发明中的算法流程进行进一步详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限定本发明。
本发明的技术方案如下:
一种用于深度学习编译器的算子优化加速方法,包括如下步骤:
S1,将神经网络模型导入为计算图形式的高级IR;
S2,对计算图形式的高级IR进行图优化;所述图优化包括但不限于对计算图形式的高级IR进行常量折叠、死码消除、公共子表达式消除等操作;
S3,将高级IR转化为低级IR,并为每个算子定义搜索空间;
S4,采用LightGBM作为代价模型,粒子群优化算法作为搜索算法并结合候选集采样对算子的搜索空间进行搜索;
S5,选择搜索到的最优算子进行代码生成,生成目标硬件的可执行代码。
对于步骤S4,详细说明如下:
所述LightGBM是一种梯度提升树算法,相较深度学习模型有更快的训练速度,即使相较同属于梯度提升树的XGBoost也有更好的性能。
所述粒子群优化算法:粒子群优化算法是一种受鸟群觅食行为启发的元启发式算法,具有参数少、收敛速度快等优点,尤其在高维问题和大搜索空间上被实践证明有良好的表现,适合算子优化的场景。基础的粒子群优化算法仅支持连续空间的优化,而算子优化场景是离散优化问题,需要进行调整。
算子优化,即假设待搜索的参数维度为维,则可行解的形式为,其中/>对应第/>维的一种配置,其取值范围为/>,且/>。搜索过程中用代价模型作为目标函数,记为/>,搜索的目标是找到使/>达到最大的最优解/>。
其粒子群优化算法的流程步骤描述如下:
S1,本轮搜索开始,初始化参数,包括迭代次数、粒子数量/>、参数维度/>,以及速度更新权重/>、/>和/>等;
S2,第一轮搜索随机初始化粒子群位置和速度/>,后续搜索以上一轮搜索结束时的状态作为初始状态;
S3,判断是否满足结束条件,如满足结束条件,跳至步骤S9,否则跳至步骤S4;
S4,基于代价模型计算每个粒子的目标函数;
S5,更新每个粒子的最优位置;
S6,更新全局最优位置;
S7,根据公式
计算每个粒子的速度,并向下取整;
S8,根据公式
计算每个粒子的新位置,若的某个维度超过了对应的取值范围,则将该维度重新初始化,保证更新后的/>在可行域内。更新位置后跳至步骤S3;
S9,输出每个粒子的历史最优位置;
S10,本轮搜索结束。
所述粒子群优化算法的相关符号如下:迭代次数为T;粒子数量为;第/>轮迭代的编号为/>的粒子位置为/>,速度为/>;编号为/>的粒子已搜索到的最优位置为/>,全局最优位置为/>;速度更新权重为/>、/>和/>;/>和/>表示取值范围为/>的随机数。
本发明采用的粒子群优化算法,可以使不同候选解之间实现更充分的信息共享,从而提升搜索效率,减少搜索时间。
所述候选解采样:每轮搜索中,粒子群优化算法会输出一批候选最优解,若全部进行代码生成并在硬件上实测效率会很低。考虑到部分候选解在搜索空间中是接近的,硬件实测的运行时间也会比较接近,因此本发明采用了一种基于密度聚类的算法DBSACN,对每轮搜索后的候选解进行聚类。对于聚类后的每一个类进行随机采样,得到需要在硬件上实测的候选解。通过聚类和采样,可以有效减少实测的候选解数量,从而减少时间开销。
实施例
如图1的算子优化示意图和图3所示的算子优化流程图:
所述算子优化是个迭代过程,在每轮迭代中,先利用粒子群优化算法对搜索空间进行搜索,搜索过程中采用LightGBM作为代价模型对样本点的运行时间进行评估。搜索完成后输出一批候选解,采用DBSCAN进行聚类。对于聚类得到的每个类,再进行随机采样。通过上述方法得到需要硬件实测的候选解,它是原始候选解的子集。针对需要实测的候选解进行代码生成,并在硬件上运行得到真实的运行时间。将实测结果构造数据集,用来对LightGBM模型进行更新。至此完成了算子优化的一轮完整迭代。迭代过程持续进行,直到次数用尽后,整个算子优化过程结束,输出经过实测的运行时间最短的算子作为最优算子。
深度学习编译器导入模型后经过图优化并转化为低级IR,假设待优化的算子为矩阵乘算子。
矩阵乘算子可采用的优化方式包括循环展开、平铺、并行化等。以平铺为例,它是指对循环进行拆分,比如原循环范围为512,将其平铺为3个维度,即拆分为3个循环,那么(128*2*2)就是其中一种可行的拆分方法,而这种拆分方法一共有55种。其他变换也有相似的性质。假设示例的矩阵乘算子采用2种变换,每种变换分别对应4、55种可能性,那么搜索空间的大小为220 (220=4*55),对应到优化问题的可行域即参数维度为2维,也即可行解的形式为,其中/>,/>,且/>和/>皆为整数。
如图2所示的粒子群优化算法流程图,下面描述粒子群优化算法的搜索过程:
步骤S1对各参数进行初始化,其中速度更新权重、/>和/>表示速度的三个组成成分的相对重要性,比如取/>,/>,/>;
步骤S2对粒子群的位置和速度进行初始化。首轮迭代中,位置可以随机生成,速度可以初始化为0,比如针对示例任务,编号的粒子的初始位置/>,初始速度。后续迭代中,以上一轮结束时的状态作为初始状态进行初始化;
步骤S3中的结束条件可以为迭代次数用尽或者早停,其中早停指全局最优位置多轮未更新就结束搜索;
步骤S4采用基于LightGBM的代价模型对所有粒子进行评估;
步骤S5对每个粒子更新历史最优位置,即比较对应的目标函数值和步骤S4评估的目标函数值,若后者更优,则将/>更新为粒子当前位置;
步骤S6更新全局最优位置,即逐个比较所有粒子最优位置对应的目标函数值和全局最优位置/>对应的目标函数值,若粒子位置更优,则更新/>为该粒子的最优位置;
步骤S7更新粒子速度,第一轮迭代中,对于编号的粒子,假设/>和/>生成的随机数分别为0.4和0.5,/>,/>,则,向下取整可得;
步骤S8更新粒子位置,对于示例粒子,,满足取值范围要求,若超出取值范围,则需要重新初始化。
如图4所示,是根据一示例性实施例示出的一种用于深度学习编译器的算子优化加速装置,该装置包括以下模块:
导入模块:将神经网络模型导入为计算图形式的高级IR;
优化模块:对计算图形式的高级IR进行图优化;
转化模块:将高级IR转化为低级IR,并为每个算子定义搜索空间;
搜索模块:采用LightGBM作为代价模型,粒子群优化算法作为搜索算法并结合候选集采样对算子的搜索空间进行搜索;
生成模块:选择搜索到的最优算子进行代码生成,生成目标硬件的可执行代码。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
如图5所示,相应的,本申请还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的一种用于深度学习编译器的算子优化加速方法。实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
相应的,本申请还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述的一种用于深度学习编译器的算子优化加速方法。所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。
Claims (7)
1.一种用于深度学习编译器的算子优化加速方法,其特征在于,包括如下步骤:
S1,将神经网络模型导入为计算图形式的高级IR;
S2,对计算图形式的高级IR进行图优化;
S3,将高级IR转化为低级IR,并为每个算子定义搜索空间;
S4,采用LightGBM作为代价模型,粒子群优化算法作为搜索算法并结合候选集采样对算子的搜索空间进行搜索;
所述粒子群优化算法是一种受鸟群觅食行为启发的元启发式算法,适用于算子优化的场景,用于加速算子优化速度;
所述算子优化具体为:假设待搜索的参数维度为d维,则可行解的形式为X=(x1,x2,…xi,…xd),其中xi对应第i维的一种配置,其取值范围为0≤xi<ni,且xi∈Z;搜索过程中用代价模型作为目标函数,记为搜索的目标是找到使/>达到最大的最优解X*;
所述候选集采样,具体为,在每轮搜索中,粒子群优化算法会输出一批候选最优解,采用了一种基于密度聚类的算法DBSACN,对每轮搜索后的候选解进行聚类,对于聚类后的每一个类进行随机采样,得到需要在硬件上待实测的候选解;
S5,选择搜索到的最优算子进行代码生成,生成目标硬件的可执行代码。
2.根据权利要求1所述的一种用于深度学习编译器的算子优化加速方法,其特征在于,所述S4中LightGBM是一种梯度提升树算法。
3.根据权利要求1所述的一种用于深度学习编译器的算子优化加速方法,其特征在于,所述S4粒子群优化算法的流程步骤如下:
S4.1,本轮搜索开始,初始化参数,包括迭代次数T、粒子数量N、参数维度d,以及速度更新权重ω、clocal和cglobal;
S4.2,第一轮搜索随机初始化粒子群位置和速度/>后续搜索以上一轮搜索结束时的状态作为初始状态;
S4.3,判断是否满足结束条件,如满足结束条件,跳至步骤S4.9,否则跳至步骤S4.4;
S4.4,基于代价模型计算每个粒子的目标函数;
S4.5,更新每个粒子的最优位置
S4.6,更新全局最优位置Pglobal;
S4.7,计算每个粒子的速度并向下取整/>
S4.8,根据公式计算每个粒子的新位置,若/>的某个维度超过了对应的取值范围,则将该维度重新初始化,保证更新后的/>在可行域内;更新位置后跳至步骤S4.3;
S4.9,输出每个粒子的历史最优位置
S4.10,本轮搜索结束;
所述粒子群优化算法的相关符号如下:迭代次数为T;粒子数量为N;第t轮迭代的编号为k的粒子位置为速度为/>编号为k的粒子已搜索到的最优位置为/>全局最优位置为Pglobal。
4.根据权利要求3所述的一种用于深度学习编译器的算子优化加速方法,其特征在于,所述S4.7计算每个粒子的速度的数学表达式为:
其中,ω、clocal和cglobal为速度更新权重;rlocal和rglobal表示取值范围为(0,1)的随机数。
5.一种用于深度学习编译器的算子优化加速装置,其特征在于,该装置包括以下模块:
导入模块:将神经网络模型导入为计算图形式的高级IR;
优化模块:对计算图形式的高级IR进行图优化;
转化模块:将高级IR转化为低级IR,并为每个算子定义搜索空间;
搜索模块:采用LightGBM作为代价模型,粒子群优化算法作为搜索算法并结合候选集采样对算子的搜索空间进行搜索;所述粒子群优化算法是一种受鸟群觅食行为启发的元启发式算法,适用于算子优化的场景,用于加速算子优化速度;
所述算子优化具体为:假设待搜索的参数维度为d维,则可行解的形式为X=(x1,x2,…xi,…xd),其中xi对应第i维的一种配置,其取值范围为0≤xi<ni,且xi∈Z;搜索过程中用代价模型作为目标函数,记为搜索的目标是找到使/>达到最大的最优解X×;
所述候选集采样,具体为,在每轮搜索中,粒子群优化算法会输出一批候选最优解,采用了一种基于密度聚类的算法DBSACN,对每轮搜索后的候选解进行聚类,对于聚类后的每一个类进行随机采样,得到需要在硬件上待实测的候选解;
生成模块:选择搜索到的最优算子进行代码生成,生成目标硬件的可执行代码。
6.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4任一项所述的方法。
7.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-4中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310559970.4A CN116301904B (zh) | 2023-05-18 | 2023-05-18 | 一种用于深度学习编译器的算子优化加速方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310559970.4A CN116301904B (zh) | 2023-05-18 | 2023-05-18 | 一种用于深度学习编译器的算子优化加速方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116301904A CN116301904A (zh) | 2023-06-23 |
CN116301904B true CN116301904B (zh) | 2023-08-22 |
Family
ID=86803564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310559970.4A Active CN116301904B (zh) | 2023-05-18 | 2023-05-18 | 一种用于深度学习编译器的算子优化加速方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116301904B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116663618B (zh) * | 2023-07-28 | 2023-12-05 | 之江实验室 | 一种算子优化方法、装置、存储介质及电子设备 |
CN116991428B (zh) * | 2023-09-28 | 2023-12-15 | 飞腾信息技术有限公司 | 一种编译方法、装置、编译器、计算设备及存储介质 |
CN117075918B (zh) * | 2023-10-13 | 2024-01-09 | 之江实验室 | 一种模型部署方法、装置、存储介质及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764744A (zh) * | 2018-07-25 | 2020-02-07 | 赛灵思公司 | 用于神经网络计算的中间表示生成方法和装置 |
CN112579063A (zh) * | 2021-03-01 | 2021-03-30 | 之江实验室 | 一种用于深度学习编译器中探索优化空间的加速方法 |
CN112598121A (zh) * | 2020-12-21 | 2021-04-02 | 北京时代民芯科技有限公司 | 一种面向深度学习编译器的高效算子优化方法 |
CN113031966A (zh) * | 2021-05-20 | 2021-06-25 | 之江实验室 | 一种智能选择编译加速库的深度学习编译优化方法 |
CN113778654A (zh) * | 2021-09-27 | 2021-12-10 | 国网湖南省电力有限公司 | 基于粒子群优化算法的并行任务调度方法 |
CN113885845A (zh) * | 2021-09-30 | 2022-01-04 | 苏州浪潮智能科技有限公司 | 深度学习编译器的计算图的生成方法、系统、设备及介质 |
CN114138274A (zh) * | 2021-11-12 | 2022-03-04 | 广东浪潮智慧计算技术有限公司 | 一种深度学习编译器的高层中间表示转换方法及相关装置 |
CN114936015A (zh) * | 2022-06-02 | 2022-08-23 | 南京大学 | 一种基于硬件计算图的深度学习编译器 |
CN115145588A (zh) * | 2022-07-29 | 2022-10-04 | 北极雄芯信息科技(西安)有限公司 | 一种基于tvm的中间表示和数据生成方法 |
CN115659281A (zh) * | 2022-11-16 | 2023-01-31 | 之江实验室 | 一种自适应加速算子融合的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229972A (zh) * | 2017-03-10 | 2017-10-03 | 东莞理工学院 | 一种基于拉马克获得性遗传原理的全局优化、搜索和机器学习方法 |
US11928446B2 (en) * | 2021-11-11 | 2024-03-12 | Kwai Inc. | Multi-level intermediate representation decoder for heterogeneous platforms |
-
2023
- 2023-05-18 CN CN202310559970.4A patent/CN116301904B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764744A (zh) * | 2018-07-25 | 2020-02-07 | 赛灵思公司 | 用于神经网络计算的中间表示生成方法和装置 |
CN112598121A (zh) * | 2020-12-21 | 2021-04-02 | 北京时代民芯科技有限公司 | 一种面向深度学习编译器的高效算子优化方法 |
CN112579063A (zh) * | 2021-03-01 | 2021-03-30 | 之江实验室 | 一种用于深度学习编译器中探索优化空间的加速方法 |
CN113031966A (zh) * | 2021-05-20 | 2021-06-25 | 之江实验室 | 一种智能选择编译加速库的深度学习编译优化方法 |
CN113778654A (zh) * | 2021-09-27 | 2021-12-10 | 国网湖南省电力有限公司 | 基于粒子群优化算法的并行任务调度方法 |
CN113885845A (zh) * | 2021-09-30 | 2022-01-04 | 苏州浪潮智能科技有限公司 | 深度学习编译器的计算图的生成方法、系统、设备及介质 |
CN114138274A (zh) * | 2021-11-12 | 2022-03-04 | 广东浪潮智慧计算技术有限公司 | 一种深度学习编译器的高层中间表示转换方法及相关装置 |
CN114936015A (zh) * | 2022-06-02 | 2022-08-23 | 南京大学 | 一种基于硬件计算图的深度学习编译器 |
CN115145588A (zh) * | 2022-07-29 | 2022-10-04 | 北极雄芯信息科技(西安)有限公司 | 一种基于tvm的中间表示和数据生成方法 |
CN115659281A (zh) * | 2022-11-16 | 2023-01-31 | 之江实验室 | 一种自适应加速算子融合的方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于集成学习的编译优化参数选择方法研究;刘慧;姚金阳;赵荣彩;;信息工程大学学报(03);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116301904A (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116301904B (zh) | 一种用于深度学习编译器的算子优化加速方法及装置 | |
Stern et al. | Insertion transformer: Flexible sequence generation via insertion operations | |
US9928040B2 (en) | Source code generation, completion, checking, correction | |
US11494681B1 (en) | Quantum instruction compiler for optimizing hybrid algorithms | |
US20210089832A1 (en) | Loss Function Optimization Using Taylor Series Expansion | |
CN109583594B (zh) | 深度学习训练方法、装置、设备及可读存储介质 | |
CN115659281A (zh) | 一种自适应加速算子融合的方法及装置 | |
CN111666071A (zh) | 一种基于目标众核的对抗网络移植与优化的方法及系统 | |
Platt et al. | A systematic exploration of reservoir computing for forecasting complex spatiotemporal dynamics | |
Xie et al. | Graphiler: Optimizing graph neural networks with message passing data flow graph | |
CN113487029A (zh) | 一种可移植的神经网络分布式并行策略搜索方法 | |
Abdelaziz et al. | Learning to guide a saturation-based theorem prover | |
CN114663848A (zh) | 一种基于知识蒸馏的目标检测方法和装置 | |
CN111282272B (zh) | 信息处理方法、计算机可读介质及电子设备 | |
US20120251007A1 (en) | Robust Large-Scale Visual Codebook Construction | |
CN112116104A (zh) | 自动集成机器学习的方法、装置、介质及电子设备 | |
Zhao et al. | Moses: Efficient exploitation of cross-device transferable features for tensor program optimization | |
CN113407820B (zh) | 利用模型进行数据处理的方法及相关系统、存储介质 | |
CN110782016A (zh) | 用于优化神经网络架构搜索的方法和装置 | |
CN111090765A (zh) | 一种基于缺失多模态哈希的社交图像检索方法及系统 | |
CN110837567A (zh) | 实现知识图谱嵌入的方法和系统 | |
CN111340950B (zh) | 数字高程模型重建方法及装置 | |
Danisetty et al. | Adaptive consensus optimization method for gans | |
CN116208399A (zh) | 一种基于元图的网络恶意行为检测方法及设备 | |
JP7301801B2 (ja) | ハイパーパラメータチューニング方法、装置及びプログラム |
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 |