CN114490094B - 一种基于机器学习的gpu显存分配方法及系统 - Google Patents

一种基于机器学习的gpu显存分配方法及系统 Download PDF

Info

Publication number
CN114490094B
CN114490094B CN202210401550.9A CN202210401550A CN114490094B CN 114490094 B CN114490094 B CN 114490094B CN 202210401550 A CN202210401550 A CN 202210401550A CN 114490094 B CN114490094 B CN 114490094B
Authority
CN
China
Prior art keywords
task
video memory
executed
importance
tasks
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
Application number
CN202210401550.9A
Other languages
English (en)
Other versions
CN114490094A (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.)
Beijing Linzhuo Information Technology Co Ltd
Original Assignee
Beijing Linzhuo Information Technology Co Ltd
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 Beijing Linzhuo Information Technology Co Ltd filed Critical Beijing Linzhuo Information Technology Co Ltd
Priority to CN202210401550.9A priority Critical patent/CN114490094B/zh
Publication of CN114490094A publication Critical patent/CN114490094A/zh
Application granted granted Critical
Publication of CN114490094B publication Critical patent/CN114490094B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • 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

Abstract

本发明公开了一种基于机器学习的GPU显存分配方法及系统,基于机器学习方法建立任务重要度排序模型,并以在任务执行过程中采集到的任务行为特征形成的样本集完成对任务重要度排序模型的训练,在任务执行过程中根据任务的紧急度、重要度及任务执行所需显存与待分配GPU显存之间的关系,动态确定GPU显存在任务中的分配方式,有效提高了GPU显存资源的利用率,解决了在一张卡或一台机器上同时承载更多的训练和预测任务的难题。

Description

