CN113687936A - 在tvm中加速调优收敛的调度方法、存储介质和电子设备 - Google Patents
在tvm中加速调优收敛的调度方法、存储介质和电子设备 Download PDFInfo
- Publication number
- CN113687936A CN113687936A CN202111082553.2A CN202111082553A CN113687936A CN 113687936 A CN113687936 A CN 113687936A CN 202111082553 A CN202111082553 A CN 202111082553A CN 113687936 A CN113687936 A CN 113687936A
- Authority
- CN
- China
- Prior art keywords
- scheduling
- weight
- tasks
- time consumption
- task
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000001052 transient effect Effects 0.000 title description 2
- 238000005457 optimization Methods 0.000 claims abstract description 25
- 230000006870 function Effects 0.000 claims description 8
- 230000009191 jumping Effects 0.000 claims description 8
- 238000013135 deep learning Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 230000001133 acceleration Effects 0.000 claims 2
- 238000001514 detection method Methods 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
Images
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种在TVM中加速调优收敛的调度方法,包括以下步骤:统计调度任务的类型,确定同类型调度任务的数量;首轮遍历调优,记录调度任务对应的耗时;按照耗时长短为调度任务附上调度权重;计算同类型调度任务的得分;以所有调度任务的得分之和作为目标函数值与设定的目标阈值作比较,若目标函数值大于目标阈值,则进行调度权重反馈;调度权重反馈,进行再次调优,并判断调优前后的耗时比较调整调度权重;本发明还同步公开一种、存储介质和电子设备。本发明对调优后的耗时与调优前进行比较,并进行相应的调度权重奖励与惩罚,使调度能够更加快速地收敛。
Description
相关申请的交叉引用
本申请要求申请号为:2021106047694,申请日为:2021年5月31日,发明名称为:在TVM中加速调优收敛的调度方法、存储介质和电子设备的中国专利申请的优先权。
技术领域
本发明涉及计算机技术领域,尤其涉及一种在TVM中加速调优收敛的调度方法、存储介质和电子设备。
背景技术
在图像的深度学习网络中,通常包含多种任务,为了使整体网络性能更优,通常需要对任务进行调度。如文献:Zheng L,Jia C,Sun M,et al.Ansor:Generating High-Performance Tensor Programs for Deep Learning[J].2020即提出了两种策略用于调优任务的调度,分别是round-robin、gradient。其中Round-robin是类枚举调度方法,使用该方法每个任务都能够调度到,对于优化权重低和优化权重高的任务被调度的机会是一样的,这会导致非常耗时。gradient是基于梯度思想的调度策略,这种策略的收敛速度较快,但易陷入局部最优,不利于进一步的调度优化。
发明内容
本发明的目的在于提供一种在TVM中加速调优收敛的调度方法,以解决背景技术中提到的至少一种技术问题。
为实现上述目的,本发明提供如下技术方案:
一种在TVM中加速调优收敛的调度方法,包括以下步骤:
S1,统计调度任务的类型,确定同类型调度任务的数量;
S2,首轮遍历调优,依次对调度任务进行首轮调优,记录调度任务对应的耗时;
S3,按照耗时长短为调度任务附上调度权重,耗时越长调度权重越重;
S4,计算耗时、同类型调度任务的数量、调度权重三者的乘积为同类型调度任务的得分;
S5,以所有调度任务的得分之和作为目标函数值与设定的目标阈值作比较,若目标函数值大于目标阈值,则跳至S6进行调度权重反馈,否则结束调优;
S6,调度权重反馈,对得分最大的同类型调度任务进行再次调优,并判断调优前后的耗时,若调优后的耗时比调优前的耗时短,则加重其调度权重作为奖励,否则减轻其调度权重作为惩罚;跳回至S4。
进一步的,所述S2中,首轮遍历调优的具体内容为:初始化首轮遍历索引;对所述首轮遍历索引累加1,并依次对所述首轮遍历索引对应的调度任务进行调优直至所有调度任务完成首轮遍历调优。
进一步的,所述S6中,调度权重反馈的具体内容为:
S61,选取得分最大的同类型调度任务,将其索引值赋给任务调度索引,将得分最大值赋给中间判断值;
S62,对所述得分最大的同类型调度任务进行再次调优,并记录调优后的耗时;
S63,将调优后的耗时与中间判断值进行比较,若调优后的耗时比中间判断值短,则加重对应的调度权重作为奖励,否则将减轻对应的调度权重作为惩罚。
进一步的,所述奖励值大于惩罚值。
进一步的,所述奖励内容为,在原调度权重的基础上加0.3;所述惩罚内容为,在原调度权重的基础上减0.2。
进一步的,在所述S63中,还包括边界防护,当出现任一调度权重小于设定权重阈值时,进行调度任务进行重新洗牌。
进一步的,所述重新洗牌的内容为:按照S3的方法,对当前的调度任务按照耗时长短为调度任务重新附上调度权重,耗时越长调度权重越重。
进一步的,所述S1之前还包括:
S0,加载深度学习网络,并输入待检测图像,生成若干调度任务。
一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的调度方法。
一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述的调度方法。
与现有技术相比,本发明的有益效果是:本发明引入调度权重反馈的设计,对调优后的耗时与调优前进行比较,并进行相应的调度权重奖励与惩罚,使的图像检测过程中,调度能够更加快速地收敛。另一方面,本发明还引入边界防护,在调度权重低于设定权重阈值的情况下,进行重新洗牌,防止陷入局部最优。
附图说明
图1为本发明的方法流程图。
具体实施方式
下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,本实施例提供一种在TVM中加速调优收敛的调度方法。
调度目标函数及得分列表score[]设计:
(1)得分列表score[i]计算方式如下:
score[i]=task_costs[i]*task_wgts[i]*sort_wgts[i]
其中:task_costs[i]是记录调度任务耗时的列表,task_wgts[i]是记录同类型调度任务数量的列表,sort_wgts[i]是记录调度权重的列表,i是列表的索引。
(2)调度目标函数Fscore计算方式如下:
Fscore=sum(task_costs[i]*task_wgts[i]*sort_wgts[i])
初始化操作。初始化首轮遍历调度索引idx=0,调度权重反馈的中间判断值m_adj=0,选择任务调度索引task_id=-1,调度任务task对应的耗时列表task_costs[i]根据len(tasks)赋0初始化,调度权重列表sort_wgts[i]根据任务列表的长度len(tasks)赋0初始化;调度任务数量的列表Task_wgts[i]中记载的待调优的同类型子任务的个数,在深度学习网络定了之后也就固定了,跟调度调优过程无关。
子任务的确定方式根据是否要对网络进行算子融合分为两种:(1)逐算子模式;(2)算子融合模式。
(1)逐算子模式:
根据深度学习网络中包含的算子类型生成Task_wgts,此时每个算子为一个子任务,支持的算子包括卷积(conv2d)、池化(pool)、归一化(bn/in)、全连接(linear)、激活(relu)等常见算子。
(2)算子融合模式:
支持卷积(conv2d)+归一化(bn)+激活(relu)融合成大算子(fused-conv2d-bn-relu),则此时的大算子(fused-conv2d-bn-relu)为一个独立子任务,其余未融合的算子为其他子任务。
统计调度任务列表中属于同一类型(如卷积、池化、归一等等)的子任务数量,即构成同类型调度任务数量的列表Task_wgts[i]。
具体包括以下步骤:
S0,加载深度学习网络,并输入待检测图像,生成若干调度任务;所述待检测图像可以应用于目标检测、人脸识别/检测、形体识别等。
S1,统计调度任务的类型,确定同类型调度任务的数量,构建同类型调度任务数量的列表Task_wgts[i];
S2,首轮遍历调优,依次对调度任务进行首轮调优,记录调度任务对应的耗时;具体为:
(1)当idx<len(tasks)时,对idx做+1操作,依次对任务进行调优,一轮下来得到填充满的记录每个任务task对应耗时的列表task_costs[i];
(2)当idx>=len(tasks)时,跳出循环,对调度权重列表sort_wgts进行初始化;
S3,考虑到耗时更长的调度任务应该给予更大的调优机会,按照耗时长短为调度任务附上调度权重,耗时越长调度权重越重;
如某一实施例中,涉及10种调度任务,其索引i为0-9,对应的耗时(单位/s)分别为0.2,0.5,0.3,0.4,1.1,0.6,2.3,0.9,1.4,1.8;
预先设定调度权重1至10。
按照耗时的长短排序,其调度权重列表sort_wgts为[1,4,2,3,7,5,10,6,8,9]。
S4,计算耗时、同类型调度任务的数量、调度权重三者的乘积为同类型调度任务的得分score[i];
score[i]=task_costs[i]*task_wgts[i]*sort_wgts[i]
S5,以所有调度任务的得分之和作为目标函数值Fscore与设定的目标阈值α作比较,若目标函数值Fscore大于目标阈值α,则跳至S6进行调度权重反馈,否则达到预期调优效果,跳出循环,结束调优;值得一提的是,目标阈值α为用户期望达到的网络推理效率,不同网络/不同硬件平台的设置数值不固定,由用户主观设定。
S6,调度权重反馈,对得分最大的同类型调度任务进行再次调优,并判断调优前后的耗时,若调优后的耗时比调优前的耗时短,则加重其调度权重作为奖励,否则减轻其调度权重作为惩罚;跳回至S4。
调度权重反馈的具体内容为:
S61,选取得分score[i]最大的同类型调度任务,将其索引值i赋给任务调度索引task_id,将得分最大值score[task_id]赋给中间判断值m_adj;
S62,对所述得分最大的同类型调度任务进行再次调优,并记录调优后的耗时task_costs[task_id];
S63,将调优后的耗时task_costs[task_id]与中间判断值m_adj进行比较,若调优后的耗时比中间判断值短,说明在对这个task_id的调度任务进行调优后,获得了性能的提升,则加重对应的调度权重作为奖励,否则说明在对这个task_id的调度任务进行调优后,并没有获得性能的提升,将减轻对应的调度权重作为惩罚。另外考虑到调度的大部分轮次其实并不会对性能的提升有积极作用,所以奖励值略大于惩罚值,这样会让有希望性能提升的任务获得更多的调优机会。于一实施例中,所述奖励内容为,在原调度权重的基础上加0.3;所述惩罚内容为,在原调度权重的基础上减0.2。
于一实施例中,为了避免调优陷入局部最优,还包括边界防护,当出现任一调度权重小于设定权重阈值时,进行调度任务进行重新洗牌,权重阈值优选为0.3。所述重新洗牌的内容为:按照S3的方法,对当前的调度任务按照耗时长短为调度任务重新附上调度权重[1-10],耗时越长调度权重越重,重新进行调优。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台电子设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
Claims (10)
1.一种在TVM中加速调优收敛的调度方法,其特征在于,包括以下步骤:
S1,统计调度任务的类型,确定同类型调度任务的数量;
S2,首轮遍历调优,依次对调度任务进行首轮调优,记录调度任务对应的耗时;
S3,按照耗时长短为调度任务附上调度权重,耗时越长调度权重越重;
S4,计算耗时、同类型调度任务的数量、调度权重三者的乘积为同类型调度任务的得分;
S5,以所有调度任务的得分之和作为目标函数值与设定的目标阈值作比较,若目标函数值大于目标阈值,则跳至S6进行调度权重反馈,否则结束调优;
S6,调度权重反馈,对得分最大的同类型调度任务进行再次调优,并判断调优前后的耗时,若调优后的耗时比调优前的耗时短,则加重其调度权重作为奖励,否则减轻其调度权重作为惩罚;跳回至S4。
2.根据权利要求1所述的在TVM中加速调优收敛的调度方法,其特征在于,所述S2中,首轮遍历调优的具体内容为:初始化首轮遍历索引;对所述首轮遍历索引累加1,并依次对所述首轮遍历索引对应的调度任务进行调优直至所有调度任务完成首轮遍历调优。
3.根据权利要求1所述的在TVM中加速调优收敛的调度方法,其特征在于,所述S6中,调度权重反馈的具体内容为:
S61,选取得分最大的同类型调度任务,将其索引值赋给任务调度索引,将得分最大值赋给中间判断值;
S62,对所述得分最大的同类型调度任务进行再次调优,并记录调优后的耗时;
S63,将调优后的耗时与中间判断值进行比较,若调优后的耗时比中间判断值短,则加重对应的调度权重作为奖励,否则将减轻对应的调度权重作为惩罚。
4.根据权利要求3所述的在TVM中加速调优收敛的调度方法,其特征在于,所述奖励值大于惩罚值。
5.根据权利要求4所述的在TVM中加速调优收敛的调度方法,其特征在于,所述奖励内容为,在原调度权重的基础上加0.3;所述惩罚内容为,在原调度权重的基础上减0.2。
6.根据权利要求3所述的在TVM中加速调优收敛的调度方法,其特征在于,在所述S63中,还包括边界防护,当出现任一调度权重小于设定权重阈值时,进行调度任务进行重新洗牌。
7.根据权利要求6所述的在TVM中加速调优收敛的调度方法,其特征在于,所述重新洗牌的内容为:按照S3的方法,对当前的调度任务按照耗时长短为调度任务重新附上调度权重,耗时越长调度权重越重。
8.根据权利要求1所述的在TVM中加速调优收敛的调度方法,其特征在于,所述S1之前还包括:
S0,加载深度学习网络,并输入待检测图像,生成若干调度任务。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的调度方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至7中任一项所述的调度方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021106047694 | 2021-05-31 | ||
CN202110604769 | 2021-05-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113687936A true CN113687936A (zh) | 2021-11-23 |
Family
ID=78586442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111082553.2A Pending CN113687936A (zh) | 2021-05-31 | 2021-09-15 | 在tvm中加速调优收敛的调度方法、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113687936A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130268672A1 (en) * | 2012-04-05 | 2013-10-10 | Valerie D. Justafort | Multi-Objective Virtual Machine Placement Method and Apparatus |
CN103955409A (zh) * | 2014-05-04 | 2014-07-30 | 广东怡创科技股份有限公司 | 作业调度方法 |
CN106469352A (zh) * | 2016-08-31 | 2017-03-01 | 航天恒星科技有限公司 | 任务决策的调度方法和系统 |
CN108256671A (zh) * | 2017-12-26 | 2018-07-06 | 佛山科学技术学院 | 一种基于学习型遗传算法的多任务多资源滚动分配方法 |
CN109767094A (zh) * | 2018-12-27 | 2019-05-17 | 南京邮电大学 | 智慧云制造任务调度装置 |
CN110163469A (zh) * | 2019-04-02 | 2019-08-23 | 北京云迹科技有限公司 | 调度任务排序方法及装置 |
CN111625337A (zh) * | 2020-05-28 | 2020-09-04 | 浪潮电子信息产业股份有限公司 | 一种任务调度方法、装置、电子设备和可读存储介质 |
CN111858540A (zh) * | 2020-07-28 | 2020-10-30 | 昆明大棒客科技有限公司 | 带权重的分布式数据存储方法、系统和存储介质 |
CN111860650A (zh) * | 2020-07-21 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种基于tvm的并行卷积融合的方法和设备 |
CN111949932A (zh) * | 2020-07-10 | 2020-11-17 | 苏州浪潮智能科技有限公司 | 一种在TVM中实现TensorCore卷积计算的方法及系统 |
US20210049465A1 (en) * | 2019-08-12 | 2021-02-18 | University Of Southern California | Self-optimizing and self-programming computing systems: a combined compiler, complex networks, and machine learning approach |
-
2021
- 2021-09-15 CN CN202111082553.2A patent/CN113687936A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130268672A1 (en) * | 2012-04-05 | 2013-10-10 | Valerie D. Justafort | Multi-Objective Virtual Machine Placement Method and Apparatus |
CN103955409A (zh) * | 2014-05-04 | 2014-07-30 | 广东怡创科技股份有限公司 | 作业调度方法 |
CN106469352A (zh) * | 2016-08-31 | 2017-03-01 | 航天恒星科技有限公司 | 任务决策的调度方法和系统 |
CN108256671A (zh) * | 2017-12-26 | 2018-07-06 | 佛山科学技术学院 | 一种基于学习型遗传算法的多任务多资源滚动分配方法 |
CN109767094A (zh) * | 2018-12-27 | 2019-05-17 | 南京邮电大学 | 智慧云制造任务调度装置 |
CN110163469A (zh) * | 2019-04-02 | 2019-08-23 | 北京云迹科技有限公司 | 调度任务排序方法及装置 |
US20210049465A1 (en) * | 2019-08-12 | 2021-02-18 | University Of Southern California | Self-optimizing and self-programming computing systems: a combined compiler, complex networks, and machine learning approach |
CN111625337A (zh) * | 2020-05-28 | 2020-09-04 | 浪潮电子信息产业股份有限公司 | 一种任务调度方法、装置、电子设备和可读存储介质 |
CN111949932A (zh) * | 2020-07-10 | 2020-11-17 | 苏州浪潮智能科技有限公司 | 一种在TVM中实现TensorCore卷积计算的方法及系统 |
CN111860650A (zh) * | 2020-07-21 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种基于tvm的并行卷积融合的方法和设备 |
CN111858540A (zh) * | 2020-07-28 | 2020-10-30 | 昆明大棒客科技有限公司 | 带权重的分布式数据存储方法、系统和存储介质 |
Non-Patent Citations (1)
Title |
---|
信息科技: "基于Q-learning的工业互联网资源优化调度", 信息科技 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4736713B2 (ja) | プロジェクトメンバーの選定を支援するシステムと方法 | |
CN112416585B (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
JP2009116380A (ja) | 仮想サーバ移動制御装置、仮想サーバ移動制御方法およびプログラム | |
US20160314484A1 (en) | Method and system for mining churn factor causing user churn for network application | |
CN114675975B (zh) | 一种基于强化学习的作业调度方法、装置及设备 | |
CN112925924A (zh) | 多媒体文件的推荐方法、装置、电子设备及存储介质 | |
CN113343089A (zh) | 用户召回方法及装置、设备 | |
CN112099931A (zh) | 任务调度方法及装置 | |
CN112699046B (zh) | 应用程序测试方法及装置、电子设备和存储介质 | |
CN113827978A (zh) | 一种流失用户预测方法、装置及计算机可读存储介质 | |
CN113687936A (zh) | 在tvm中加速调优收敛的调度方法、存储介质和电子设备 | |
CN112035234B (zh) | 分布式批量作业分配方法及装置 | |
CN113077059A (zh) | 在tvm中加速调优收敛的调度方法、存储介质和电子设备 | |
CN105956680B (zh) | 一个基于强化学习的自适应规则的生成和管理框架 | |
CN109347900B (zh) | 基于改进狼群算法的云服务系统自适应演化方法 | |
Timmermans et al. | Modeling learning and evolutionary adaptation processes in activity settings: Theory and numerical simulations | |
CN116014764A (zh) | 一种分布式储能优化处理方法及装置 | |
CN109857552A (zh) | 一种游戏人工智能行动规划方法及系统 | |
CN104899072A (zh) | 基于虚拟化平台的细粒度资源调度系统及方法 | |
CN115509926A (zh) | 一种基于改进粒子群算法的多任务调度云端测试方法 | |
CN115934490A (zh) | 服务器性能预测模型训练方法、装置、设备及存储介质 | |
CN113220463B (zh) | 一种绑定策略推断方法、装置、电子设备及存储介质 | |
CN110807179B (zh) | 一种用户识别方法、装置、服务器及存储介质 | |
CN111324444B (zh) | 一种云计算任务调度方法及装置 | |
CN113791879A (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 |