CN116301904A - 一种用于深度学习编译器的算子优化加速方法及装置 - Google Patents

一种用于深度学习编译器的算子优化加速方法及装置 Download PDF

Info

Publication number
CN116301904A
CN116301904A CN202310559970.4A CN202310559970A CN116301904A CN 116301904 A CN116301904 A CN 116301904A CN 202310559970 A CN202310559970 A CN 202310559970A CN 116301904 A CN116301904 A CN 116301904A
Authority
CN
China
Prior art keywords
operator
optimization
particle
search
algorithm
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
Application number
CN202310559970.4A
Other languages
English (en)
Other versions
CN116301904B (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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202310559970.4A priority Critical patent/CN116301904B/zh
Publication of CN116301904A publication Critical patent/CN116301904A/zh
Application granted granted Critical
Publication of CN116301904B publication Critical patent/CN116301904B/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/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Feedback Control In General (AREA)

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中粒子群优化算法是一种受鸟群觅食行为启发的元启发式算法,适用于算子优化的场景,用于加速算子优化速度;
进一步地,所述算子优化具体为:
假设待搜索的参数维度为
Figure SMS_2
维,则可行解的形式为/>
Figure SMS_4
,其中/>
Figure SMS_7
对应第/>
Figure SMS_3
维的一种配置,其取值范围为/>
Figure SMS_6
,且/>
Figure SMS_8
;搜索过程中用代价模型作为目标函数,记为/>
Figure SMS_9
,搜索的目标是找到使/>
Figure SMS_1
达到最大的最优解/>
Figure SMS_5
进一步地,所述S4粒子群优化算法的流程步骤如下:
S4.1,本轮搜索开始,初始化参数,包括迭代次数
Figure SMS_10
、粒子数量/>
Figure SMS_11
、参数维度/>
Figure SMS_12
,以及速度更新权重/>
Figure SMS_13
、/>
Figure SMS_14
和/>
Figure SMS_15
S4.2,第一轮搜索随机初始化粒子群位置z
Figure SMS_16
和速度/>
Figure SMS_17
,后续搜索以上一轮搜索结束时的状态作为初始状态;
S4.3,判断是否满足结束条件,如满足结束条件,跳至步骤S4.9,否则跳至步骤S4.4;
S4.4,基于代价模型
Figure SMS_18
计算每个粒子的目标函数;
S4.5,更新每个粒子的最优位置
Figure SMS_19
S4.6,更新全局最优位置
Figure SMS_20
S4.7,计算每个粒子的速度
Figure SMS_21
,并向下取整/>
Figure SMS_22
S4.8,根据公式
Figure SMS_23
计算每个粒子的新位置,若/>
Figure SMS_24
的某个维度超过了对应的取值范围,则将该维度重新初始化,保证更新后的/>
Figure SMS_25
在可行域内;更新位置后跳至步骤S4.3;
S4.9,输出每个粒子的历史最优位置
Figure SMS_26
S4.10,本轮搜索结束;
所述粒子群优化算法的相关符号如下:迭代次数为T;粒子数量为
Figure SMS_28
;第/>
Figure SMS_30
轮迭代的编号为/>
Figure SMS_32
的粒子位置为/>
Figure SMS_29
,速度为/>
Figure SMS_31
;编号为/>
Figure SMS_33
的粒子已搜索到的最优位置为/>
Figure SMS_34
,全局最优位置为/>
Figure SMS_27
具体地,所述S4.7计算每个粒子的速度
Figure SMS_35
的数学表达式为:
Figure SMS_36
其中,
Figure SMS_37
、/>
Figure SMS_38
和/>
Figure SMS_39
为速度更新权重;/>
Figure SMS_40
和/>
Figure SMS_41
表示取值范围为/>
Figure SMS_42
的随机数。
具体地,所述候选集采样,具体为,在每轮搜索中,粒子群优化算法会输出一批候选最优解,采用了一种基于密度聚类的算法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也有更好的性能。
所述粒子群优化算法:粒子群优化算法是一种受鸟群觅食行为启发的元启发式算法,具有参数少、收敛速度快等优点,尤其在高维问题和大搜索空间上被实践证明有良好的表现,适合算子优化的场景。基础的粒子群优化算法仅支持连续空间的优化,而算子优化场景是离散优化问题,需要进行调整。
算子优化,即假设待搜索的参数维度为
Figure SMS_45
维,则可行解的形式为
Figure SMS_48
,其中/>
Figure SMS_50
对应第/>
Figure SMS_44
维的一种配置,其取值范围为/>
Figure SMS_47
,且/>
Figure SMS_49
。搜索过程中用代价模型作为目标函数,记为/>
Figure SMS_51
,搜索的目标是找到使/>
Figure SMS_43
达到最大的最优解/>
Figure SMS_46
其粒子群优化算法的流程步骤描述如下:
S1,本轮搜索开始,初始化参数,包括迭代次数
Figure SMS_52
、粒子数量/>
Figure SMS_53
、参数维度/>
Figure SMS_54
,以及速度更新权重/>
Figure SMS_55
、/>
Figure SMS_56
和/>
Figure SMS_57
等;
S2,第一轮搜索随机初始化粒子群位置
Figure SMS_58
和速度/>
Figure SMS_59
,后续搜索以上一轮搜索结束时的状态作为初始状态;
S3,判断是否满足结束条件,如满足结束条件,跳至步骤S9,否则跳至步骤S4;
S4,基于代价模型
Figure SMS_60
计算每个粒子的目标函数;
S5,更新每个粒子的最优位置
Figure SMS_61
S6,更新全局最优位置
Figure SMS_62
S7,根据公式
Figure SMS_63
计算每个粒子的速度,并向下取整
Figure SMS_64
S8,根据公式
Figure SMS_65
计算每个粒子的新位置,若
Figure SMS_66
的某个维度超过了对应的取值范围,则将该维度重新初始化,保证更新后的/>
Figure SMS_67
在可行域内。更新位置后跳至步骤S3;
S9,输出每个粒子的历史最优位置
Figure SMS_68
S10,本轮搜索结束。
所述粒子群优化算法的相关符号如下:迭代次数为T;粒子数量为
Figure SMS_70
;第/>
Figure SMS_74
轮迭代的编号为/>
Figure SMS_77
的粒子位置为/>
Figure SMS_72
,速度为/>
Figure SMS_75
;编号为/>
Figure SMS_79
的粒子已搜索到的最优位置为/>
Figure SMS_82
,全局最优位置为/>
Figure SMS_69
;速度更新权重为/>
Figure SMS_73
、/>
Figure SMS_78
和/>
Figure SMS_81
;/>
Figure SMS_71
和/>
Figure SMS_76
表示取值范围为/>
Figure SMS_80
的随机数。
本发明采用的粒子群优化算法,可以使不同候选解之间实现更充分的信息共享,从而提升搜索效率,减少搜索时间。
所述候选解采样:每轮搜索中,粒子群优化算法会输出一批候选最优解,若全部进行代码生成并在硬件上实测效率会很低。考虑到部分候选解在搜索空间中是接近的,硬件实测的运行时间也会比较接近,因此本发明采用了一种基于密度聚类的算法DBSACN,对每轮搜索后的候选解进行聚类。对于聚类后的每一个类进行随机采样,得到需要在硬件上实测的候选解。通过聚类和采样,可以有效减少实测的候选解数量,从而减少时间开销。
实施例
如图1的算子优化示意图和图3所示的算子优化流程图:
所述算子优化是个迭代过程,在每轮迭代中,先利用粒子群优化算法对搜索空间进行搜索,搜索过程中采用LightGBM作为代价模型对样本点的运行时间进行评估。搜索完成后输出一批候选解,采用DBSCAN进行聚类。对于聚类得到的每个类,再进行随机采样。通过上述方法得到需要硬件实测的候选解,它是原始候选解的子集。针对需要实测的候选解进行代码生成,并在硬件上运行得到真实的运行时间。将实测结果构造数据集,用来对LightGBM模型进行更新。至此完成了算子优化的一轮完整迭代。迭代过程持续进行,直到次数用尽后,整个算子优化过程结束,输出经过实测的运行时间最短的算子作为最优算子。
深度学习编译器导入模型后经过图优化并转化为低级IR,假设待优化的算子为矩阵乘算子。
矩阵乘算子可采用的优化方式包括循环展开、平铺、并行化等。以平铺为例,它是指对循环进行拆分,比如原循环范围为512,将其平铺为3个维度,即拆分为3个循环,那么(128*2*2)就是其中一种可行的拆分方法,而这种拆分方法一共有55种。其他变换也有相似的性质。假设示例的矩阵乘算子采用2种变换,每种变换分别对应4、55种可能性,那么搜索空间的大小为220 (220=4*55),对应到优化问题的可行域即参数维度为2维,也即可行解的形式为
Figure SMS_83
,其中/>
Figure SMS_84
,/>
Figure SMS_85
,且/>
Figure SMS_86
和/>
Figure SMS_87
皆为整数。
如图2所示的粒子群优化算法流程图,下面描述粒子群优化算法的搜索过程:
步骤S1对各参数进行初始化,其中速度更新权重
Figure SMS_88
、/>
Figure SMS_89
和/>
Figure SMS_90
表示速度的三个组成成分的相对重要性,比如取/>
Figure SMS_91
,/>
Figure SMS_92
,/>
Figure SMS_93
步骤S2对粒子群的位置和速度进行初始化。首轮迭代中,位置可以随机生成,速度可以初始化为0,比如针对示例任务,编号
Figure SMS_94
的粒子的初始位置/>
Figure SMS_95
,初始速度
Figure SMS_96
。后续迭代中,以上一轮结束时的状态作为初始状态进行初始化;
步骤S3中的结束条件可以为迭代次数用尽或者早停,其中早停指全局最优位置
Figure SMS_97
多轮未更新就结束搜索;
步骤S4采用基于LightGBM的代价模型
Figure SMS_98
对所有粒子进行评估;
步骤S5对每个粒子更新历史最优位置,即比较
Figure SMS_99
对应的目标函数值和步骤S4评估的目标函数值,若后者更优,则将/>
Figure SMS_100
更新为粒子当前位置;
步骤S6更新全局最优位置,即逐个比较所有粒子最优位置
Figure SMS_101
对应的目标函数值和全局最优位置/>
Figure SMS_102
对应的目标函数值,若粒子位置更优,则更新/>
Figure SMS_103
为该粒子的最优位置;
步骤S7更新粒子速度,第一轮迭代中,对于编号
Figure SMS_104
的粒子,假设/>
Figure SMS_105
和/>
Figure SMS_106
生成的随机数分别为0.4和0.5,/>
Figure SMS_107
,/>
Figure SMS_108
,则
Figure SMS_109
,向下取整可得
Figure SMS_110
步骤S8更新粒子位置,对于示例粒子,
Figure SMS_111
,满足取值范围要求,若超出取值范围,则需要重新初始化。
如图4所示,是根据一示例性实施例示出的一种用于深度学习编译器的算子优化加速装置,该装置包括以下模块:
导入模块:将神经网络模型导入为计算图形式的高级IR;
优化模块:对计算图形式的高级IR进行图优化;
转化模块:将高级IR转化为低级IR,并为每个算子定义搜索空间;
搜索模块:采用LightGBM作为代价模型,粒子群优化算法作为搜索算法并结合候选集采样对算子的搜索空间进行搜索;
生成模块:选择搜索到的最优算子进行代码生成,生成目标硬件的可执行代码。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
如图5所示,相应的,本申请还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的一种用于深度学习编译器的算子优化加速方法。实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
相应的,本申请还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述的一种用于深度学习编译器的算子优化加速方法。所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。

Claims (10)

1.一种用于深度学习编译器的算子优化加速方法,其特征在于,包括如下步骤:
S1,将神经网络模型导入为计算图形式的高级IR;
S2,对计算图形式的高级IR进行图优化;
S3,将高级IR转化为低级IR,并为每个算子定义搜索空间;
S4,采用LightGBM作为代价模型,粒子群优化算法作为搜索算法并结合候选集采样对算子的搜索空间进行搜索;
S5,选择搜索到的最优算子进行代码生成,生成目标硬件的可执行代码。
2.根据权利要求1所述的一种用于深度学习编译器的算子优化加速方法,其特征在于,所述S4中LightGBM是一种梯度提升树算法。
3.根据权利要求1所述的一种用于深度学习编译器的算子优化加速方法,其特征在于,所述S4中粒子群优化算法是一种受鸟群觅食行为启发的元启发式算法,适用于算子优化的场景,用于加速算子优化速度。
4.根据权利要求3所述的一种用于深度学习编译器的算子优化加速方法,其特征在于,所述算子优化具体为:
假设待搜索的参数维度为
Figure QLYQS_3
维,则可行解的形式为/>
Figure QLYQS_4
,其中/>
Figure QLYQS_7
对应第/>
Figure QLYQS_2
维的一种配置,其取值范围为/>
Figure QLYQS_6
,且/>
Figure QLYQS_8
;搜索过程中用代价模型作为目标函数,记为/>
Figure QLYQS_9
,搜索的目标是找到使/>
Figure QLYQS_1
达到最大的最优解/>
Figure QLYQS_5
5.根据权利要求1所述的一种用于深度学习编译器的算子优化加速方法,其特征在于,所述S4粒子群优化算法的流程步骤如下:
S4.1,本轮搜索开始,初始化参数,包括迭代次数
Figure QLYQS_10
、粒子数量/>
Figure QLYQS_11
、参数维度/>
Figure QLYQS_12
,以及速度更新权重/>
Figure QLYQS_13
、/>
Figure QLYQS_14
和/>
Figure QLYQS_15
S4.2,第一轮搜索随机初始化粒子群位置
Figure QLYQS_16
和速度/>
Figure QLYQS_17
,后续搜索以上一轮搜索结束时的状态作为初始状态;
S4.3,判断是否满足结束条件,如满足结束条件,跳至步骤S4.9,否则跳至步骤S4.4;
S4.4,基于代价模型
Figure QLYQS_18
计算每个粒子的目标函数;
S4.5,更新每个粒子的最优位置
Figure QLYQS_19
S4.6,更新全局最优位置
Figure QLYQS_20
S4.7,计算每个粒子的速度
Figure QLYQS_21
,并向下取整/>
Figure QLYQS_22
S4.8,根据公式
Figure QLYQS_23
计算每个粒子的新位置,若/>
Figure QLYQS_24
的某个维度超过了对应的取值范围,则将该维度重新初始化,保证更新后的/>
Figure QLYQS_25
在可行域内;更新位置后跳至步骤S4.3;
S4.9,输出每个粒子的历史最优位置
Figure QLYQS_26
S4.10,本轮搜索结束;
所述粒子群优化算法的相关符号如下:迭代次数为T;粒子数量为
Figure QLYQS_28
;第/>
Figure QLYQS_30
轮迭代的编号为/>
Figure QLYQS_32
的粒子位置为/>
Figure QLYQS_29
,速度为/>
Figure QLYQS_31
;编号为/>
Figure QLYQS_33
的粒子已搜索到的最优位置为/>
Figure QLYQS_34
,全局最优位置为/>
Figure QLYQS_27
6.根据权利要求5所述的一种用于深度学习编译器的算子优化加速方法,其特征在于,所述S4.7计算每个粒子的速度
Figure QLYQS_35
的数学表达式为:
Figure QLYQS_36
其中,
Figure QLYQS_37
、/>
Figure QLYQS_38
和/>
Figure QLYQS_39
为速度更新权重;/>
Figure QLYQS_40
和/>
Figure QLYQS_41
表示取值范围为/>
Figure QLYQS_42
的随机数。
7.根据权利要求1所述的一种用于深度学习编译器的算子优化加速方法,其特征在于,所述候选集采样,具体为,在每轮搜索中,粒子群优化算法会输出一批候选最优解,采用了一种基于密度聚类的算法DBSACN,对每轮搜索后的候选解进行聚类,对于聚类后的每一个类进行随机采样,得到需要在硬件上待实测的候选解。
8.一种用于深度学习编译器的算子优化加速装置,其特征在于,该装置包括以下模块:
导入模块:将神经网络模型导入为计算图形式的高级IR;
优化模块:对计算图形式的高级IR进行图优化;
转化模块:将高级IR转化为低级IR,并为每个算子定义搜索空间;
搜索模块:采用LightGBM作为代价模型,粒子群优化算法作为搜索算法并结合候选集采样对算子的搜索空间进行搜索;
生成模块:选择搜索到的最优算子进行代码生成,生成目标硬件的可执行代码。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-7中任一项所述方法的步骤。
CN202310559970.4A 2023-05-18 2023-05-18 一种用于深度学习编译器的算子优化加速方法及装置 Active CN116301904B (zh)

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 true CN116301904A (zh) 2023-06-23
CN116301904B 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116663618A (zh) * 2023-07-28 2023-08-29 之江实验室 一种算子优化方法、装置、存储介质及电子设备
CN116991428A (zh) * 2023-09-28 2023-11-03 飞腾信息技术有限公司 一种编译方法、装置、编译器、计算设备及存储介质
CN117075918A (zh) * 2023-10-13 2023-11-17 之江实验室 一种模型部署方法、装置、存储介质及电子设备
CN117950645A (zh) * 2024-03-25 2024-04-30 之江实验室 一种基于硬件特征的算子调度方案自动搜索方法与系统

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180260714A1 (en) * 2017-03-10 2018-09-13 Yun Li Global optimization, search and machine learning method based on the lamarckian principle of inheritance of acquired characteristics
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 之江实验室 一种自适应加速算子融合的方法及装置
US20230143291A1 (en) * 2021-11-11 2023-05-11 Kwai Inc. Multi-level intermediate representation decoder for heterogeneous platforms

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180260714A1 (en) * 2017-03-10 2018-09-13 Yun Li Global optimization, search and machine learning method based on the lamarckian principle of inheritance of acquired characteristics
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 苏州浪潮智能科技有限公司 深度学习编译器的计算图的生成方法、系统、设备及介质
US20230143291A1 (en) * 2021-11-11 2023-05-11 Kwai Inc. Multi-level intermediate representation decoder for heterogeneous platforms
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 (3)

* Cited by examiner, † Cited by third party
Title
刘慧;姚金阳;赵荣彩;: "基于集成学习的编译优化参数选择方法研究", 信息工程大学学报, no. 03 *
刘慧;赵荣彩;王琦;: "监督学习模型指导的函数级编译优化参数选择方法研究", 计算机工程与科学, no. 06 *
尹呈;郭观七;李文彬;严太山;: "基于自适应学习的多目标粒子群优化算法", 计算机应用研究, no. 09 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116663618A (zh) * 2023-07-28 2023-08-29 之江实验室 一种算子优化方法、装置、存储介质及电子设备
CN116663618B (zh) * 2023-07-28 2023-12-05 之江实验室 一种算子优化方法、装置、存储介质及电子设备
CN116991428A (zh) * 2023-09-28 2023-11-03 飞腾信息技术有限公司 一种编译方法、装置、编译器、计算设备及存储介质
CN116991428B (zh) * 2023-09-28 2023-12-15 飞腾信息技术有限公司 一种编译方法、装置、编译器、计算设备及存储介质
CN117075918A (zh) * 2023-10-13 2023-11-17 之江实验室 一种模型部署方法、装置、存储介质及电子设备
CN117075918B (zh) * 2023-10-13 2024-01-09 之江实验室 一种模型部署方法、装置、存储介质及电子设备
CN117950645A (zh) * 2024-03-25 2024-04-30 之江实验室 一种基于硬件特征的算子调度方案自动搜索方法与系统

Also Published As

Publication number Publication date
CN116301904B (zh) 2023-08-22

Similar Documents

Publication Publication Date Title
CN116301904B (zh) 一种用于深度学习编译器的算子优化加速方法及装置
US12014257B2 (en) Domain specific language for generation of recurrent neural network architectures
WO2019216938A1 (en) Application development platform and software development kits that provide comprehensive machine learning services
CN112308210A (zh) 基于神经网络的跨架构二进制函数相似性检测方法及系统
CN111666071B (zh) 一种基于目标众核的对抗网络移植与优化的方法及系统
CN115659281A (zh) 一种自适应加速算子融合的方法及装置
CN112116104B (zh) 自动集成机器学习的方法、装置、介质及电子设备
Xie et al. Graphiler: Optimizing graph neural networks with message passing data flow graph
Ahmad et al. Leveraging parallel data processing frameworks with verified lifting
CN113487029A (zh) 一种可移植的神经网络分布式并行策略搜索方法
Zhao et al. Moses: Efficient exploitation of cross-device transferable features for tensor program optimization
Sun et al. A stagewise hyperparameter scheduler to improve generalization
CN113168552A (zh) 人工智能应用开发系统、计算机设备及存储介质
KR102132450B1 (ko) 기계 학습을 이용한 자바스크립트 해석 엔진 테스트 방법 및 장치
Deshpande et al. Learning probabilistic relational dynamics for multiple tasks
Price et al. Improving auto-tuning convergence times with dynamically generated predictive performance models
WO2022105348A1 (zh) 神经网络的训练方法和装置
CN106126311B (zh) 一种基于代数演算的中间代码优化方法
CN112633516B (zh) 性能预测和机器学习编译优化方法及装置
JP7301801B2 (ja) ハイパーパラメータチューニング方法、装置及びプログラム
Hakimi et al. A Hybrid Machine Learning Model for Code Optimization
Almohammed et al. Programs features clustering to find optimization sequence using genetic algorithm
Lang Enhancing R with advanced compilation tools and methods
CN108520011B (zh) 一种确定任务的执行方案的方法及装置
CN116226778B (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