CN112052083A - 云端gpu的显存调度方法、装置、电子设备及存储介质 - Google Patents
云端gpu的显存调度方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112052083A CN112052083A CN202010970426.5A CN202010970426A CN112052083A CN 112052083 A CN112052083 A CN 112052083A CN 202010970426 A CN202010970426 A CN 202010970426A CN 112052083 A CN112052083 A CN 112052083A
- Authority
- CN
- China
- Prior art keywords
- video memory
- gpu
- memory capacity
- deep learning
- network model
- 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 65
- 238000013135 deep learning Methods 0.000 claims abstract description 163
- 238000012545 processing Methods 0.000 claims abstract description 39
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012216 screening Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 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
-
- 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
- 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/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Analysis (AREA)
Abstract
本申请提出一种云端GPU的显存调度方法、装置、电子设备及存储介质,该方法包括:接收终端发送的运行请求,该运行请求包括深度学习网络模型的算法程序和待学习数据;根据算法程序和待学习数据,确定深度学习网络模型运行所需的实际显存容量;根据实际显存容量,从GPU池中为深度学习网络模型分配GPU。本申请实施例在为深度学习网络模型分配GPU时,根据深度学习网络模型的网络结构信息、数据维度信息及批处理数量等信息计算了深度学习网络模型运行所需的实际显存容量。根据实际显存容量为深度学习网络模型分配GPU,能够确保分配的GPU的适配度更高,提高了GPU显存调度的效率,能够提高GPU池的利用率。
Description
技术领域
本申请属于深度学习技术领域,具体涉及一种云端GPU的显存调度方法、装置、电子设备及存储介质。
背景技术
随着深度学习训练业务数据量的增加,深度学习网络模型所需的GPU(GraphicsProcessing Unit,图形处理器)显存容量变大,用户自己配备GPU的成本很高,所以很多用户选择使用云端的GPU池来运行深度学习网络模型。云端需要为请求运行的深度学习网络模型分配合适的GPU。
相关技术中提出了一种针对深度学习网络模型的分布式算力调度方法,该方法所基于的GPU池中每个GPU的显存容量较少,单个GPU无法正常运行深度学习网络模型,因此通过分布式调度为一个深度学习网络模型分配多个GPU。
但上述相关技术并不适用于每个GPU的显存容量都很大的GPU池,在这样的GPU池中单个GPU就能够提供用户提交的深度学习网络模型所需要的显存,因此在这样的GPU池中,相关技术中的分布式算力调度方法无法实现高效的显存调度。
发明内容
本申请提出一种云端GPU的显存调度方法、装置、电子设备及存储介质,计算了深度学习网络模型运行所需的实际显存容量。根据实际显存容量为深度学习网络模型分配GPU,能够确保分配的GPU的适配度更高,提高了GPU显存调度的效率,能够提高GPU池的利用率。
本申请第一方面实施例提出了一种云端GPU的显存调度方法,所述方法包括:
接收终端发送的运行请求,所述运行请求包括深度学习网络模型的算法程序和待学习数据;
根据所述算法程序和所述待学习数据,确定所述深度学习网络模型运行所需的实际显存容量;
根据所述实际显存容量,从GPU池中为所述深度学习网络模型分配GPU。
在本申请的一些实施例中,所述根据所述算法程序和所述待学习数据,确定所述深度学习网络模型运行所需的实际显存容量,包括:
根据所述算法程序,获取所述深度学习网络模型的网络结构信息和批处理数量;
获取所述待学习数据对应的数据维度信息;
根据所述网络结构信息,确定所述深度学习网络模型自身所占的第一显存容量;
根据所述网络结构信息、所述数据维度信息和所述批处理数量,确定运行所述深度学习网络模型所涉及的数据所占的第二显存容量;
计算所述第一显存容量和所述第二显存容量之和,得到所述深度学习网络模型运行所需的实际显存容量。
在本申请的一些实施例中,所述根据所述网络结构信息、所述数据维度信息和所述批处理数量,确定运行所述深度学习网络模型所涉及的数据所占的第二显存容量,包括:
根据所述网络结构信息和所述数据维度信息,确定处理一个数据单元所需的显存容量;
计算所述一个数据单元所需的显存容量与所述批处理数量之间的乘积,得到运行所述深度学习网络模型所涉及的数据所占的第二显存容量。
在本申请的一些实施例中,所述根据所述实际显存容量,从GPU池中为所述深度学习网络模型分配GPU,包括:
获取GPU池中每个GPU的状态信息,所述状态信息包括未使用显存容量;
从所述GPU池中筛选出未使用显存容量大于或等于所述实际显存容量的所有GPU;
从筛选出的GPU中,选择未使用显存容量最小的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的显存调度装置的结构示意图;
图4示出了本申请一实施例所提供的一种电子设备的结构示意图;
图5示出了本申请一实施例所提供的一种存储介质的示意图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施方式。虽然附图中显示了本申请的示例性实施方式,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本申请所属领域技术人员所理解的通常意义。
下面结合附图来描述根据本申请实施例提出的一种云端GPU的显存调度方法、装置、电子设备及存储介质。
本申请实施例提供了一种云端GPU的显存调度方法,该方法所基于的GPU池中每个GPU的显存容量都很大,单个GPU足够运行任一深度学习网络模型,每个GPU中可以同时运行一个或多个深度学习网络模型。该方法所基于的GPU池可以包括布置在云端的GPU,也可以包括布置在边端上的GPU。其中,云端可以为服务器,边端可以为摄像头、手机或电脑等终端。
深度学习网络模型运行所需的实际显存容量通常远大于该深度学习网络模型自身的大小,该方法能够计算深度学习网络模型运行所需的实际显存容量,根据其需要的实际显存容量为其分配合适的GPU,使得分配的GPU的适配度更高,提高了GPU显存调度的效率,能够提高GPU池的利用率。
参见图1,该方法具体包括以下步骤:
步骤101:接收终端发送的运行请求,运行请求包括深度学习网络模型的算法程序和待学习数据。
当用户需要使用云端的GPU来运行深度学习网络模型处理图片、音频或视频等数据时,用户通过终端发送运行请求给云端服务器,在该运行请求中携带需要运行的深度学习网络模型的算法程序和待学习数据。其中,深度学习网络模型的算法程序即为实现该深度学习网络模型的程序代码,待学习数据包括需要通过该深度学习网络模型进行训练学习的图片、音频或视频等。
云端服务器接收终端发送的上述运行请求,然后通过如下步骤102和103的操作来为用户的深度学习网络模型分配合适的GPU。
步骤102:根据该运行请求包括的算法程序和待学习数据,确定该深度学习网络模型运行所需的实际显存容量。
本申请实施例通过如下步骤A1-A5的操作来确定深度学习网络模型运行所需的实际显存容量,包括:
A1:根据运行请求包括的算法程序,获取深度学习网络模型的网络结构信息和批处理数量。
其中,网络结构信息包括构成深度学习网络模型的各网络层的名称、各网络层的连接顺序、网络的深度、宽度、各网络层的参数配置等,如构成深度学习网络模型的卷积层、全连接层、池化层等的连接关系、卷积层的卷积核大小等。批处理数量为深度学习网络模型能够并行处理的图片、音频或视频帧等数据的数量,即为深度学习网络模型的batchsize。
深度学习网络模型的算法程序中定义了深度学习网络模型中每一层的名称、参数配置等信息,以及定义了深度学习网络模型的batchsize。接收到终端发送的运行请求时,对该运行请求包括的算法程序进行解析,从中提取出深度学习网络模型的网络结构信息和批处理数量。
A2:获取待学习数据对应的数据维度信息。
上述数据维度信息与待学习数据的类型有关,若待学习数据为图片,则数据维度信息可以包括图片的宽度和高度等。若待学习数据为音频,则数据维度信息可以为音频的长度。若待学习数据为视频,则数据维度信息可以包括视频帧的宽度和高度、视频的长度等。
接收到终端发送的运行请求时,对运行请求携带的待学习数据进行解析,获得待学习数据的数据维度信息。
A3:根据网络结构信息,确定深度学习网络模型自身所占的第一显存容量。
云端服务器中可以配置有不同的网络层所占用的显存容量,如卷积层、全连接层、池化层等网络层各自所占用的显存容量。而对于每一个网络层还可以细化不同参数配置的网络层所占用的显存容量,如卷积层还可以细化不同卷积核的卷积层所占用的显存容量,如卷积核为3×3、5×5、8×8等不同卷积核大小的卷积层各自所占用的显存容量。
通过步骤A2获得深度学习网络模型的网络结构信息之后,可以从本地查询该网络结构信息包括的各网络层所占的显存容量,计算查询出的各网络层所占的显存容量之和,得到深度学习网络模型自身所占的第一显存容量。
A4:根据网络结构信息、数据维度信息和批处理数量,确定运行深度学习网络模型所涉及的数据所占的第二显存容量。
首先根据网络结构信息和数据维度信息,确定处理一个数据单元所需的显存容量。一个数据单元可以为一张图片、一个视频帧或单位长度的音频等,单位长度可以为1s或3s等。通过深度学习网络模型对数据单元进行处理的过程中,每个网络层处理之后都可能产生处理结果,如卷积层对一张图片处理后会产生作为处理结果的特征图。根据深度学习网络模型的网络结构信息和数据维度信息,能够确定出每一个网络层所产生的处理结果的数据量,计算一个数据单元的数据量和处理该数据单元产生的所有处理结果的数据量之和,得到处理一个数据单元所需的显存容量。
由于深度学习网络模型能够并行处理多个数据单元,因此计算一个数据单元所需的显存容量与批处理数量之间的乘积,得到运行深度学习网络模型所涉及的数据所占的第二显存容量。
A5:计算第一显存容量和第二显存容量之和,得到深度学习网络模型运行所需的实际显存容量。
由于深度学习网络模型同一时刻并行处理的数据单元的数目最多为上述批处理数量,所以在任意时刻深度学习网络模型所需占用的GPU的显存容量即为深度学习网络模型自身的数据量、批处理数量的数据单元的数据量以及处理批处理数量的数据单元所产生的所有处理结果的数据量之和。因此计算上述深度学习网络模型自身所占的第一显存容量和运行深度学习网络模型所涉及的数据所占的第二显存容量之和,即得到深度学习网络模型运行所需的实际显存容量。
本申请实施例还可以维护一个调度队列,通过本步骤的方式确定出深度学习网络模型所需的实际显存容量之后,将该深度学习网络模型的算法程序、待学习数据和实际显存容量插入调度队列的队尾进行等待。从调度队列中取出位于队首的深度学习网络模型的算法程序、待学习数据及实际显存容量,通过如下步骤103的操作从GPU池中为位于队首的深度学习网络模型分配GPU。通过调度队列来管理所有运行请求,能够确保按照运行请求接收时间的早晚顺序来响应每个运行请求,避免出现运行请求等待时间过长的问题。
步骤103:根据深度学习网络模型所需的实际显存容量,从GPU池中为深度学习网络模型分配GPU。
获取GPU池中每个GPU的状态信息,该状态信息至少包括未使用显存容量。根据每个GPU的未使用显存容量和深度学习网络模型所需的实际显存容量,从GPU池中筛选出未使用显存容量大于或等于实际显存容量的所有GPU。然后从筛选出的GPU中,选择未使用显存容量最小的GPU分配给该深度学习网络模型。
具体地,可以将GPU池中的每个GPU按照未使用显存容量的大小进行排序,可以按照未使用显存容量从小到大的顺序进行升序排列,也可以按照未使用显存容量从大道小的顺序进行降序排列。对排序之后的GPU序列进行遍历,对于升序排列的GPU序列,可以从排在第一个的GPU开始从前往后进行遍历。对于降序排列的GPU序列,可以从排在最后一个的GPU开始从后往前进行遍历。遍历到一个GPU时判断遍历到的GPU的未使用显存容量是否大于或等于深度学习网络模型所需的实际显存容量,如果否,则继续遍历下一个GPU。如果是,则将当前遍历到的GPU分配给该深度学习网络模型。
由于随着GPU的运行时长的延长,GPU的显卡温度会升高,GPU的显卡温度过高会影响GPU的运行效率,甚至会导致GPU故障。因此对于显卡温度过高的GPU不适宜再分配其运行额外的深度学习网络模型。基于此,本申请实施例中获取的GPU的状态信息中还可以包括显卡温度。在为深度学习网络模型分配GPU时,首先从GPU池中筛选出未使用显存容量大于或等于实际显存容量的所有GPU,然后从筛选出的所有GPU中,确定出显卡温度小于预设阈值的GPU,预设阈值可以为70℃或80℃等。从确定出的GPU中选择未使用显存容量最小的GPU分配给深度学习网络模型。
具体地,对GPU池中的每个GPU按照未使用显存容量的大小进行排序之后,对排序之后的GPU序列进行遍历,遍历到一个GPU时判断该GPU的未使用显存容量是否大于或等于深度学习网络模型所需的实际显存容量,如果否,则继续遍历下一个GPU。如果是,则判断该GPU的显卡温度是否小于预设阈值,如果否,则继续遍历下一个GPU。如果是,则将当前遍历到的GPU分配给该深度学习网络模型。
在实际操作中,也可以先从GPU池中筛选出显卡温度小于预设阈值的GPU,然后从筛选出的所有GPU中,确定出未使用显存容量大于或等于实际显存容量的所有GPU,预设阈值可以为70℃或80℃等。从确定出的GPU中选择未使用显存容量最小的GPU分配给深度学习网络模型。
具体地,遍历到一个GPU时先判断该GPU的显卡温度是否小于预设阈值,如果否,则继续遍历下一个GPU。如果是,则判断该GPU的未使用显存容量是否大于或等于深度学习网络模型所需的实际显存容量,如果否,则继续遍历下一个GPU。如果是,则将当前遍历到的GPU分配给该深度学习网络模型。
通过上述方式为该深度学习网络模型分配GPU之后,通过分配的GPU运行该深度学习网络模型。在该GPU运行该深度学习网络模型期间,该深度学习网络模型占用该GPU的显存容量即为上述该深度学习网络模型所需的实际显存容量,因此还需更新该GPU的状态信息中包括的未使用显存容量,即将该GPU的状态信息中当前的未使用显存容量减去该深度学习网络模型对应的实际显存容量。
在通过该GPU运行该深度学习网络模型将运行请求包括的所有待学习数据处理完之后,运行结束。运行结束后需释放该深度学习网络模型所占用的GPU的显存容量,并更新该GPU的状态信息中包括的未使用显存容量,即将该GPU的状态信息中当前的未使用显存容量增加该深度学习网络模型所占用的实际显存容量。
为了便于理解本申请实施例提供的显存调度方案,下面结合附图2进行说明。其中图2中是根据GPU的未使用显存容量和显卡温度进行分配的。如图2所示,S1:接收终端发送的运行请求,运行请求包括深度学习网络模型的算法程序和待学习数据。S2:获取待学习数据对应的数据维度信息,以及根据算法程序,获取深度学习网络模型的网络结构信息和批处理数量。S3:根据网络结构信息、数据维度信息和批处理数量,计算该深度学习网络模型运行所需的实际显存容量。S4:将GPU池中的每个GPU按照未使用显存容量的大小进行排序。S5:按照未使用显存容量从小到大的顺序依次遍历GPU序列。S6:判断当前遍历到的GPU的显卡温度是否小于预设阈值,如果是,则执行步骤S7,如果否,则执行步骤S8。S7:判断当前遍历到的GPU的未使用显存容量是否大于或等于该深度学习网络模型所需的实际显存容量,如果是,则执行步骤S9,如果否,则执行步骤S8。S8:遍历下一个GPU,返回步骤S6。S9:将当前遍历到的GPU分配给该深度学习网络模型。
本申请实施例所针对的应用场景为云计算环境下的GPU池,且GPU池中的GPU均为高算力的GPU。本申请实施例中一个深度学习网络模型只能运行在一个GPU上,一个GPU上可以同时运行一个或多个深度学习网络模型。
本申请实施例在为深度学习网络模型分配GPU时,根据深度学习网络模型的网络结构信息、数据维度信息及批处理数量等信息计算了深度学习网络模型运行所需的实际显存容量。根据实际显存容量为深度学习网络模型分配GPU,能够确保分配的GPU的适配度更高,提高了GPU显存调度的效率,能够提高GPU池的利用率。
本申请实施例提供了一种云端GPU的显存调度装置,该装置用于执行上述实施例所述的云端GPU的显存调度方法,如图3所示,该装置包括;
接收模块301,用于接收终端发送的运行请求,运行请求包括深度学习网络模型的算法程序和待学习数据;
确定模块302,用于根据算法程序和待学习数据,确定深度学习网络模型运行所需的实际显存容量;
分配模块303,用于根据实际显存容量,从GPU池中为深度学习网络模型分配GPU。
上述确定模块302包括:
获取单元,用于根据算法程序,获取深度学习网络模型的网络结构信息和批处理数量;获取待学习数据对应的数据维度信息;
确定单元,用于根据网络结构信息,确定深度学习网络模型自身所占的第一显存容量;根据网络结构信息、数据维度信息和批处理数量,确定运行深度学习网络模型所涉及的数据所占的第二显存容量;
计算单元,用于计算第一显存容量和第二显存容量之和,得到深度学习网络模型运行所需的实际显存容量。
上述确定单元,用于根据网络结构信息和数据维度信息,确定处理一个数据单元所需的显存容量;计算一个数据单元所需的显存容量与批处理数量之间的乘积,得到运行深度学习网络模型所涉及的数据所占的第二显存容量。
上述分配模块303,用于获取GPU池中每个GPU的状态信息,状态信息包括未使用显存容量;从GPU池中筛选出未使用显存容量大于或等于实际显存容量的所有GPU;从筛选出的GPU中,选择未使用显存容量最小的GPU分配给深度学习网络模型。
上述分配模块303,还用于从未使用显存容量大于或等于实际显存容量的所有GPU中,确定出显卡温度小于预设阈值的GPU;从确定出的GPU中选择未使用显存容量最小的GPU分配给深度学习网络模型。
该装置还包括:状态更新模块,用于通过分配的GPU运行深度学习网络模型,将GPU的状态信息中当前的未使用显存容量减去深度学习网络模型对应的实际显存容量;运行结束后释放深度学习网络模型所占用的GPU的显存容量,将GPU的状态信息中当前的未使用显存容量增加实际显存容量。
该装置还包括:调度队列维护模块,用于将深度学习网络模型的算法程序、待学习数据和实际显存容量插入调度队列的队尾;从调度队列中取出位于队首的深度学习网络模型的算法程序、待学习数据及实际显存容量,从GPU池中为位于队首的深度学习网络模型分配GPU。
本申请的上述实施例提供的云端GPU的显存调度装置与本申请实施例提供的云端GPU的显存调度方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的云端GPU的显存调度方法对应的电子设备,以执行上云端GPU的显存调度方法。本申请实施例不做限定。
请参考图4,其示出了本申请的一些实施方式所提供的一种电子设备的示意图。如图4所示,所述电子设备2包括:处理器200,存储器201,总线202和通信接口203,所述处理器200、通信接口203和存储器201通过总线202连接;所述存储器201中存储有可在所述处理器200上运行的计算机程序,所述处理器200运行所述计算机程序时执行本申请前述任一实施方式所提供的云端GPU的显存调度方法。
其中,存储器201可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口203(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线202可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器201用于存储程序,所述处理器200在接收到执行指令后,执行所述程序,前述本申请实施例任一实施方式揭示的所述云端GPU的显存调度方法可以应用于处理器200中,或者由处理器200实现。
处理器200可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器200中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器200可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器201,处理器200读取存储器201中的信息,结合其硬件完成上述方法的步骤。
本申请实施例提供的电子设备与本申请实施例提供的云端GPU的显存调度方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的云端GPU的显存调度方法对应的计算机可读存储介质,请参考图5,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的云端GPU的显存调度方法。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的云端GPU的显存调度方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备有固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本申请并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的虚拟机的创建装置中的一些或者全部部件的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本申请进行说明而不是对本申请进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种云端GPU的显存调度方法,其特征在于,所述方法包括:
接收终端发送的运行请求,所述运行请求包括深度学习网络模型的算法程序和待学习数据;
根据所述算法程序和所述待学习数据,确定所述深度学习网络模型运行所需的实际显存容量;
根据所述实际显存容量,从GPU池中为所述深度学习网络模型分配GPU。
2.根据权利要求1所述的方法,其特征在于,所述根据所述算法程序和所述待学习数据,确定所述深度学习网络模型运行所需的实际显存容量,包括:
根据所述算法程序,获取所述深度学习网络模型的网络结构信息和批处理数量;
获取所述待学习数据对应的数据维度信息;
根据所述网络结构信息,确定所述深度学习网络模型自身所占的第一显存容量;
根据所述网络结构信息、所述数据维度信息和所述批处理数量,确定运行所述深度学习网络模型所涉及的数据所占的第二显存容量;
计算所述第一显存容量和所述第二显存容量之和,得到所述深度学习网络模型运行所需的实际显存容量。
3.根据权利要求2所述的方法,其特征在于,所述根据所述网络结构信息、所述数据维度信息和所述批处理数量,确定运行所述深度学习网络模型所涉及的数据所占的第二显存容量,包括:
根据所述网络结构信息和所述数据维度信息,确定处理一个数据单元所需的显存容量;
计算所述一个数据单元所需的显存容量与所述批处理数量之间的乘积,得到运行所述深度学习网络模型所涉及的数据所占的第二显存容量。
4.根据权利要求1所述的方法,其特征在于,所述根据所述实际显存容量,从GPU池中为所述深度学习网络模型分配GPU,包括:
获取GPU池中每个GPU的状态信息,所述状态信息包括未使用显存容量;
从所述GPU池中筛选出未使用显存容量大于或等于所述实际显存容量的所有GPU;
从筛选出的GPU中,选择未使用显存容量最小的GPU分配给所述深度学习网络模型。
5.根据权利要求4所述的方法,其特征在于,所述状态信息还包括显卡温度,所述方法还包括:
从未使用显存容量大于或等于所述实际显存容量的所有GPU中,确定出显卡温度小于预设阈值的GPU;
从确定出的GPU中选择未使用显存容量最小的GPU分配给所述深度学习网络模型。
6.根据权利要求4或5所述的方法,其特征在于,所述根据所述实际显存容量,从GPU池中为所述深度学习网络模型分配GPU之后,还包括:
通过分配的GPU运行所述深度学习网络模型,将所述GPU的状态信息中当前的未使用显存容量减去所述深度学习网络模型对应的实际显存容量;
运行结束后释放所述深度学习网络模型所占用的所述GPU的显存容量,将所述GPU的状态信息中当前的未使用显存容量增加所述实际显存容量。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述确定所述深度学习网络模型运行所需的实际显存容量之后,还包括:
将所述深度学习网络模型的算法程序、所述待学习数据和所述实际显存容量插入调度队列的队尾;
从所述调度队列中取出位于队首的深度学习网络模型的算法程序、待学习数据及实际显存容量,从所述GPU池中为位于队首的所述深度学习网络模型分配GPU。
8.一种云端GPU的显存调度装置,其特征在于,所述装置包括;
接收模块,用于接收终端发送的运行请求,所述运行请求包括深度学习网络模型的算法程序和待学习数据;
确定模块,用于根据所述算法程序和所述待学习数据,确定所述深度学习网络模型运行所需的实际显存容量;
分配模块,用于根据所述实际显存容量,从GPU池中为所述深度学习网络模型分配GPU。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序以实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010970426.5A CN112052083A (zh) | 2020-09-15 | 2020-09-15 | 云端gpu的显存调度方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010970426.5A CN112052083A (zh) | 2020-09-15 | 2020-09-15 | 云端gpu的显存调度方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112052083A true CN112052083A (zh) | 2020-12-08 |
Family
ID=73604191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010970426.5A Pending CN112052083A (zh) | 2020-09-15 | 2020-09-15 | 云端gpu的显存调度方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112052083A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117687802A (zh) * | 2024-02-02 | 2024-03-12 | 湖南马栏山视频先进技术研究院有限公司 | 一种基于云平台的深度学习并行调度方法、装置和云平台 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180307984A1 (en) * | 2017-04-24 | 2018-10-25 | Intel Corporation | Dynamic distributed training of machine learning models |
CN109447253A (zh) * | 2018-10-26 | 2019-03-08 | 杭州比智科技有限公司 | 显存分配的方法、装置、计算设备及计算机存储介质 |
US20190220316A1 (en) * | 2018-01-18 | 2019-07-18 | Dell Products L.P. | Method, device and computer program product for determining resource amount for dedicated processing resources |
US20190324810A1 (en) * | 2018-04-20 | 2019-10-24 | EMC IP Holding Company LLC | Method, device and computer readable medium for scheduling dedicated processing resource |
CN110390387A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 对深度学习应用所用资源进行评估 |
CN110413408A (zh) * | 2019-06-29 | 2019-11-05 | 苏州浪潮智能科技有限公司 | 一种深度学习框架的显存控制方法、设备以及存储介质 |
CN111400035A (zh) * | 2020-03-04 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 一种显存分配方法、装置、电子设备及存储介质 |
CN111614769A (zh) * | 2020-05-22 | 2020-09-01 | 武汉魅瞳科技有限公司 | 一种深度学习技术的行为智能分析引擎系统及控制方法 |
-
2020
- 2020-09-15 CN CN202010970426.5A patent/CN112052083A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180307984A1 (en) * | 2017-04-24 | 2018-10-25 | Intel Corporation | Dynamic distributed training of machine learning models |
US20190220316A1 (en) * | 2018-01-18 | 2019-07-18 | Dell Products L.P. | Method, device and computer program product for determining resource amount for dedicated processing resources |
US20190324810A1 (en) * | 2018-04-20 | 2019-10-24 | EMC IP Holding Company LLC | Method, device and computer readable medium for scheduling dedicated processing resource |
CN110390387A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 对深度学习应用所用资源进行评估 |
CN109447253A (zh) * | 2018-10-26 | 2019-03-08 | 杭州比智科技有限公司 | 显存分配的方法、装置、计算设备及计算机存储介质 |
CN110413408A (zh) * | 2019-06-29 | 2019-11-05 | 苏州浪潮智能科技有限公司 | 一种深度学习框架的显存控制方法、设备以及存储介质 |
CN111400035A (zh) * | 2020-03-04 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 一种显存分配方法、装置、电子设备及存储介质 |
CN111614769A (zh) * | 2020-05-22 | 2020-09-01 | 武汉魅瞳科技有限公司 | 一种深度学习技术的行为智能分析引擎系统及控制方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117687802A (zh) * | 2024-02-02 | 2024-03-12 | 湖南马栏山视频先进技术研究院有限公司 | 一种基于云平台的深度学习并行调度方法、装置和云平台 |
CN117687802B (zh) * | 2024-02-02 | 2024-04-30 | 湖南马栏山视频先进技术研究院有限公司 | 一种基于云平台的深度学习并行调度方法、装置和云平台 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110390387B (zh) | 对深度学习应用所用资源进行评估 | |
US11593644B2 (en) | Method and apparatus for determining memory requirement in a network | |
US11775354B2 (en) | Reducing overlay network overhead across container hosts | |
CN111768006A (zh) | 一种人工智能模型的训练方法、装置、设备及存储介质 | |
CN107968810B (zh) | 一种服务器集群的资源调度方法、装置和系统 | |
CN110413412B (zh) | 一种基于gpu集群资源分配的方法和装置 | |
CN110389816B (zh) | 用于资源调度的方法、装置以及计算机可读介质 | |
CN108984317B (zh) | 进程间通信ipc的实现方法和装置 | |
CN110807545A (zh) | 任务时长的预估方法、装置、电子设备和存储介质 | |
CN110554913A (zh) | 神经网络系统及其操作方法以及应用处理器 | |
CN111984400A (zh) | 神经网络的内存分配方法及装置 | |
CN110908797B (zh) | 调用请求数据处理方法、装置、设备、存储介质及系统 | |
CN112052083A (zh) | 云端gpu的显存调度方法、装置、电子设备及存储介质 | |
CN111813541B (zh) | 一种任务调度方法、装置、介质和设备 | |
CN105975329A (zh) | 一种虚拟机的创建方法和装置 | |
CN112001837B (zh) | Cdvs多进程驱动方法、装置、电子设备及存储介质 | |
CN115633317A (zh) | 一种消息通道配置方法和系统 | |
CN115238194A (zh) | 书籍推荐方法、计算设备及计算机存储介质 | |
CN111475277A (zh) | 一种资源分配方法、系统、设备及机器可读存储介质 | |
CN115564635A (zh) | 一种gpu资源调度方法、装置、电子设备及存储介质 | |
CN117555669A (zh) | 资源调度方法、装置、计算设备集群、介质及程序产品 | |
US20170090820A1 (en) | Method and device for operating a many-core system | |
CN113468442A (zh) | 资源位流量的分发方法、计算设备及计算机存储介质 | |
CN113468398A (zh) | 书籍级别的确定方法、计算设备及计算机存储介质 | |
CN112862228A (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 |