一种基于机器学习的GPU显存分配方法及系统
技术领域
本发明属于计算机软件开发技术领域,具体涉及一种基于机器学习的GPU显存分配方法及系统。
背景技术
随着计算机技术的不断发展与演变,人工智能逐渐成为主流技术,已经广泛应用于机器视觉、语音、自然语言处理、推荐系统等等各个方面,并且正在向各行各业发展。为了提高深度学习的训练以及预测速度,通常采用图形处理器GPU对深度学习进行加速计算。
然而实际使用过程中,由于成本控制或设备受限等原因,用户需要在一张GPU卡或一台机器上完成训练和预测任务,此时能否合理地分配GPU显存成为能否正常完成训练和预测任务的关键。由于单台设备上GPU显存是有限的,如果在训练和预测任务执行过程中不对其进行分配限制或分配不合理,都将会造成资源的浪费,进而降低任务的执行效率。
发明内容
有鉴于此,本发明提供了一种基于机器学习的GPU显存分配方法及系统,能够实现GPU显存有限条件下的多任务高效执行。
本发明提供的一种基于机器学习的GPU显存分配方法,具体包括以下步骤:
步骤1、确定任务的任务类型、采集任务的行为特征,基于行为特征建立任务行为特征集;设定行为特征的权重,预处理所述任务行为特征集得到任务重要度排序样本集;所述任务类型采用任务执行方式及任务紧急度描述;
步骤2、采用机器学习方法建立任务重要度排序模型,使用所述任务重要度排序样本集完成对所述任务重要度排序模型的训练;
步骤3、实际使用中,若当前可分配GPU显存大于设定阈值,则执行步骤4;否则,等待可分配GPU显存大于设定阈值后执行步骤4;
步骤4、提取待执行任务的行为特征,依次选取具有较高任务紧急度的待执行任务执行步骤6;若待执行任务的任务紧急度相同,则执行步骤5;
步骤5、将待执行任务的行为特征输入步骤3得到的任务重要度排序模型中,得到待执行任务的重要度排序;若重要度排序中存在相同的重要度取值,则迭代微调步骤1中设定的行为特征的权重执行步骤2得到新的任务重要度排序模型,将待执行任务的行为特征输入新的任务重要度排序模型得到待执行任务的重要度排序,执行步骤6;若重要度排序中存在相同的重要度取值,执行步骤6;
步骤6、计算待执行任务的任务必要显存;若所有待执行任务的任务必要显存之和等于可分配GPU显存,则优先为紧急度和重要度均较高的待执行任务分配显存;若所有待执行任务的任务必要显存之和小于可分配GPU显存,则优先为紧急度和重要度均较高的待执行任务分配显存,并将剩余的GPU显存分配给紧急度和重要度均最高的待执行任务;若所有待执行任务的任务必要显存之和大于可分配GPU显存,则按照紧急度及重要度由高到低的顺序确定待执行任务组合,计算待执行任务组合的任务必要显存之和作为组合任务必要显存,若组合任务必要显存小于可分配GPU显存且差值小于相邻待执行任务的任务必要显存,则为待执行任务组合分配GPU显存后,将剩余显存分配给组合中紧急度最高的待执行任务;若组合任务必要显存小于可分配GPU显存且差值大于相邻待执行任务的任务必要显存,则为待执行任务组合及相邻待执行任务分配GPU显存。
进一步地,所述GPU显存分配方法还包括,在待执行任务执行完毕后,采用待执行任务的行为特征更新任务行为特征集。
进一步地,所述行为特征包括任务状态、开发语言、任务所使用平台的名称、网络深度、任务周期、任务使用显存及任务执行时间。
进一步地,所述步骤1中的设定行为特征的权重,预处理所述任务行为特征集得到任务重要度排序样本集的过程包括:
步骤4.1、将任务行为特征集中的数据转换为字符分隔值文件,再根据行为特征的重要性设定行为特征的权重,形成任务行为特征文件;
步骤4.2、将所述任务行为特征文件分割为训练样本集和测试样本集;
步骤4.3、将所述训练样本集和测试样本集进行标准化处理后得到所述任务重要度排序样本集。
进一步地,所述步骤6中计算待执行任务的任务必要显存的方式为:根据待执行任务的任务模型的参数量计算任务必要显存。
本发明提供的一种GPU显存分配方法的基于机器学习的GPU显存分配系统,包括任务行为特征采集模块、任务行为特征预处理模块、任务重要度排序模块、GPU显存分配模块、GPU显存监控模块及任务运行模块;
所述任务行为特征采集模块,用于确定任务类型采集任务的行为特征,建立任务行为特征集;所述任务行为特征预处理模块,用于设定所述任务行为特征采集模块输出的任务行为特征集中行为特征的权重,对所述任务行为特征集中的数据预处理得到任务重要度排序样本集;
所述任务重要度排序模块,用于采用所述任务行为特征预处理模块输出的任务重要度排序样本集,完成对建立的任务重要度排序模型的训练;采用任务重要度排序模型,对输入的具有相同紧急度的待执行任务序列的行为特征进行处理,得到待执行任务的重要度排序;若重要度排序中存在相同的重要度,则通知任务行为特征预处理模块微调设定的行为特征的权重更新任务重要度排序样本集后,重新训练任务重要度排序模型,得到重要度排序;
所述GPU显存分配模块,用于计算待执行任务的任务必要显存,根据任务必要显存、任务行为特征采集模块采集到的待执行任务的任务紧急度、任务重要度排序模块输出的重要度排序列表,为所有待执行任务分配显存;
所述GPU显存监控模块,用于获取当前任务的行为特征及可分配GPU显存数据,将获取的行为特征和可分配GPU显存发送至所述任务行为特征采集模块;所述任务运行模块,用于根据所述GPU显存分配模块的分配结果完成待执行任务的执行。
进一步地,所述GPU显存分配模块为所有待执行任务分配显存的方式为:
计算待执行任务的任务必要显存;若所有待执行任务的任务必要显存之和等于可分配GPU显存,则优先为紧急度和重要度均较高的待执行任务分配显存;若所有待执行任务的任务必要显存之和小于可分配GPU显存,则优先为紧急度和重要度均较高的待执行任务分配显存,并将剩余的GPU显存分配给紧急度和重要度均最高的待执行任务;若所有待执行任务的任务必要显存之和大于可分配GPU显存,则按照紧急度及重要度由高到低的顺序确定待执行任务组合,计算待执行任务组合的任务必要显存之和作为组合任务必要显存,若组合任务必要显存小于可分配GPU显存且差值小于相邻待执行任务的任务必要显存,则为待执行任务组合分配GPU显存后,将剩余显存分配给组合中紧急度最高的待执行任务;若组合任务必要显存小于可分配GPU显存且差值大于相邻待执行任务的任务必要显存,则为待执行任务组合及相邻待执行任务分配GPU显存。
有益效果:
本发明基于机器学习方法建立任务重要度排序模型,并以在任务执行过程中采集到的任务行为特征形成的样本集完成对任务重要度排序模型的训练,在任务执行过程中根据任务的紧急度、重要度及任务执行所需显存与待分配GPU显存之间的关系,动态确定GPU显存在任务中的分配方式,有效提高了GPU显存资源的利用率,解决了在一张卡或一台机器上同时承载更多的训练和预测任务的难题。
附图说明
图1为本发明提供的一种基于机器学习的GPU显存分配方法的流程图。
图2为本发明提供的一种基于机器学习的GPU显存分配方法提供的任务类型表。
图3为本发明提供的一种基于机器学习的GPU显存分配方法提供的GPU显存任务行为特征表。
图4为本发明提供的一种基于机器学习的GPU显存分配系统的结构图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提供的一种基于机器学习的GPU显存分配方法及系统,其基本思想是:在任务执行过程中采集任务行为特征形成训练样本集和测试样本集,基于机器学习建立任务重要度排序模型,根据任务的紧急度和重要度,以及任务执行所需显存与待分配GPU显存之间的关系动态确定GPU显存在任务中的分配方式。
本发明提供的一种基于机器学习的GPU显存分配方法,流程如图1所示,包括以下步骤:
步骤1、定义任务类型,采集不同类型任务的行为特征,建立任务行为特征集。
本发明中,根据任务执行的方式及紧急程度给出了任务层次化的分类方式,具体包括:第一层为根据任务执行方式对任务分类,包括:训练、部署、调试等;第二层为根据任务紧急度对任务分类,包括:P1(紧急)、P2(高)、P3(中)、P4(低)等。基于上述分类方式,任务类型可采用二元组(TaskType, UrgencyType)来表示,其中,TaskType为任务执行的方式,UrgencyType为任务的紧急程度。任务执行的方式和任务的紧急程度可采用预设的取值进行赋值,任务类型赋值表如图2所示。
例如,任务类型(1,1),表示该类任务的任务执行方式为训练,任务紧急度为紧急。
本发明中,任务行为特征集的构建过程即为采集不同类型任务执行过程中的行为特征的过程,具体是:采集任务执行中的任务状态、开发语言、任务所使用平台的名称、网络深度、任务周期、任务使用显存、任务执行时间等信息。
其中,任务状态主要包括以下几类:开发中,表示为任务正在开发,此时任务占用GPU资源极少,使用数值“1”表示;测试中,表示任务正在测试执行,此时任务占用GPU资源较多,使用数值“2”表示;待处理,表示任务等待执行,此时任务不占用GPU资源,使用数值“3”表示。开发语言,是指开发任务所采用的语言,包括:Python,使用数值“1”表示;C,使用数值“2”表示;C++,使用数值“3”表示。任务平台,是指任务所使用平台的名称,包括:TensorFlow,使用数值“1”表示;PyTorch,使用数值“2”表示;PaddlePaddle,使用数值“3”表示。网络深度为任务中模型的网络层深,数值越大模型越大参数量也就越大。任务周期为整个任务从开发到结束的周期,周期短的任务较为紧急,单位为“天”。任务使用显存表示执行任务时占用显存资源的大小,为任务执行过程中的实测值,单位为“G”。任务执行时间表示任务使用GPU进行计算的时间,单位为“分钟”。
根据上述行为特征的定义,在执行过程中采集不同任务的行为特征,形成用于重要度排序的任务行为特征集。例如,任务行为特征集可采用特征取值表的方式进行保存,GPU显存任务行为特征表如图3所示。
步骤2、对任务行为特征集进行预处理,形成任务重要度排序样本集。
本发明中,任务行为特征集的预处理过程,包括以下步骤:
步骤2.1、将任务行为特征集中的数据转换为字符分隔值文件格式(Comma-Separated Values,CSV),按照行为特征的重要性分别施加权重值,形成任务行为特征文件。
步骤2.2、将步骤2.1形成的任务行为特征文件分割为训练样本集和测试样本集。
首先,采用Python的打开文件函数,即open()函数,读取任务行为特征文件;然后,采用基于 Python 语言的机器学习工具Sklearn(Scikit-learn)的train_test_split()函数,将读入的数据进行分割,如随机采样20%的数据构建测试样本,其余的数据作为训练样本,形成训练样本集和测试样本集。
步骤2.3、将步骤2.2形成的训练样本集和测试样本集进行标准化处理,形成任务重要度排序样本集。
例如,采用Sklearn的StandardScaler()函数分别对训练样本集和测试样本集的特征及目标值进行标准化处理,来促进模型更好的收敛。
步骤3、基于机器学习方法建立任务重要度排序模型,采用步骤2形成的任务重要度排序样本集完成对任务重要度排序模型的训练。
本发明基于机器学习中的XGboost(梯度提升树)算法建立任务重要度排序模型,采用步骤2形成的任务重要度排序样本中的训练样本,采用XGboost(梯度提升树)算法完成任务重要度排序模型的训练。
进一步地,由于XGboost算法中的Sigmoid损失函数常用于处理分类问题,不适合本发明涉及的排序问题,因此本发明采用ListMLE loss损失函数对XGboost算法进行了改进,使任务重要度排序模型更加收敛。
然后,再采用测试样本对训练得到的任务重要度排序模型进行测试。采用测试样本测试训练得到的任务重要度排序模型的过程,即为测试模型是否拟合测试样本的过程,一般通过计算累计增益CG、折损率DCG和理想折损率IDCG对模型进行评估,从而实现对模型重要度排序效果的评估。
本发明采用归一化折损累计增益NDCG (Normalized Discounted CumulativeGain) 计算模型的得分,根据得分评价模型优劣,并输出评估结果。一般来说,通过设定NDCG的阈值确定模型。例如,设定阈值为0.7,即当NDCG大于或等于0.7则判断当前模型能够被用于任务的重要度排序;否则就对任务重要度排序模型进行参数调优,找到最优参数再重新训练模型,直到NDCG大于0.7。
其中,调整模型参数对模型进行优化的过程为:
步骤3.1、选择一组初始参数;
步骤3.2、改变树的深度max_depth和节点权重min_child_weight,这两个参数对XGBoost性能影响最大,其中,max_depth表示树的最大深度,增加这个值会使模型更加复杂,易出现过拟合,通常深度为3-10;min_child_weight为正则化参数,如果树分区中的实例权重小于定义的总和,则停止树构建过程;
步骤3.3、调节复杂度惩罚项gamma,降低模型过拟合风险;
步骤3.4、调节随机抽样抽取样本比例subsample和每次生成树随机抽样特征比例colsample_bytree,改变数据采样策略;
步骤3.5、调节学习率eta,改变迭代速率。
对于步骤3.2中树的深度max_depth和节点权重min_child_weight两个参数可使用SKlearn中的网格搜索GridSearch自动调参找到最优组合结果。
步骤4、使用过程中,用户登录系统创建待执行任务后,系统获取当前所有在线任务的GPU显存使用数据及剩余可分配GPU显存数据,若剩余可分配GPU显存数据大于设定阈值,则执行步骤5;否则,等待其他任务结束释放GPU显存数据使剩余可分配GPU显存数据大于设定阈值后执行步骤5。
步骤5、根据待执行任务的任务类型获取任务执行方式、任务紧急度、任务状态、开发语言、任务平台、网络深度、任务周期等行为特征;对比待执行任务的任务紧急度,优先为任务紧急度高的待执行任务分配GPU显存,执行步骤7;若待执行任务的任务紧急度相同,则执行步骤6。
步骤6、将具有相同任务紧急度的待执行任务的行为特征转换为数值后,输入步骤3中训练得到的任务重要度排序模型中,得到待执行任务的重要度排序;若重要度排序中存在相同的重要度取值,则迭代微调步骤2中设定的各行为特征的权重值,保存权重值,执行步骤3得到新的任务重要度排序模型,采用新的任务重要度排序模型得到待执行任务的重要度排序,直到重要度排序中的重要度均不同。
步骤7、根据待执行任务的任务模型计算参数量,确定任务必要显存的大小;若所有待执行任务的任务必要显存之和等于剩余可分配GPU显存,则优先为紧急度和重要度均较高的待执行任务分配显存;
若所有待执行任务的任务必要显存之和小于剩余可分配GPU显存,则优先为紧急度和重要度均较高的待执行任务分配显存,并将剩余GPU显存分配给紧急度和重要度均最高的待执行任务;
若所有待执行任务的任务必要显存之和大于剩余可分配GPU显存,则按照紧急度及重要度由高到低的顺序确定待执行任务组合,计算待执行任务组合的任务必要显存之和作为组合任务必要显存,若组合任务必要显存小于剩余可分配GPU显存且差值小于相邻待执行任务的任务必要显存,则为待执行任务组合分配GPU显存后,将剩余显存分配给组合中紧急度最高的待执行任务;若组合任务必要显存小于剩余可分配GPU显存且差值大于相邻待执行任务的任务必要显存,则为待执行任务组合及相邻待执行任务分配GPU显存。
其中,确定任务必要显存大小的方式,如利用TensorFlow中summary()函数可计算得到模型的参数量,根据参数量占用字节数转换为显存,例如:Vgg16参数量计算为138344128,则占用显存为:138344128×4/1024/1024=527.74MB(共有138344128个参数,每个都是float32类型的,即一个占用32位=4bytes)。
基于步骤6得到的待执行任务的重要度排序和步骤7计算得到的待执行任务的任务必要显存的大小,为待执行任务分配显存。分配显存的主体原则是:优先为紧急度较高的待执行任务分配显存,当紧急度相同时优先为重要度较高的待执行任务分配显存;尽量实现系统显存的完全利用,达到资源最大化利用。
为待执行任务分配显存时可利用TensorFlow中的tf.GPUOptions()传参数per_process_gpu_memory_fraction可按比例设置显存,例如,待执行任务的任务使用显存存为2G,总显存为10G,则设置per_process_gpu_memory_fraction=0.2,即该待执行任务占用20%的显存。
若所有待执行任务占用的显存资源未达到可分配显存的上限,就会剩余显存资源造成显存浪费,则将剩余显存资源分配到最紧急、重要度最高的待执行任务上,优先完成此任务。例如,GPU显存上限为10G,最终计算所有任务共同占用9G显存,会有1G显存空闲,此时将空闲显存分配到第一个任务中,增加紧急任务的显存大小。
若所有待执行任务占用的显存资源已超过可分配显存的上限,系统则对所有待执行任务情况进行最优分配判断。如果其中排序靠前的几个待执行任务占用的显存资源超过显存上限,则去除这几个待执行任务中排在最后的任务所占用的显存,此时可能会产生剩余资源,如果剩余的资源足够执行下一个任务,则分配这个资源给下一个任务。如果剩余的资源不足以执行下一个任务,则分配这个资源给最紧急、重要度最高的任务。例如,共10个任务,GPU显存上限为10G,前5个任务占用的总显存为11G,第5个任务单独占用的显存为2G,则第5个任务进入待处理状态,此时剩余1G显存。如果第6个任务小于等于1G,则执行该任务,否则将剩余资源分配给第1个任务。
步骤8、待执行任务执行完毕后收集记录任务的行为特征更新样本集,根据设定的迭代周期,使用步骤6保存的权重值更新任务重要度排序模型,再采用最新的样本集执行步骤2、步骤3完成任务重要度排序模型的训练,实现任务重要度排序模型的迭代更新。从而保证模型的不断进化,使预测更加精确。
本发明提供的一种基于机器学习的GPU显存分配系统,其结构如图4所示,包括任务行为特征采集模块、任务行为特征预处理模块、任务重要度排序模块、GPU显存分配模块、GPU显存监控模块及任务运行模块。
其中,任务行为特征采集模块,用于确定任务的任务类型、采集任务的行为特征,建立任务行为特征集。任务类型为由任务执行方式及任务紧急度表示,行为特征包括任务状态、开发语言、任务平台、网络深度、任务周期、任务使用显存及任务执行时间。
任务行为特征预处理模块,用于根据将任务行为特征采集模块输出的任务行为特征集中的数据转换为任务行为特征文件,根据行为特征的重要性设定行为特征的权重,将任务行为特征文件分割为训练样本集和测试样本集,由训练样本集和测试样本集构成任务重要度排序样本集。具体来说,通过将任务行为特征集中的数据转换为字符分隔值文件格式(CSV),形成GPU显存任务行为特征数据转换为GPU显存任务行为特征文件,并将GPU显存任务行为特征文件分割为训练样本集和测试样本集,再将训练样本集和测试样本集进行标准化处理后形成GPU显存任务重要度排序样本集。
任务重要度排序模块,用于采用任务行为特征预处理模块输出的任务重要度排序样本集,完成对建立的任务重要度排序模型的训练;采用任务重要度排序模型,对输入的具有相同紧急度的待执行任务序列的行为特征进行处理,得到待执行任务的重要度排序;若重要度排序中存在相同的重要度,则通知任务行为特征预处理模块微调设定的行为特征的权重得到任务重要度排序样本集,采用新的任务重要度排序样本集重新训练任务重要度排序模型,使用新的任务重要度排序模型得到重要度排序,实现任务重要度排序模型的迭代优化。具体来说,采用任务重要度排序模型对任务的重要度进行排序,采用任务行为特征预处理模块输出的任务重要度排序样本集完成对任务重要度排序模型的训练;对于要执行的一系列任务,则将一系列任务行为特征采集模块获取的行为特征输入任务重要度排序模块,得到的输出即为任务的重要度排序列表,此外,本发明还在任务重要度排序模块加入重训练功能,不断迭代更新模型,优化模型。
GPU显存分配模块,用于根据待执行任务的行为特征计算待执行任务的任务必要显存,根据任务必要显存、任务行为特征采集模块采集到的待执行任务的任务紧急度和任务使用显存、任务重要度排序模块输出的重要度排序列表,为所有待执行任务分配GPU显存。
GPU显存监控模块,用于监测系统中当前任务的任务使用显存及系统当前的剩余可分配GPU显存数据,将监控数据反馈给任务行为特征采集模块。
任务运行模块,用于根据GPU显存分配模块分配给待执行任务的GPU显存执行待执行任务。执行过程中GPU显存运行监控模块对执行的任务进行监控,以及每个执行完毕后将任务的行为特征反馈到GPU显存任务行为特征采集模块。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于机器学习的GPU显存分配方法,其特征在于,具体包括以下步骤:
步骤1、确定任务的任务类型、采集任务的行为特征,基于行为特征建立任务行为特征集;设定行为特征的权重,预处理所述任务行为特征集得到任务重要度排序样本集;所述任务类型采用任务执行方式及任务紧急度描述;
步骤2、采用机器学习方法建立任务重要度排序模型,使用所述任务重要度排序样本集完成对所述任务重要度排序模型的训练;
步骤3、实际使用中,若当前可分配GPU显存大于设定阈值,则执行步骤4;否则,等待可分配GPU显存大于设定阈值后执行步骤4;
步骤4、提取待执行任务的行为特征,依次选取具有较高任务紧急度的待执行任务执行步骤6;若待执行任务的任务紧急度相同,则执行步骤5;
步骤5、将待执行任务的行为特征输入步骤3得到的任务重要度排序模型中,得到待执行任务的重要度排序;若重要度排序中存在相同的重要度取值,则迭代微调步骤1中设定的行为特征的权重执行步骤2得到新的任务重要度排序模型,将待执行任务的行为特征输入新的任务重要度排序模型得到待执行任务的重要度排序,直到重要度排序中的重要度均不同后,执行步骤6;
步骤6、计算待执行任务的任务必要显存;若所有待执行任务的任务必要显存之和等于可分配GPU显存,则优先为紧急度和重要度均较高的待执行任务分配显存;若所有待执行任务的任务必要显存之和小于可分配GPU显存,则优先为紧急度和重要度均较高的待执行任务分配显存,并将剩余的GPU显存分配给紧急度和重要度均最高的待执行任务;若所有待执行任务的任务必要显存之和大于可分配GPU显存,则按照紧急度及重要度由高到低的顺序确定待执行任务组合,计算待执行任务组合的任务必要显存之和作为组合任务必要显存,若组合任务必要显存小于可分配GPU显存且差值小于相邻待执行任务的任务必要显存,则为待执行任务组合分配GPU显存后,将剩余显存分配给组合中紧急度最高的待执行任务;若组合任务必要显存小于可分配GPU显存且差值大于相邻待执行任务的任务必要显存,则为待执行任务组合及相邻待执行任务分配GPU显存;
所述任务重要度排序模型为基于改进的XGboost算法建立的模型,所述改进的XGboost算法为采用ListMLEloss作为损失函数的XGboost算法。
2.根据权利要求1所述的GPU显存分配方法,其特征在于,所述GPU显存分配方法还包括,在待执行任务执行完毕后,采用待执行任务的行为特征更新任务行为特征集。
3.根据权利要求1所述的GPU显存分配方法,其特征在于,所述行为特征包括任务状态、开发语言、任务所使用平台的名称、网络深度、任务周期、任务使用显存及任务执行时间。
4.根据权利要求1所述的GPU显存分配方法,其特征在于,所述步骤1中的设定行为特征的权重,预处理所述任务行为特征集得到任务重要度排序样本集的过程包括:
步骤4.1、将任务行为特征集中的数据转换为字符分隔值文件,再根据行为特征的重要性设定行为特征的权重,形成任务行为特征文件;
步骤4.2、将所述任务行为特征文件分割为训练样本集和测试样本集;
步骤4.3、将所述训练样本集和测试样本集进行标准化处理后得到所述任务重要度排序样本集。
5.根据权利要求1所述的GPU显存分配方法,其特征在于,所述步骤6中计算待执行任务的任务必要显存的方式为:根据待执行任务的任务模型的参数量计算任务必要显存。
6.一种采用权利要求1所述的GPU显存分配方法的基于机器学习的GPU显存分配系统,其特征在于,包括任务行为特征采集模块、任务行为特征预处理模块、任务重要度排序模块、GPU显存分配模块、GPU显存监控模块及任务运行模块;
所述任务行为特征采集模块,用于确定任务类型采集任务的行为特征,建立任务行为特征集;所述任务行为特征预处理模块,用于设定所述任务行为特征采集模块输出的任务行为特征集中行为特征的权重,对所述任务行为特征集中的数据预处理得到任务重要度排序样本集;
所述任务重要度排序模块,用于采用所述任务行为特征预处理模块输出的任务重要度排序样本集,完成对建立的任务重要度排序模型的训练;采用任务重要度排序模型,对输入的具有相同紧急度的待执行任务序列的行为特征进行处理,得到待执行任务的重要度排序;若重要度排序中存在相同的重要度,则通知任务行为特征预处理模块微调设定的行为特征的权重更新任务重要度排序样本集后,重新训练任务重要度排序模型,得到重要度排序;
所述GPU显存分配模块,用于计算待执行任务的任务必要显存,根据任务必要显存、任务行为特征采集模块采集到的待执行任务的任务紧急度、任务重要度排序模块输出的重要度排序列表,为所有待执行任务分配显存;
所述GPU显存监控模块,用于获取当前任务的行为特征及可分配GPU显存数据,将获取的行为特征和可分配GPU显存发送至所述任务行为特征采集模块;所述任务运行模块,用于根据所述GPU显存分配模块的分配结果完成待执行任务的执行。
7.根据权利要求6所述的GPU显存分配系统,其特征在于,所述GPU显存分配模块为所有待执行任务分配显存的方式为:
计算待执行任务的任务必要显存;若所有待执行任务的任务必要显存之和等于可分配GPU显存,则优先为紧急度和重要度均较高的待执行任务分配显存;若所有待执行任务的任务必要显存之和小于可分配GPU显存,则优先为紧急度和重要度均较高的待执行任务分配显存,并将剩余的GPU显存分配给紧急度和重要度均最高的待执行任务;若所有待执行任务的任务必要显存之和大于可分配GPU显存,则按照紧急度及重要度由高到低的顺序确定待执行任务组合,计算待执行任务组合的任务必要显存之和作为组合任务必要显存,若组合任务必要显存小于可分配GPU显存且差值小于相邻待执行任务的任务必要显存,则为待执行任务组合分配GPU显存后,将剩余显存分配给组合中紧急度最高的待执行任务;若组合任务必要显存小于可分配GPU显存且差值大于相邻待执行任务的任务必要显存,则为待执行任务组合及相邻待执行任务分配GPU显存。
CN202210401550.9A 2022-04-18 2022-04-18 一种基于机器学习的gpu显存分配方法及系统 Active CN114490094B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210401550.9A CN114490094B (zh) 2022-04-18 2022-04-18 一种基于机器学习的gpu显存分配方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210401550.9A CN114490094B (zh) 2022-04-18 2022-04-18 一种基于机器学习的gpu显存分配方法及系统

