CN112000463B - 一种基于cuda的gpu资源分配方法、系统、终端及存储介质 - Google Patents
一种基于cuda的gpu资源分配方法、系统、终端及存储介质 Download PDFInfo
- Publication number
- CN112000463B CN112000463B CN202010688551.7A CN202010688551A CN112000463B CN 112000463 B CN112000463 B CN 112000463B CN 202010688551 A CN202010688551 A CN 202010688551A CN 112000463 B CN112000463 B CN 112000463B
- Authority
- CN
- China
- Prior art keywords
- gpu
- memory
- video memory
- node
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 title claims abstract description 25
- 238000013468 resource allocation Methods 0.000 title claims abstract description 18
- 230000015654 memory Effects 0.000 claims abstract description 231
- 230000007246 mechanism Effects 0.000 claims abstract description 32
- 238000002955 isolation Methods 0.000 claims abstract description 30
- 238000007726 management method Methods 0.000 claims abstract description 20
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000012549 training Methods 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 230000003068 static 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/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/5011—Allocation 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
-
- 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/5011—Allocation 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/5016—Allocation 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
-
- 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/5011—Allocation 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/5022—Mechanisms to release resources
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于CUDA的GPU资源分配方法、系统、终端及存储介质,包括:对共享GPU资源的集群启用CUDA平台的统一内存机制;通过所述统一内存机制截取所述集群的每个节点的内存管理接口;设置所述统一内存机制的隔离阈值,根据所述隔离阈值通过所述内存管理接口占用节点的内存;将占用的节点内存作为同节点上GPU的显存资源分配给GPU任务。本发明通过CUDA统一内存与共享GPU资源机制设置相结合,提高GPU利用率和使用效率,提高AI平台进行训练任务的规模并保证平台高效运行。
Description
技术领域
本发明涉及AI平台技术领域,具体涉及一种基于CUDA的GPU资源分配方法、系统、终端及存储介质。
背景技术
随着用于AI平台及深度学习任务的数据量的增加以及对于训练速度要求的提高,资源配置及算力要求也越来越高。此外,随着AI平台GPU服务器集群的整体规模逐步扩大,集群中使用率较高,且较为稀缺的资源,GPU的利用率通常决定了深度学习任务训练的整体效率。所以如何更加有效的使用GPU资源,提升GPU资源利用率显得尤为重要。
目前大部分深度学习训练在使用GPU资源的时候,是以单块GPU卡为最小的资源使用粒度。但是单个训练任务占用一个GPU卡的情况下,训练过程中占用的GPU显存远远低于单块GPU显存大小,从而导致GPU资源利用率较低。
为了提交GPU资源利用率,对训练任务占用GPU显存规模进行分析后,按照一定粒度拆分GPU显存从而使得一个GPU卡被多个任务使用,就显得很有必要。现有技术已经存在定义显存粒度,隔离出多个GPU显存,来实现GPU共享的方式。但该方法只将GPU资源显存信息(单块GPU卡显存目前主流是32G)进行划分隔离,当GPU显存不够时,会直接报出OOM错误,导致任务运行失败,并且根据显存粒度划分的GPU复用情况较低。
发明内容
针对现有技术的上述不足,本发明提供一种基于CUDA的GPU资源分配方法、系统、终端及存储介质,以解决上述技术问题。
第一方面,本发明提供一种基于CUDA的GPU资源分配方法,包括:
对共享GPU资源的集群启用CUDA平台的统一内存机制;
通过所述统一内存机制截取所述集群的每个节点的内存管理接口;
设置所述统一内存机制的隔离阈值,根据所述隔离阈值通过所述内存管理接口占用节点的内存;
将占用的节点内存作为同节点上GPU的显存资源分配给GPU任务。
进一步的,所述根据隔离阈值通过所述内存管理接口占用节点的内存,包括:
获取节点上的单张GPU的显存容量;
计算所述显存容量与所述隔离阈值的乘积,所述隔离阈值为所述显存容量的倍数,计算所述乘积与所述显存容量的差值,将所述差值作为需要占用的内存容量输出。
进一步的,所述将占用的节点内存作为同节点上GPU的显存资源分配给GPU任务,包括:
预先设置显存粒度;
将所述乘积作为单张GPU的总显存,计算所述总显存除以显存粒度的商,将所述商作为复用情况输出;
根据所述复用情况控制调度器向GPU调度相应数量的容器。
进一步的,所述方法还包括:
将集群各节点上GPU信息保存至GPU信息表,并创建GPU显存信息表;
建立已分配容器任务ID与运行节点上的GPU的UUID对应关系,并建立已分配容器ID与GPU显存的对应关系;
判断运行在GPU的容器执行任务时的显存利用最大值是否持续超过所述显存粒度:
若是,则结束所述容器执行的任务,并释放相应的GPU资源和显存资源。
第二方面,本发明提供一种基于CUDA的GPU资源分配系统,包括:
机制启用单元,配置用于对共享GPU资源的集群启用CUDA平台的统一内存机制;
接口定义单元,配置用于通过所述统一内存机制截取所述集群的每个节点的内存管理接口;
内存占用单元,配置用于设置所述统一内存机制的隔离阈值,根据所述隔离阈值通过所述内存管理接口占用节点的内存;
资源分配单元,配置用于将占用的节点内存作为同节点上GPU的显存资源分配给GPU任务。
进一步的,所述内存占用单元包括:
显存获取模块,配置用于获取节点上的单张GPU的显存容量;
容量计算模块,配置用于计算所述显存容量与所述隔离阈值的乘积,所述隔离阈值为所述显存容量的倍数,计算所述乘积与所述显存容量的差值,将所述差值作为需要占用的内存容量输出。
进一步的,所述资源分配单元包括:
粒度设置模块,配置用于预先设置显存粒度;
复用计算模块,配置用于将所述乘积作为单张GPU的总显存,计算所述总显存除以显存粒度的商,将所述商作为复用情况输出;
开发调度模块,配置用于根据所述复用情况控制调度器向GPU调度相应数量的容器。
进一步的,所述系统还包括:
信息保存单元,配置用于将集群各节点上GPU信息保存至GPU信息表,并创建GPU显存信息表;
映射建立单元,配置用于建立已分配容器任务ID与运行节点上的GPU的UUID对应关系,并建立已分配容器ID与GPU显存的对应关系;
显存监控单元,配置用于判断运行在GPU的容器执行任务时的显存利用最大值是否持续超过所述显存粒度;
任务管理单元,配置用于若运行在GPU的容器执行任务时的显存利用最大值持续超过所述显存粒度,则结束所述容器执行的任务,并释放相应的GPU资源和显存资源。
第三方面,提供一种终端,包括:
处理器、存储器,其中,
该存储器用于存储计算机程序,
该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本发明的有益效果在于,
本发明提供的基于CUDA的GPU资源分配方法、系统、终端及存储介质,通过CUDA统一内存相配合的GPU显存分配控制方法,可以在不影响服务器提供服务的情况下,将集群节点上的GPU资源最大程度的进行复用,并通过CUDA统一内存与显存粒度设置相结合,提高GPU利用率和使用效率,提高AI平台进行训练任务的规模并保证平台高效运行。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的方法的示意性流程图。
图3是本发明一个实施例的系统的示意性框图。
图4为本发明实施例提供的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
下面对本发明中出现的关键术语进行解释。
英文全称:Memory granularity、Uni fied Memory、GPU memory allocation
中文全称:显存粒度、统一内存、GPU显存资源分配
图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种基于CUDA的GPU资源分配系统。
如图1所示,该方法100包括:
步骤110,对共享GPU资源的集群启用CUDA平台的统一内存机制;
步骤120,通过所述统一内存机制截取所述集群的每个节点的内存管理接口;
步骤130,设置所述统一内存机制的隔离阈值,根据所述隔离阈值通过所述内存管理接口占用节点的内存;
步骤140,将占用的节点内存作为同节点上GPU的显存资源分配给GPU任务。
具体的,所述基于CUDA的GPU资源分配方法包括:
S1、平台资源管理模块,资源组与节点是相对应的。用户使用平台进行深度学习任务训练时,必须选择资源组并指定节点上运行。如果平台存在启用GPU共享并开启UM机制的资源组,则将umMemoryRatio=1.5(默认值,从配置中心获取)的标签打到该资源组内的主机上(底层通过kubectl describe node $nodename命令查询节点标签信息),调度时使用。
资源组可包括多个节点,每个节点上可存在多张GPU卡。开启UM时单张GPU卡GPU显存划分例如:设置显存粒度为4G,UM隔离阈值自定义为1.5(调度到单张GPU卡的任务,最多使用1.5倍GPU显存,其中的0.5倍会占用物理主机内存),此时如果GPU卡显存为16G,GPU复用情况则为16*1.5/4=6(计算方法为GPU卡显存*UM隔离阈值/显存粒度),调度器也会调度6个容器(pod)到该GPU,每个Pod可设置4G GPU显存。
启用UM机制时,控制并占用主机内存是关键点。为了实现此方法,通过截取cudadriver api,基于Linux的运行时打桩机制(需要能够访问可执行目标文件,基于动态链接器的LD_PRELOAD环境变量),不需要重新编译就可修改环境变量从而使训练框架调用我们自定义的cuda driver api,在自定义的cuda driver api中我们的业务逻辑,达到GPU显存控制、将主机内存(free–m命令中free字段值标识空闲的主机内存)作为GPU显存的目的。
S2、底层处理UM机制GPU显存的底层逻辑为:AI平台底层存在iresource服务、k8s服务以及gpushare deviceplugin。其中iresource为业务处理,k8s为底层任务调度,gpushare deviceplugin为GPU资源分配调度,三者交互。其中iresource调用k8s接口创建容器。gpushare deviceplugin收到为Pod分配共享GPU的请求时,如请求信息中GPU资源格式为204或者200,其中204表示申请2个GPU卡,每个GPU卡4G显存的资源,200表示申请两个GPU卡,每个GPU卡不限制GPU显存(即GPU复用率场景)。deviceplugin将so库目录(Linux下的程序函数库)、GPU卡的显存粒度、LD_PRELOAD参数、UM可以使用的主机内存大小、是否启用UM传递给pod容器。其中,查询该主机的标签(该标签由DevicePlugin自动判断,如果是GPU共享且开启UM)获取可以使用的主机内存。
S3、系统数据库中会存在集群节点与节点上GPU信息的表,此外新建内存存储表记录GPU显存信息。如附图2所示,提交任务并选择资源配置后,所选资源组如果开启UM机制,node1节点上的GPU1如1中所述根据UM隔离出的复用情况为6个可用的4G显存GPU资源。
平台任务1分配节点node1上的GPU1资源隔离出的GPU显存信息,如上图表中ID为1的信息。K8S底层写入平台任务时,将任务id与分配的GPUUUID对应记录,且在内存存储表中记录GPU显存信息及对应的podname的标识符信息,保证任务与对应分配的GPU显存的正确性。
当分配GPU显存给平台任务后,通过系统命令及AI平台内置性能监控持续查询该平台任务的GPU利用率和显存使用情况;待任务稳定运行时,判断显存利用最大值是否超过分配的GPU显存粒度。如果超过显存粒度持续一段时间,平台记录该任务id,自动结束该任务,并将分配的GPU资源释放回资源池;否则任务可以持续运行。
S4、平台存在启用GPU共享但未开启UM机制的资源组。如:设置显存粒度为4G,未开启UM机制,UM隔离阈值取值1.0(调度到单张GPU卡的任务,最多使用1.0倍GPU显存,不占用物理主机内存),此时如果GPU卡显存为16G,GPU复用情况则为16*1.0/4=4(计算方法为GPU卡显存*UM隔离阈值/显存粒度),调度器则只会调度4个容器到该GPU,每个Pod可设置4GGPU显存。
如图3所示,该系统300包括:
机制启用单元310,配置用于对共享GPU资源的集群启用CUDA平台的统一内存机制;
接口定义单元320,配置用于通过所述统一内存机制截取所述集群的每个节点的内存管理接口;
内存占用单元330,配置用于设置所述统一内存机制的隔离阈值,根据所述隔离阈值通过所述内存管理接口占用节点的内存;
资源分配单元340,配置用于将占用的节点内存作为同节点上GPU的显存资源分配给GPU任务。
可选地,作为本发明一个实施例,所述内存占用单元包括:
显存获取模块,配置用于获取节点上的单张GPU的显存容量;
容量计算模块,配置用于计算所述显存容量与所述隔离阈值的乘积,所述隔离阈值为所述显存容量的倍数,计算所述乘积与所述显存容量的差值,将所述差值作为需要占用的内存容量输出。
可选地,作为本发明一个实施例,所述资源分配单元包括:
粒度设置模块,配置用于预先设置显存粒度;
复用计算模块,配置用于将所述乘积作为单张GPU的总显存,计算所述总显存除以显存粒度的商,将所述商作为复用情况输出;
开发调度模块,配置用于根据所述复用情况控制调度器向GPU调度相应数量的容器。
可选地,作为本发明一个实施例,所述系统还包括:
信息保存单元,配置用于将集群各节点上GPU信息保存至GPU信息表,并创建GPU显存信息表;
映射建立单元,配置用于建立已分配容器任务ID与运行节点上的GPU的UUID对应关系,并建立已分配容器ID与GPU显存的对应关系;
显存监控单元,配置用于判断运行在GPU的容器执行任务时的显存利用最大值是否持续超过所述显存粒度;
任务管理单元,配置用于若运行在GPU的容器执行任务时的显存利用最大值持续超过所述显存粒度,则结束所述容器执行的任务,并释放相应的GPU资源和显存资源。
图4为本发明实施例提供的一种终端400的结构示意图,该终端400可以用于执行本发明实施例提供的基于CUDA的GPU资源分配方法。
其中,该终端400可以包括:处理器410、存储器420及通信单元430。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器420可以用于存储处理器410的执行指令,存储器420可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器420中的执行指令由处理器410执行时,使得终端400能够执行以下上述方法实施例中的部分或全部步骤。
处理器410为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器410可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元430,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
因此,本发明通过CUDA统一内存相配合的GPU显存分配控制方法,可以在不影响服务器提供服务的情况下,将集群节点上的GPU资源最大程度的进行复用,并通过CUDA统一内存与显存粒度设置相结合,提高GPU利用率和使用效率,提高AI平台进行训练任务的规模并保证平台高效运行,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1.一种基于CUDA的GPU资源分配方法,其特征在于,包括:
对共享GPU资源的集群启用CUDA平台的统一内存机制;
通过所述统一内存机制截取所述集群的每个节点的内存管理接口;
设置所述统一内存机制的隔离阈值,根据所述隔离阈值通过所述内存管理接口占用节点的内存;
将占用的节点内存作为同节点上GPU的显存资源分配给GPU任务;
所述根据隔离阈值通过所述内存管理接口占用节点的内存,包括:
获取节点上的单张GPU的显存容量;
计算所述显存容量与所述隔离阈值的乘积,所述隔离阈值为所述显存容量的倍数,计算所述乘积与所述显存容量的差值,将所述差值作为需要占用的内存容量输出。
2.根据权利要求1所述的方法,其特征在于,所述将占用的节点内存作为同节点上GPU的显存资源分配给GPU任务,包括:
预先设置显存粒度;
将所述乘积作为单张GPU的总显存,计算所述总显存除以显存粒度的商,将所述商作为复用情况输出;
根据所述复用情况控制调度器向GPU调度相应数量的容器。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将集群各节点上GPU信息保存至GPU信息表,并创建GPU显存信息表;
建立已分配容器任务ID与运行节点上的GPU的UUID对应关系,并建立已分配容器ID与GPU显存的对应关系;
判断运行在GPU的容器执行任务时的显存利用最大值是否持续超过所述显存粒度:
若是,则结束所述容器执行的任务,并释放相应的GPU资源和显存资源。
4.一种基于CUDA的GPU资源分配系统,其特征在于,包括:
机制启用单元,配置用于对共享GPU资源的集群启用CUDA平台的统一内存机制;
接口定义单元,配置用于通过所述统一内存机制截取所述集群的每个节点的内存管理接口;
内存占用单元,配置用于设置所述统一内存机制的隔离阈值,根据所述隔离阈值通过所述内存管理接口占用节点的内存;
资源分配单元,配置用于将占用的节点内存作为同节点上GPU的显存资源分配给GPU任务;
所述内存占用单元包括:
显存获取模块,配置用于获取节点上的单张GPU的显存容量;
容量计算模块,配置用于计算所述显存容量与所述隔离阈值的乘积,所述隔离阈值为所述显存容量的倍数,计算所述乘积与所述显存容量的差值,将所述差值作为需要占用的内存容量输出。
5.根据权利要求4所述的系统,其特征在于,所述资源分配单元包括:
粒度设置模块,配置用于预先设置显存粒度;
复用计算模块,配置用于将所述乘积作为单张GPU的总显存,计算所述总显存除以显存粒度的商,将所述商作为复用情况输出;
开发调度模块,配置用于根据所述复用情况控制调度器向GPU调度相应数量的容器。
6.根据权利要求5所述的系统,其特征在于,所述系统还包括:
信息保存单元,配置用于将集群各节点上GPU信息保存至GPU信息表,并创建GPU显存信息表;
映射建立单元,配置用于建立已分配容器任务ID与运行节点上的GPU的UUID对应关系,并建立已分配容器ID与GPU显存的对应关系;
显存监控单元,配置用于判断运行在GPU的容器执行任务时的显存利用最大值是否持续超过所述显存粒度;
任务管理单元,配置用于若运行在GPU的容器执行任务时的显存利用最大值持续超过所述显存粒度,则结束所述容器执行的任务,并释放相应的GPU资源和显存资源。
7.一种终端,其特征在于,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-3任一项所述的方法。
8.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010688551.7A CN112000463B (zh) | 2020-07-16 | 2020-07-16 | 一种基于cuda的gpu资源分配方法、系统、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010688551.7A CN112000463B (zh) | 2020-07-16 | 2020-07-16 | 一种基于cuda的gpu资源分配方法、系统、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112000463A CN112000463A (zh) | 2020-11-27 |
CN112000463B true CN112000463B (zh) | 2022-11-25 |
Family
ID=73466968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010688551.7A Active CN112000463B (zh) | 2020-07-16 | 2020-07-16 | 一种基于cuda的gpu资源分配方法、系统、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112000463B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112506666B (zh) * | 2020-12-22 | 2024-08-23 | 鹏城实验室 | 基于驱动封装的gpu分时共享方法及系统 |
CN112527513B (zh) * | 2021-02-09 | 2021-05-28 | 南京飞灵智能科技有限公司 | 多个gpu动态分配方法及系统 |
CN113760538B (zh) * | 2021-07-16 | 2023-07-18 | 苏州浪潮智能科技有限公司 | 一种基于ai平台的加速卡类型管控方法、系统及装置 |
CN114625536B (zh) * | 2022-03-15 | 2023-10-31 | 北京有竹居网络技术有限公司 | 显存分配方法、装置、介质及电子设备 |
CN115904740B (zh) * | 2023-02-23 | 2023-05-30 | 青岛创新奇智科技集团股份有限公司 | 一种gpu资源调用方法及系统 |
CN116954929B (zh) * | 2023-09-20 | 2023-12-01 | 四川并济科技有限公司 | 一种实时迁移的动态gpu调度方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108363623A (zh) * | 2018-02-27 | 2018-08-03 | 郑州云海信息技术有限公司 | Gpu资源调度方法、装置、设备及计算机可读存储介质 |
CN111158852A (zh) * | 2019-12-14 | 2020-05-15 | 苏州浪潮智能科技有限公司 | 一种训练资源动态分配方法、系统、终端及存储介质 |
-
2020
- 2020-07-16 CN CN202010688551.7A patent/CN112000463B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108363623A (zh) * | 2018-02-27 | 2018-08-03 | 郑州云海信息技术有限公司 | Gpu资源调度方法、装置、设备及计算机可读存储介质 |
CN111158852A (zh) * | 2019-12-14 | 2020-05-15 | 苏州浪潮智能科技有限公司 | 一种训练资源动态分配方法、系统、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112000463A (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112000463B (zh) | 一种基于cuda的gpu资源分配方法、系统、终端及存储介质 | |
CN110098946B (zh) | 虚拟化网元设备的部署方法以及装置 | |
CN105988874B (zh) | 资源处理方法及装置 | |
CN114741207B (zh) | 一种基于多维度组合并行的gpu资源调度方法和系统 | |
US11579908B2 (en) | Containerized workload scheduling | |
CN104714846A (zh) | 资源处理方法、操作系统及设备 | |
CN113835887B (zh) | 显存的分配方法、装置、电子设备及可读存储介质 | |
CN110389843A (zh) | 一种业务调度方法、装置、设备及可读存储介质 | |
CN111338779B (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN111488206A (zh) | 一种深度学习任务调度方法、系统、终端及存储介质 | |
CN113010265A (zh) | Pod的调度方法、调度器、存储插件及系统 | |
CN112598565A (zh) | 一种基于加速卡的服务运行方法、装置、电子设备及存储介质 | |
CN114996003A (zh) | 一种云服务部署方法、装置、电子设备及存储介质 | |
CN114625533A (zh) | 分布式任务调度方法、装置、电子设备及存储介质 | |
CN113220368B (zh) | 一种存储客户端资源隔离方法、系统、终端及存储介质 | |
CN111475251A (zh) | 一种集群容器调度方法、系统、终端及存储介质 | |
CN111367655A (zh) | 一种云计算环境中gpu资源调度的方法、系统及存储介质 | |
CN116578416A (zh) | 一种基于gpu虚拟化的信号级仿真加速方法 | |
US10503557B2 (en) | Method of processing OpenCL kernel and computing device therefor | |
CN114327862B (zh) | 一种内存分配方法、装置、电子设备及存储介质 | |
CN110879748A (zh) | 一种共享资源分配方法、装置和设备 | |
CN111475295B (zh) | 软硬件分层管理方法、装置及计算机可读存储介质 | |
CN111475349B (zh) | 一种集群dpdk稳定性测试方法、系统、终端及存储介质 | |
US20230195527A1 (en) | Workload distribution by utilizing unused central processing unit capacity in a distributed computing system | |
CN117149440B (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 |