CN117009092B - 基于多重多臂老虎机的编译时间资源动态分配方法及系统 - Google Patents
基于多重多臂老虎机的编译时间资源动态分配方法及系统 Download PDFInfo
- Publication number
- CN117009092B CN117009092B CN202311278281.2A CN202311278281A CN117009092B CN 117009092 B CN117009092 B CN 117009092B CN 202311278281 A CN202311278281 A CN 202311278281A CN 117009092 B CN117009092 B CN 117009092B
- Authority
- CN
- China
- Prior art keywords
- subgraph
- operator
- calculation
- compiling
- time
- 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 68
- 238000004364 calculation method Methods 0.000 claims abstract description 109
- 238000013136 deep learning model Methods 0.000 claims abstract description 31
- 230000002787 reinforcement Effects 0.000 claims abstract description 18
- 238000005516 engineering process Methods 0.000 claims abstract description 17
- 230000011218 segmentation Effects 0.000 claims abstract description 10
- 238000000638 solvent extraction Methods 0.000 claims abstract description 5
- 238000005457 optimization Methods 0.000 claims description 48
- 238000013135 deep learning Methods 0.000 claims description 22
- 238000004422 calculation algorithm Methods 0.000 claims description 13
- 238000005070 sampling Methods 0.000 claims description 13
- 238000012549 training Methods 0.000 claims description 8
- 238000007667 floating Methods 0.000 claims description 4
- 230000009191 jumping Effects 0.000 claims description 4
- 238000010801 machine learning Methods 0.000 claims description 3
- 238000013468 resource allocation Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000002790 cross-validation Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 235000017166 Bambusa arundinacea Nutrition 0.000 description 1
- 235000017491 Bambusa tulda Nutrition 0.000 description 1
- 241001330002 Bambuseae Species 0.000 description 1
- 235000015334 Phyllostachys viridis Nutrition 0.000 description 1
- 239000011425 bamboo Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- 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
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/092—Reinforcement learning
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
基于多重多臂老虎机的编译时间资源动态分配方法及系统,其方法包括:步骤1,获取待编译的深度学习模型,对模型进行计算图级别优化,并进行图切分;步骤2,分配深度学习模型整体编译时间,并对时间资源进行分块;步骤3,遍历多个计算子图或算子,对当前某个计算子图或算子采集其历史编译特征信息;步骤4,设置分配决策模型参数进行训练或更新,并对当前计算子图或算子的潜力进行预测;步骤5,采用强化学习技术选择当前最具潜力的计算子图或算子;步骤6,为最具优化潜力的计算子图或算子分配相应的时间资源,并进行自动调优,同时收集当前计算子图或算子的实时编译特征信息;步骤7,返回步骤2,重新开始下一个时间块资源的动态分配。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及深度学习编译技术领域,具体涉及基于多重多臂老虎机的编译时间资源动态分配方法及系统。
背景技术
近些年,深度神经网络已经在图像分类、目标检测、自然语言处理、自动驾驶等众多场景下取得了广泛且成功的应用。为了降低深度学习算法开发门槛及编程复杂度,国内外科技公司已经发展出众多的深度学习框架,如 PaddlePaddle、TensorFlow、PyTorch、MXNet 等。另一方面,在摩尔定律发展逐渐放缓的背景下,为应对海量的数据计算并支撑深度学习算法高效地训练推理,如GPU、FPGA和特殊设计的人工智能芯片也如雨后春笋般得以开发应用,成为了当前深度学习负载的主要算力。
为了兼容应用层众多深度学习框架与硬件层多种硬件加速平台,并对深度学习负载做进一步的优化加速,需要领域处理器架构专用的编译器,因此,深度学习编译器应运而生。目前深度学习编译器的通用设计架构主要包括编译前端和编译后端,深度学习框架层一般作为编译前端,将神经网络表示为计算图的高层中间表示,并针对计算图进行硬件体系结构无关的图级别优化,将计算图切分为多个计算子图或算子。编译后端主要将优化后的高层中间表示(计算子图或算子)转化为底层中间表示,并针对特定硬件加速平台进行一些特定的算子级别优化,并编译到对应的硬件指令,最后调用各硬件设备执行计算。
但是,现有深度学习编译技术大多采用静态资源调度方案,时间资源预先均等分配好,对多个计算子图进行顺序编译,集中在单个计算子图或算子的编译优化,从而导致深度学习模型整体编译收敛缓慢或调优时间过长,进而影响深度学习负载编译效率。因此,本领域技术人员亟待解决上述技术问题。
发明内容
本发明要克服现有技术的上述缺点,提供基于多重多臂老虎机的编译时间资源动态分配方法及系统。本发明具有以下技术效果:对深度学习模型中多个计算子图或算子的编译顺序进行动态优化,基于编译实时特征信息训练分配决策模型,挑选出最具优化潜力的计算子图或算子,并分配相应的时间资源进行张量调优。以此种时间资源动态分配的方式进行编译,便于对深度学习模型编译收敛过程进行精准调控,有效提升了编译效率。
为达此目的,本发明采用以下技术方案:
基于多重多臂老虎机的编译时间资源动态分配方法,包括:
步骤S1,获取待编译的深度学习模型,对待编译的深度学习模型进行计算图级别优化,并进行图切分,获得多个计算子图或算子;
进一步,步骤S1中所述的获得多个计算子图或算子是指去重后的计算子图或算子,同时保留其对应的数量。
步骤S2,为待编译的深度学习模型分配整体编译时间,并对时间资源进行分块,每块时间资源相同,在每块时间资源分配前,进行以下步骤;
步骤S3,顺序遍历多个计算子图或算子,对当前计算子图或算子采集其历史编译特征信息;
进一步,步骤S3中所述的历史编译特征信息包括计算子图或算子的相关特征,主要分为类别型特征和数值型特征,如:浮点型计算次数、整型计算次数、中间表示IR特征、算术强度曲线特征、历史调优结果特征等等。
步骤S4,基于采集到的历史编译特征信息,设置分配决策模型参数进行训练或更新分配决策模型,并利用训练好的分配决策模型对当前计算子图或算子的潜力进行预测;
进一步,步骤S4所述的设置分配决策模型参数进行训练或更新,是指采用机器学习或深度学习算法对采集到的编译特征信息进行回归建模,对当前计算子图或算子的优化潜力进行预测打分。
步骤S5,根据步骤S3和步骤S4遍历过程中,分配决策模型预测的潜力值,采用强化学习技术选择当前最具潜力的计算子图或算子;
进一步,步骤S5中采用强化学习技术选择当前最具潜力的计算子图或算子,是指采用多重多臂老虎机进行问题建模,利用汤普森采样或上置信界算法等,有效地平衡探索和利用的关系,加速编译收敛速度。
步骤S6,为最具优化潜力的计算子图或算子分配相应的时间资源,并进行该计算子图的张量程序自动调优,同时记录当前计算子图或算子的实时编译特征信息;
步骤S7,返回步骤S2,重新开始下一个时间块资源的动态分配,同时,需要判断当前计算子图或算子的性能是否到达饱和,若饱和则从步骤S3的遍历列表中剔除。
进一步,步骤S7中性能是否到达饱和,是指算子的优化潜力较低,已经到达优化瓶颈。具体可以根据步骤S4中分配决策模型阈值判断或单位时间内自动调优结果稳定来判定。
本发明的第二个方面涉及基于多重多臂老虎机的编译时间资源动态分配系统,包括:
计算子图或算子获取模块,用于取待编译的深度学习模型,对待编译的深度学习模型进行计算图级别优化,并进行图切分,获得多个计算子图或算子;
深度学习模型整体编译时间分配模块,用于为待编译的深度学习模型分配整体编译时间,并对时间资源进行分块,每块时间资源相同,在每块时间资源分配前,进行以下模块的操作;
历史编译特征信息采集模块,顺序遍历多个计算子图或算子,对当前计算子图或算子采集其历史编译特征信息;
当前计算子图或算子的潜力预测模块,基于采集到历史的编译特征信息,设置分配决策模型参数进行训练或更新,并利用训练好的分配决策模型对当前计算子图或算子的潜力进行预测;
当前最具潜力的计算子图或算子选择模块,根据历史编译特征信息采集模块和当前计算子图或算子的潜力预测模块遍历过程中,模型预测的潜力值,采用强化学习技术选择当前最具潜力的计算子图或算子;
时间资源分配模块,为最具优化潜力的计算子图或算子分配相应的时间资源,并进行自动调优,同时记录当前计算子图或算子的实时编译特征信息;
当前计算子图或算子的性能是否到达饱和判断模块,返回深度学习模型整体编译时间分配模块,重新开始下一个时间块资源的动态分配,同时,需要判断当前计算子图或算子的性能是否到达饱和,若饱和则从历史编译特征信息采集模块的遍历列表中剔除。
本发明的第三个方面涉及一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现本发明的基于多重多臂老虎机的编译时间资源动态分配方法。
本发明的第四个方面涉及一种基于多重多臂老虎机的编译时间资源动态分配装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现本发明的基于多重多臂老虎机的编译时间资源动态分配方法。
本发明的工作原理:深度学习负载的计算图经过图切分后,各个计算子图的优化潜力是未知的,我们倾向于给潜力大的计算子图更多的时间资源用于编译优化。为了预测计算子图的优化潜力,我们采用分配决策模型来训练学习,但在编译过程的初期,预测结果存在一定的不确定性。因此,将计算子图选择问题建模为多重多臂老虎机决策问题,兼顾分配决策模型的预测结果(利用部分)和随机性(探索部分)。本发明的工作原理可以概况为以下几个步骤: 1)将时间资源均分为若干份,并进行相同次数的选择;2)每次选择前,根据分配决策模型对各个计算子图的优化潜力进行预测;3)分配决策模型预测结果并非绝对正确(但随着收集的编译数据越多越精确),不能仅仅依赖预测结果,因此我们引入多重多臂老虎机兼顾利用和探索,进行概率决策;4)为选择出的计算子图分配时间资源,并进行张量自动编译;5)收集该计算子图的编译数据,更新分配决策模型;6)跳至步骤2),直到时间资源用完。
本发明的创新点是:1)不同于现有深度学习编译器的时间资源静态分配,本发明采用动态分配策略;2)将动态分配问题建模为多重多臂老虎机决策问题,兼顾探索和利用,高效分配;3)采用机器学习技术,根据计算子图编译过程数据或特征等,训练分配决策模型,用于计算子图的潜力预测。
与现有技术相比,本发明具有以下有益效果:本发明通过对多算子深度学习模型编译形式化为多重多臂老虎机问题,利用强化学习技术建模,对深度学习模型中的计算子图或算子的编译顺序进行动态优化,同时基于编译实时特征信息训练分配决策模型,挑选出最具优化潜力的计算子图或算子,然后分配相应的时间资源进行张量自动调优,便于对深度学习模型编译收敛过程进行精准调控,有效提升了编译效率。
附图说明
图1是本发明一种基于多重多臂老虎机的编译时间资源动态分配方法的流程图。
图2是本发明所编译的ResNet-18的神经网络架构图。
图3是本发明计算图图切分示意图。
图4是本发明时间资源动态分配与现有静态分配对比图。
图5是Beta分布概率密度函数图。
图6是本发明的系统结构图。
具体实施方式
本发明提出基于多重多臂老虎机的编译时间资源动态分配方法及系统,为使本发明的目的、技术方案和优点更加清楚、明确,以下对本发明作进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例 1
请参阅图1,图1为本发明提供的基于多重多臂老虎机的编译时间资源动态分配方法的流程图,如图所示。
以经典图像分类算法ResNet-18为例介绍一种基于多重多臂老虎机的编译时间资源动态分配方法流程,其网络结构如图2所示,编译优化流程包括以下步骤:
步骤S1,获取待编译的深度学习模型,对模型进行计算图级别优化,并进行图切分,获得多个计算子图或算子;
使用TensorFlow或PyTorch训练ResNet-18模型并保存为ONNX格式,或者直接在网络上下载已经训练好的ONNX格式的模型。将训练好的模型导入深度学习编译器,转换为编译器的高层次中间表示,即图IR,并进行算术表达式化简、公共子表达式消除、常数传播、算子融合、子图替换等等计算图级别优化。最后对计算图进行切分,获得K个去重的计算子图或算子,对应的在ResNet-18中的个数权重为/>,算子是节点个数为1的特殊计算子图。如图3所示,是计算图图切分的示意图,将原始计算图切分3个计算子图,每个计算子图将进行单独编译优化。
步骤S2,分配深度学习模型整体编译时间,并对时间资源进行分块,每块时间资源相同,在每块时间资源分配前,迭代进行后续步骤;
为ResNet-18编译分配整体编译时间资源总共为T,将其均匀切分为L个时隙,时隙列表为。依据该时隙列表,对ResNet-18进行迭代编译,每个时隙根据探索和利用的关系动态分配时间资源给到相应的潜力计算子图进行自动调优。如图4所示,时间资源动态分配方案与现有静态分配方案的对比图,本发明能够根据当前实时编译结果动态选择潜力算子进行自动调优,而现有编译技术只能按照既定调度方案顺序编译,整体编译收敛速度较慢,相同编译效果条件下,编译优化耗时过长。
步骤S3,遍历多个计算子图或算子,对当前某个计算子图或算子采集其历史编译特征信息;
遍历ResNet-18模型的计算子图列表,针对每个计算子图收集其历史编译特征信息,从特征类别上可分为类别型特征和数值型特征,包括计算子图的浮点型计算次数、整型计算次数、中间表示IR相关特征、算术强度曲线特征、历史调优结果特征等等。其中算术强度曲线特征是在算术强度曲线上采样固定数量的数值点,具体采样数量根据数据集上交叉验证结果确定。历史调优结果特征是指该计算子图前几轮迭代过程中的编译优化延时结果,选择最近几步结果作为特征,具体步数可根据数据集上交叉验证结果确定。
步骤S4,基于采集到历史的编译特征信息,设置分配决策模型参数进行训练或更新,并利用训练好的分配决策模型对当前计算子图或算子的潜力进行预测;
采用XGBoost算法模型对计算子图历史调优结果进行回归建模,将采集到的历史编译特征信息构建为模型输入形式,记其历史序列特征为,其中x是步骤S3中采集的特征构成的特征向量,对应的标签为/>。根据训练好的分配决策模型,对当前t时刻该计算子图的优化结果进行预测,记为/>,则计算该算子的优化潜力为。/>是为了建模方便,对差值做的某些数值缩放或映射操作,可根据交叉实验确定。
步骤S5,根据步骤S3和步骤S4遍历过程中,分配决策模型预测的潜力值,采用强化学习技术选择当前最具优化潜力的计算子图或算子;
步骤S3和S4得出的计算子图优化潜力是依据历史数据回归预测得到的,在编译的初期可能会存在较大的误差,单纯依赖该潜力值很容易陷入局部最优解。因此,采用强化学习技术在每次选择时引入探索策略,使得选择过程具有一定的不确定性,保证有跳出局部最优解的可能性。在这个问题中,需要平衡利用和探索之间的相互关系,同时还要考虑每个计算子图有其对应的权重,因此将其建模为多重多臂老虎机问题,形式化为下式:
。
其中,将可用的计算子图集合视为摇臂的集合,/>是计算子图选择策略。在每个时隙t开始的时候,选择K个计算子图,用/>表示。在选定的计算子图上进行自动调优。在时隙t结束的时候,统计各个计算子图自动调优的结果,用/>表示。若选定该计算子图,则/>;否则,/>;/>表示计算子图自动调优结束后的奖励,为该计算子图的权重,表示在深度学习负载中该计算子图重复次数。
因此,对于一个给定策略,遗憾定义为/>的奖励与最优的奖励之间的差值,即为:
其中,是最优的计算子图选择策略,/>是计算子图自动调优结果的分布。采用强化学习中汤普森采样方法对上述问题进行求解,假设各个计算子图被选中概率服从Beta分布,如图5所示例子。汤普森采样方法流程如下:
步骤S51:取出每个候选计算子图对应的参数a和b;
步骤S52:为每个候选计算子图用a和b作为参数,用Beta分布产生一个随机数;
步骤S53:按照随机数排序,输出最大值对应的候选计算子图;
步骤S54:根据选择的计算子图自动调优结果,对参数a和b进行更新;
步骤S6,为最具优化潜力的计算子图或算子分配相应的时间资源,并进行自动调优,同时记录当前计算子图或算子的实时编译特征信息;
步骤S7,返回步骤S2,重新开始下一个时间块资源的动态分配,同时,需要判断当前计算子图或算子的性能是否到达饱和,若饱和则从步骤S3的遍历列表中剔除。
进一步,步骤S7中性能是否到达饱和,是指算子的优化潜力较低,已经到达优化瓶颈。具体可以根据步骤S4中优化潜力预测模型阈值判断或单位时间内自动调优结果稳定来判定。
实施例 2
如图6,本实施例涉及基于多重多臂老虎机的编译时间资源动态分配系统,用于实现实施例1的一种基于多重多臂老虎机的编译时间资源动态分配方法包括:
计算子图或算子获取模块,用于取待编译的深度学习模型,对模型进行计算图级别优化,并进行图切分,获得多个计算子图或算子;
深度学习模型整体编译时间分配模块,用于分配深度学习模型整体编译时间,并对时间资源进行分块,每块时间资源相同,在每块时间资源分配前,进行以下模块的操作;
历史编译特征信息采集模块,顺序遍历多个计算子图或算子,对当前某个计算子图或算子采集其历史编译特征信息;
当前计算子图或算子的潜力预测模块,基于采集到历史的编译特征信息,设置分配决策模型参数进行训练或更新,并利用训练好的分配决策模型对当前计算子图或算子的潜力进行预测;
当前最具潜力的计算子图或算子选择模块,根据历史编译特征信息采集模块和当前计算子图或算子的潜力预测模块遍历过程中,分配决策模型预测的潜力值,采用强化学习技术选择当前最具潜力的计算子图或算子;
时间资源分配模块,为最具优化潜力的计算子图或算子分配相应的时间资源,并进行自动调优,同时记录当前计算子图或算子的实时编译特征信息;
当前计算子图或算子的性能是否到达饱和判断模块,返回深度学习模型整体编译时间分配模块,重新开始下一个时间块资源的动态分配,同时,需要判断当前计算子图或算子的性能是否到达饱和,若饱和则从历史编译特征信息采集模块的遍历列表中剔除。
实施例3
本实施例涉及基于多重多臂老虎机的编译时间资源动态分配装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现实施例1的一种基于多重多臂老虎机的编译时间资源动态分配方法。
实施例4
本实施例涉及一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现实施例1的基于多重多臂老虎机的编译时间资源动态分配方法。
实施例 5
应用基于多重多臂老虎机的编译时间资源动态分配方法的智能门锁人脸识别方法,人脸识别模型采用ResNet-50深度卷积神经网络。
步骤S0,收集人脸图片构建人脸识别数据集,在服务器端完成对ResNet-50人脸识别模型进行训练;
步骤S1,获取训练好的ResNet-50人脸识别模型,对人脸识别模型进行计算图级别优化,并进行图切分,获得多个计算子图或算子;
将训练好的ResNet-50模型导入深度学习编译器,转换为编译器的高层次中间表示,即图IR,并进行算术表达式化简、公共子表达式消除、常数传播、算子融合、子图替换等等计算图级别优化。最后对计算图进行切分,获得K个去重的计算子图或算子,对应的在ResNet-50中的个数权重为/>,算子是节点个数为1的特殊计算子图。如图3所示,是计算图图切分的示意图,将原始计算图切分3个计算子图,每个计算子图将进行单独编译优化。
步骤S2,分配深度学习模型整体编译时间,并对时间资源进行分块,每块时间资源相同,在每块时间资源分配前,迭代进行后续步骤;
为ResNet-50编译分配整体编译时间资源总共为T,将其均匀切分为L个时隙,时隙列表为。依据该时隙列表,对ResNet-50进行迭代编译,每个时隙根据探索和利用的关系动态分配时间资源给到相应的潜力计算子图进行自动调优。如图4所示,时间资源动态分配方案与现有静态分配方案的对比图,本发明能够根据当前实时编译结果动态选择潜力算子进行自动调优,而现有编译技术只能按照既定调度方案顺序编译,整体编译收敛速度较慢,相同编译效果条件下,编译优化耗时过长。
步骤S3,遍历多个计算子图或算子,对当前某个计算子图或算子采集其历史编译特征信息;
遍历ResNet-50模型的计算子图列表,针对每个计算子图收集其历史编译特征信息,从特征类别上可分为类别型特征和数值型特征,包括计算子图的浮点型计算次数、整型计算次数、中间表示IR相关特征、算术强度曲线特征、历史调优结果特征等等。其中算术强度曲线特征是在算术强度曲线上采样固定数量的数值点,具体采样数量根据数据集上交叉验证结果确定。历史调优结果特征是指该计算子图前几轮迭代过程中的编译优化延时结果,选择最近几步结果作为特征,具体步数可根据数据集上交叉验证结果确定。
步骤S4,基于采集到历史的编译特征信息,设置分配决策模型参数进行训练或更新,并利用训练好的分配决策模型对当前计算子图或算子的潜力进行预测;
采用XGBoost算法模型对计算子图历史调优结果进行回归建模,将采集到的历史编译特征信息构建为模型输入形式,记其历史序列特征为,其中x是步骤S3中采集的特征构成的特征向量,对应的标签为/>。根据训练好的分配决策模型,对当前t时刻该计算子图的优化结果进行预测,记为/>,则计算该算子的优化潜力为。/>是为了建模方便,对差值做的某些数值缩放或映射操作,可根据交叉实验确定。
步骤S5,根据步骤S3和步骤S4遍历过程中,分配决策模型预测的潜力值,采用强化学习技术选择当前最具优化潜力的计算子图或算子;
步骤S3和S4得出的计算子图优化潜力是依据历史数据回归预测得到的,在编译的初期可能会存在较大的误差,单纯依赖该潜力值很容易陷入局部最优解。因此,采用强化学习技术在每次选择时引入探索策略,使得选择过程具有一定的不确定性,保证有跳出局部最优解的可能性。在这个问题中,需要平衡利用和探索之间的相互关系,同时还要考虑每个计算子图有其对应的权重,因此将其建模为多重多臂老虎机问题,形式化为下式:
其中,将可用的计算子图集合视为摇臂的集合,/>是计算子图选择策略。在每个时隙t开始的时候,选择K个计算子图,用/>表示。在选定的计算子图上进行自动调优。在时隙t结束的时候,统计各个计算子图自动调优的结果,用/>表示。若选定该计算子图,则/>;否则,/>;/>表示计算子图自动调优结束后的奖励,/>为该计算子图的权重,表示在深度学习负载中该计算子图重复次数。
因此,对于一个给定策略,遗憾定义为/>的奖励与最优的奖励之间的差值,即为:
其中,是最优的计算子图选择策略,/>是计算子图自动调优结果的分布。采用强化学习中汤普森采样方法对上述问题进行求解,假设各个计算子图被选中概率服从Beta分布,如图5所示例子。汤普森采样方法流程如下:
步骤S51:取出每个候选计算子图对应的参数a和b;
步骤S52:为每个候选计算子图用a和b作为参数,用Beta分布产生一个随机数;
步骤S53:按照随机数排序,输出最大值对应的候选计算子图;
步骤S54:根据选择的计算子图自动调优结果,对参数a和b进行更新;
步骤S6,为最具优化潜力的计算子图或算子分配相应的时间资源,并进行自动调优,同时记录当前计算子图或算子的实时编译特征信息;
步骤S7,返回步骤S2,重新开始下一个时间块资源的动态分配,同时,需要判断当前计算子图或算子的性能是否到达饱和,若饱和则从步骤S3的遍历列表中剔除。
进一步,步骤S7中性能是否到达饱和,是指算子的优化潜力较低,已经到达优化瓶颈。具体可以根据步骤S4中优化潜力预测模型阈值判断或单位时间内自动调优结果稳定来判定。
步骤S8,将上述编译完成的ResNet-50人脸识别模型部署到智能门锁设备中,进行人脸识别。
实施例 6
本发明还涉及一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现实施例1的基于多重多臂老虎机的编译时间资源动态分配方法。
本发明中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (9)
1.基于多重多臂老虎机的编译时间资源动态分配方法,其特征在于,包括以下步骤:
步骤S1,获取待编译的深度学习模型,对待编译的深度学习模型进行计算图级别优化,并进行图切分,获得多个计算子图或算子;
步骤S2,为待编译的深度学习模型分配整体编译时间,并对时间资源进行分块,每块时间资源相同,在每块时间资源分配前,进行步骤S3-S7;
步骤S3,顺序遍历多个计算子图或算子,对当前计算子图或算子采集其历史编译特征信息;
步骤S4,基于采集到的历史编译特征信息,设置分配决策模型参数进行训练或更新,并利用训练好的分配决策模型对当前计算子图或算子的潜力进行预测;
步骤S5,根据步骤S3和步骤S4遍历过程中,分配决策模型预测的潜力值,采用强化学习技术选择当前最具潜力的计算子图或算子,采用多重多臂老虎机进行问题建模,利用汤普森采样方法、上置信界算法或-贪心算法的平衡探索和利用的关系,加速编译收敛速度;
采用强化学习技术在每次选择时引入探索策略,使得选择过程具有一定的不确定性,保证有跳出局部最优解的可能性,将其建模为多重多臂老虎机问题,形式化为下式:其中,将可用的计算子图集合/>视为摇臂的集合,/>是计算子图选择策略;T为整体编译时间资源;在每个时隙t开始的时候,选择K个计算子图,用/>表示;在选定的计算子图上进行自动调优,在时隙t结束的时候,统计各个计算子图自动调优的结果,用/>表示;若选定该计算子图,则/>;否则,/>;/>表示计算子图自动调优结束后的奖励,/>为该计算子图的权重,表示在深度学习负载中该计算子图重复次数;
因此,对于一个给定策略, 遗憾定义为/>的奖励与最优的奖励之间的差值,即为:其中,/>是最优的计算子图选择策略,/>是计算子图自动调优结果的分布;采用强化学习中汤普森采样方法进行求解,假设各个计算子图被选中概率服从Beta分布;汤普森采样方法流程如下:
步骤S51:取出每个候选计算子图对应的参数a和 b;
步骤S52:为每个候选计算子图用 a 和 b 作为参数,用Beta分布产生一个随机数;
步骤S53:按照随机数排序,输出最大值对应的候选计算子图;
步骤S54:根据选择的计算子图自动调优结果,对参数 a 和 b 进行更新;
步骤S6,为最具优化潜力的计算子图或算子分配相应的时间资源,并进行该计算子图的张量程序自动调优,同时记录当前计算子图或算子的实时编译特征信息;
步骤S7,返回步骤S2,重新开始下一个时间块资源的动态分配,同时,需要判断当前计算子图或算子的性能是否到达饱和,若饱和则从步骤S3的遍历列表中剔除。
2.如权利要求1所述的方法,其特征在于,
步骤S3中所述历史编译特征信息包括计算子图或算子的相关特征,分为类别型特征和数值型特征。
3.如权利要求2所述的方法,其特征在于,所述的算子图或算子的相关特征包括:浮点型计算次数、整型计算次数、中间表示IR特征、算术强度曲线特征、历史调优结果特征。
4.如权利要求1所述的方法,其特征在于,
步骤S4所述的设置分配决策模型参数进行训练或更新,是指采用机器学习或深度学习算法对采集到的编译特征信息进行回归建模,对当前计算子图或算子的优化潜力进行预测打分。
5.如权利要求1所述的方法,其特征在于:步骤S7中性能到达饱和,是指算子的优化潜力到达优化瓶颈。
6.如权利要求5所述的方法,其特征在于:指算子的优化潜力到达优化瓶颈,根据步骤S4中分配决策模型阈值判断或单位时间内自动调优结果稳定来判定。
7.实施如权利要求1所述的基于多重多臂老虎机的编译时间资源动态分配方法的系统,其特征在于,包括:
计算子图或算子获取模块,用于获取待编译的深度学习模型,对待编译的深度学习模型进行计算图级别优化,并进行图切分,获得多个计算子图或算子;
深度学习模型整体编译时间分配模块,用于分配深度学习模型整体编译时间,并对时间资源进行分块,每块时间资源相同,在每块时间资源分配前,进行以下模块的操作;
历史编译特征信息采集模块,顺序遍历多个计算子图或算子,对当前计算子图或算子采集其历史编译特征信息;
当前计算子图或算子的潜力预测模块,基于采集到历史的编译特征信息,设置分配决策模型参数进行训练或更新,并利用训练好的分配决策模型对当前计算子图或算子的潜力进行预测;
当前最具潜力的计算子图或算子选择模块,根据历史编译特征信息采集模块和当前计算子图或算子的潜力预测模块遍历过程中,分配决策模型预测的潜力值,采用强化学习技术选择当前最具潜力的计算子图或算子;采用多重多臂老虎机进行问题建模,利用汤普森采样方法、上置信界算法或-贪心算法的平衡探索和利用的关系,加速编译收敛速度;
采用强化学习技术在每次选择时引入探索策略,使得选择过程具有一定的不确定性,保证有跳出局部最优解的可能性,将其建模为多重多臂老虎机问题,形式化为下式:其中,将可用的计算子图集合/>视为摇臂的集合,/>是计算子图选择策略;T为整体编译时间资源;在每个时隙t开始的时候,选择K个计算子图,用/>表示;在选定的计算子图上进行自动调优,在时隙t结束的时候,统计各个计算子图自动调优的结果,用/>表示;若选定该计算子图,则/>;否则,/>;/>表示计算子图自动调优结束后的奖励,/>为该计算子图的权重,表示在深度学习负载中该计算子图重复次数;
因此,对于一个给定策略, 遗憾定义为/>的奖励与最优的奖励之间的差值,即为:其中,/>是最优的计算子图选择策略,/>是计算子图自动调优结果的分布;采用强化学习中汤普森采样方法进行求解,假设各个计算子图被选中概率服从Beta分布;汤普森采样方法流程如下:
步骤S51:取出每个候选计算子图对应的参数 a 和 b;
步骤S52:为每个候选计算子图用 a 和 b 作为参数,用Beta分布产生一个随机数;
步骤S53:按照随机数排序,输出最大值对应的候选计算子图;
步骤S54:根据选择的计算子图自动调优结果,对参数 a 和 b 进行更新;
时间资源分配模块,为最具优化潜力的计算子图或算子分配相应的时间资源,并进行自动调优,同时记录当前计算子图或算子的实时编译特征信息;
当前计算子图或算子的性能饱和判断模块,返回深度学习模型整体编译时间分配模块,重新开始下一个时间块资源的动态分配,同时,需要判断当前计算子图或算子的性能是否到达饱和,若饱和则从历史编译特征信息采集模块的遍历列表中剔除。
8.一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现权利要求1-6中任一项所述的基于多重多臂老虎机的编译时间资源动态分配方法。
9.一种基于多重多臂老虎机的编译时间资源动态分配装置,其特征在于,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现权利要求1-6中任一项所述的基于多重多臂老虎机的编译时间资源动态分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311278281.2A CN117009092B (zh) | 2023-10-07 | 2023-10-07 | 基于多重多臂老虎机的编译时间资源动态分配方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311278281.2A CN117009092B (zh) | 2023-10-07 | 2023-10-07 | 基于多重多臂老虎机的编译时间资源动态分配方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117009092A CN117009092A (zh) | 2023-11-07 |
CN117009092B true CN117009092B (zh) | 2024-02-02 |
Family
ID=88567610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311278281.2A Active CN117009092B (zh) | 2023-10-07 | 2023-10-07 | 基于多重多臂老虎机的编译时间资源动态分配方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117009092B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114066014A (zh) * | 2021-10-22 | 2022-02-18 | 哈尔滨工业大学 | 基于异步并行多臂老虎机的机器学习的时间序列预测方法 |
CN114924745A (zh) * | 2022-05-19 | 2022-08-19 | 北京百度网讯科技有限公司 | 深度学习编译器的运行方法、装置及电子设备 |
CN114995823A (zh) * | 2022-06-07 | 2022-09-02 | 重庆大学 | 一种面向cnn专用加速器的深度学习编译器优化方法 |
CN115423082A (zh) * | 2022-09-26 | 2022-12-02 | 北京航空航天大学 | 一种硬件特性相关的深度模型计算图自动优化方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230281730A1 (en) * | 2022-03-02 | 2023-09-07 | Microsoft Technology Licensing, Llc | Neural network for model-blended time series forecast |
-
2023
- 2023-10-07 CN CN202311278281.2A patent/CN117009092B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114066014A (zh) * | 2021-10-22 | 2022-02-18 | 哈尔滨工业大学 | 基于异步并行多臂老虎机的机器学习的时间序列预测方法 |
CN114924745A (zh) * | 2022-05-19 | 2022-08-19 | 北京百度网讯科技有限公司 | 深度学习编译器的运行方法、装置及电子设备 |
CN114995823A (zh) * | 2022-06-07 | 2022-09-02 | 重庆大学 | 一种面向cnn专用加速器的深度学习编译器优化方法 |
CN115423082A (zh) * | 2022-09-26 | 2022-12-02 | 北京航空航天大学 | 一种硬件特性相关的深度模型计算图自动优化方法 |
Non-Patent Citations (2)
Title |
---|
Improving quasi-dynamic schedules through region slip;F. Spadini等;《IEEE Xplore》;全文 * |
面向多核体系结构的并行迭代编译技术研究;谭延丹;易会战;张鹏;;计算机工程与科学(03);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117009092A (zh) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111738434B (zh) | 在异构处理单元上执行深度神经网络的方法 | |
CN111274036B (zh) | 一种基于速度预测的深度学习任务的调度方法 | |
US11842178B2 (en) | Compiler-level general matrix multiplication configuration optimization | |
CN115659281B (zh) | 一种自适应加速算子融合的方法及装置 | |
CN115543639A (zh) | 分布式执行深度学习任务的优化方法和分布式系统 | |
US20230334292A1 (en) | Node fusion method for computational graph and device | |
CN116594748B (zh) | 针对任务的模型定制处理方法、装置、设备和介质 | |
CN105373424B (zh) | 一种基于机器学习的推测多线程划分方法 | |
US11934874B2 (en) | Resource optimization for serverless query processing | |
CN117271101B (zh) | 一种算子融合方法、装置、电子设备及存储介质 | |
JP2022007168A (ja) | 学習プログラム、学習方法および情報処理装置 | |
CN112434785B (zh) | 一种面向超级计算机的分布式并行深度神经网络性能评测方法 | |
CN115796041A (zh) | 神经网络模型部署方法、系统、设备及存储介质 | |
CN115423082A (zh) | 一种硬件特性相关的深度模型计算图自动优化方法 | |
CN116868202A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN115461718A (zh) | 神经网络中的内存分配 | |
CN115016938A (zh) | 一种基于强化学习的计算图自动划分方法 | |
CN110069347B (zh) | 一种基于过程重要度的线程划分方法 | |
CN117009092B (zh) | 基于多重多臂老虎机的编译时间资源动态分配方法及系统 | |
CN116560666B (zh) | 基于多层级代码生成的ai前端统一计算方法、装置及介质 | |
CN115374914B (zh) | 分布式训练方法、并行深度学习框架及电子设备 | |
CN114969148A (zh) | 一种基于深度学习的系统访问量预测方法、介质和设备 | |
Heye | Scaling deep learning without increasing batchsize | |
Kukliansky et al. | Leveraging Quantum Machine Learning Generalization to Significantly Speed-up Quantum Compilation | |
US20240311196A1 (en) | Method and device for generating data flow policy |
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 |