Publications (2)

Publication Number Publication Date
CN114490094A CN114490094A (zh) 2022-05-13
CN114490094B true CN114490094B (zh) 2022-07-12

Family

ID=81489311

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210401550.9A Active CN114490094B (zh) 2022-04-18 2022-04-18 一种基于机器学习的gpu显存分配方法及系统

Country Status (1)

Country Link
CN (1) CN114490094B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115292199B (zh) * 2022-09-22 2023-03-24 荣耀终端有限公司 一种显存泄露的处理方法及相关装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107122245A (zh) * 2017-04-25 2017-09-01 上海交通大学 Gpu任务调度方法及系统
AU2017272252A1 (en) * 2016-06-08 2018-01-04 Accenture Global Solutions Limited Resource evaluation for complex task execution
CN108446741A (zh) * 2018-03-29 2018-08-24 中国石油大学(华东) 机器学习超参数重要性评估方法、系统及存储介质
CN110533183A (zh) * 2019-08-30 2019-12-03 东南大学 一种流水线分布式深度学习中异构网络感知的模型划分与任务放置方法
CN111767146A (zh) * 2020-06-24 2020-10-13 杭州电子科技大学 一种基于网络重配置的分布式机器学习系统加速方法
CN112559147A (zh) * 2020-12-08 2021-03-26 和美(深圳)信息技术股份有限公司 基于gpu占用资源特点的动态匹配算法、系统和设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11397611B2 (en) * 2019-10-09 2022-07-26 Optum Services (Ireland) Limited Predictive scheduling of computing tasks
CN113157413B (zh) * 2021-04-16 2022-04-26 上海交通大学 基于服务质量需求的深度学习任务资源优化配置方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2017272252A1 (en) * 2016-06-08 2018-01-04 Accenture Global Solutions Limited Resource evaluation for complex task execution
CN107122245A (zh) * 2017-04-25 2017-09-01 上海交通大学 Gpu任务调度方法及系统
CN108446741A (zh) * 2018-03-29 2018-08-24 中国石油大学(华东) 机器学习超参数重要性评估方法、系统及存储介质
CN110533183A (zh) * 2019-08-30 2019-12-03 东南大学 一种流水线分布式深度学习中异构网络感知的模型划分与任务放置方法
CN111767146A (zh) * 2020-06-24 2020-10-13 杭州电子科技大学 一种基于网络重配置的分布式机器学习系统加速方法
CN112559147A (zh) * 2020-12-08 2021-03-26 和美(深圳)信息技术股份有限公司 基于gpu占用资源特点的动态匹配算法、系统和设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Efficient Memory Management for GPU-based Deep Learning Systems;Junzhe Zhang等;《Computer Science》;20190219;第1-13页 *
一种面向深度学习的分布式作业平台;张夏;《中国优秀硕士学位论文全文数据库 信息科技辑》;20220415(第04期);I140-202 *

Also Published As

Publication number Publication date
CN114490094A (zh) 2022-05-13

Similar Documents

Publication Publication Date Title
CN110389820B (zh) 一种基于v-TGRU模型进行资源预测的私有云任务调度方法
JP7117934B2 (ja) 画像分類装置及びプログラム
CN105607952B (zh) 一种虚拟化资源的调度方法及装置
CN112416585B (zh) 面向深度学习的gpu资源管理与智能化调度方法
CN111381970B (zh) 集群任务的资源分配方法及装置、计算机装置及存储介质
CN113946431B (zh) 一种资源调度方法、系统、介质及计算设备
CN111210072B (zh) 预测模型训练和用户资源额度确定方法及装置
CN114490094B (zh) 一种基于机器学习的gpu显存分配方法及系统
CN113435998B (zh) 贷款逾期预测方法、装置、电子设备及存储介质
CN109872049B (zh) 资源配置优化方法及装置
CN111949795A (zh) 工单自动分类方法及装置
CN110347602A (zh) 多任务脚本执行方法及装置、电子设备及可读存储介质
CN114154641A (zh) Ai模型的训练方法、装置、计算设备和存储介质
CN114638167A (zh) 基于多智能体强化学习的高性能集群资源公平分配方法
CN115543626A (zh) 采用异构计算资源负载均衡调度的电力缺陷图像仿真方法
CN114518945A (zh) 一种资源调度方法、装置、设备及存储介质
CN113434685A (zh) 一种资讯分类处理的方法及系统
CN112884569A (zh) 一种信用评估模型的训练方法、装置及设备
CN115167937A (zh) 模型调用方法、装置、设备及存储介质
CN114675975A (zh) 一种基于强化学习的作业调度方法、装置及设备
CN113095511A (zh) 一种在自动化主站实现操作到位的判断方法及装置
CN115185685B (zh) 任务调度方法、装置、计算机设备及存储介质
CN115827225A (zh) 异构运算的分配方法、模型训练方法、装置、芯片、设备及介质
CN108830302A (zh) 一种图像分类方法、训练方法、分类预测方法及相关装置
CN112598112B (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