CN114691350A - Gpu容器创建方法、装置、电子设备及存储介质 - Google Patents
Gpu容器创建方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114691350A CN114691350A CN202011632520.6A CN202011632520A CN114691350A CN 114691350 A CN114691350 A CN 114691350A CN 202011632520 A CN202011632520 A CN 202011632520A CN 114691350 A CN114691350 A CN 114691350A
- Authority
- CN
- China
- Prior art keywords
- gpu
- information
- container
- equipment
- target
- 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
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/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
- G06F9/505—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 considering the load
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
本申请涉及一种GPU容器创建方法、装置、电子设备及存储介质。该方法包括:接收GPU容器创建请求;所述GPU容器创建请求包括GPU资源需求信息;获取GPU设备集群中每个GPU设备的卡量信息;根据所述GPU资源需求信息和每个GPU设备的卡量信息,从所述GPU设备集群中确定目标GPU设备;从内存中获取所述目标GPU设备对应的目标GPU设备信息;根据所述目标GPU设备信息和所述资源需求信息,创建GPU容器。根据本申请的技术方案,可以提高GPU容器的创建效率,满足AI模型训练的迭代需求。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种GPU容器创建方法、装置、电子设备及存储介质。
背景技术
目前人工智能AI的运用越来越广泛,使得AI模型训练的数量和频次均迅速提高。但由于AI(Artificial Intelligence,人工智能)模型训练需要较高的算力,一般会向算力平台请求算力资源,例如GPU(Graphics Processing Unit,图形处理器)算力资源。算力平台一般以容器的方式向用户提供算力资源,但在容器创建过程中,例如GPU容器创建过程中,匹配到GPU资源下发生产时,均需要通过调用API函数以使GPU设备的API接口实时读取GPU设备信息,将读取的GPU设备信息加载至创建的容器中,完成GPU容器的创建。现有读取GPU设备信息的方式,生产环节中需要多次调用API(Application ProgrammingInterface,应用程序接口)函数,导致容器生产过程耗时较高,容器生产效率低,从而不能满足AI模型训练的迭代需求。
发明内容
有鉴于上述存在的技术问题,本申请提出了一种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容器创建方法及装置,无需调用API函数以读取GPU设备信息,避免了API函数读取设备信息的多次交互,从而大大减少了容器生产过程中的耗时,提高GPU容器生产效率,使得算力平台可以快速交付算力容器,从而可以满足AI模型训练的迭代需求以及提高用户体验;并且,GPU容器快速交付用户,有助于资源流转效率的提升,进而可以提升资源的利用率以及降低算力平台成本;另外,由于减少了API函数频繁读取设备信息的请求数,可以降低设备负载压力以及提升生产的成功率。
根据下面参考附图对示例性实施例的详细说明,本申请的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本申请的示例性实施例、特征和方面,并且用于解释本申请的原理。
图1示出根据本申请一实施例提供的一种应用系统的示意图。
图2示出根据本申请一实施例的GPU容器创建方法的流程图。
图3示出根据本申请一实施例的GPU容器创建方法的流程图。
图4示出根据本申请一实施例的GPU容器创建方法的流程图。
图5示出根据本申请一实施例的根据GPU资源需求信息和每个GPU设备的卡量信息,从所述GPU设备集群中确定目标GPU设备的流程图。
图6示出根据本申请一实施例的根据GPU资源需求信息和每个GPU设备的卡量信息,从所述GPU设备集群中确定目标GPU设备的流程图。
图7示出根据本申请一实施例的GPU容器创建的架构流程示意图。
图8示出根据本申请一实施例的GPU容器创建装置的框图。
图9是根据一示例性实施例示出的一种用于GPU容器创建的电子设备的框图。
具体实施方式
以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。
人工智能AI是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
近年来,随着人工智能技术研究和进步,人工智能技术在多个领域得到广泛应用,本申请实施例提供的方案涉及机器学习/深度学习等技术,具体通过如下实施例进行说明:
请参阅图1,图1示出根据本申请一实施例提供的一种应用系统的示意图。所述应用系统可以用于本申请的GPU容器创建方法。如图1所示,该应用系统至少可以包括服务器01和终端02。
本申请实施例中,所述服务器01可以包括独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content DeliveryNetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
本申请实施例中,所述终端02可以包括智能手机、台式计算机、平板电脑、笔记本电脑、智能音箱、数字助理、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、智能可穿戴设备等类型的实体设备。实体设备,也可以包括运行于实体设备中的软体,例如应用程序等。本申请实施例中终端02上运行的操作系统可以包括但不限于安卓系统、IOS系统、linux、windows等。
本说明书实施例中,上述终端02以及服务器01可以通过有线或无线通信方式进行直接或间接地连接,本申请对此不作限定。
所述服务器01可以用于实现GPU容器创建方法,该服务器01可以是指算力平台中的服务器。所述终端02可以用于提供面向用户的GPU创建处理,例如,终端02可以发送GPU容器创建请求至服务器,并可以接收GPU容器创建结果。终端02提供面向用户的GPU容器创建处理的方式可以包括但不限于应用程序方式、网页方式等。
在一个具体的实施例中,服务器02为分布式系统时,该分布式系统可以为区块链系统,分布式系统为区块链系统时,可以由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)形成,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。具体的,区块链系统中各节点的功能,涉及的功能可以包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
需要说明的是,以下图中示出的是一种可能的步骤顺序,实际上并不限定必须严格按照此顺序。有些步骤可以在互不依赖的情况下并行执行。
具体地,图2示出根据本申请一实施例的GPU容器创建方法的流程图。如图2所示,所述方法可以包括:
S201,接收GPU容器创建请求;GPU容器创建请求可以包括GPU资源需求信息。
本说明书实施例中,可以接收终端发送的GPU容器创建请求。该GPU容器创建请求可以包括GPU资源需求信息,例如GPU卡资源信息,比如36卡。
S203,获取GPU设备集群中每个GPU设备的卡量信息。
本说明书实施例中,每个GPU设备的卡量信息可以是指每个GPU设备包括的GPU卡的数量信息,每个GPU设备的卡量信息可以包括每个GPU设备的总卡量和可用卡量。可以从数据库中获取GPU设备集群中每个GPU设备的卡量信息。该GPU设备集群可以是指算力平台中的多个GPU设备,该多个GPU设备可以用于提供算力服务。其中,每个GPU设备的总卡量可以是指每个GPU设备包括的GPU卡的总数量;每个GPU设备的可用卡量可以是指每个GPU设备包括的GPU卡中的可用GPU卡的数量。
S205,根据GPU资源需求信息和每个GPU设备的卡量信息,从GPU设备集群中确定目标GPU设备。
本说明书实施例中,可以根据每个GPU设备的卡量信息,判断GPU设备集群的可用卡量是否能够满足GPU资源需求信息,若满足,可以从GPU设备集群中确定目标GPU设备。该目标GPU设备可以是指用于创建GPU容器的GPU设备。GPU设备集群的可用卡量可以是指每个GPU设备的可用卡量的总和。
可选地,若不满足,可以发送GPU容器创建失败消息至终端,以通知用户GPU容器创建结果。
S207,从内存中获取目标GPU设备对应的目标GPU设备信息。
本说明书实施例中,内存中可以预加载每个GPU设备的设备信息,该设备信息可以包括以下中的至少一种:GPU卡的型号信息、GPU卡数量信息、GPU卡序列号、GPU显存信息。本申请对此不作限定。其中,GPU显存信息可以是指GPU卡的显存信息;GPU卡可以是每个GPU设备包括的GPU卡,GPU卡数量信息可以是指每个GPU设备包括的GPU卡的数量信息。
本说明书实施例中,可以通过目标GPU设备与内存中预加载的GPU设备信息进行匹配的方式,从内存中获取目标GPU设备对应的目标GPU设备信息。例如,可以将目标GPU设备匹配的设备信息作为目标GPU设备对应的目标GPU设备信息。目标GPU设备信息可以是内存中预加载的设备信息中的一个或多个。
S209,根据目标GPU设备信息和资源需求信息,创建GPU容器。
本说明书实施例中,可以根据目标GPU设备信息和资源需求信息,创建GPU容器。例如,可以根据目标GPU设备信息和资源需求信息,在目标GPU设备中创建GPU容器。本公开对此不作限定。
需要说明的是,GPU容器运行完后可以销毁,该销毁不会导致内存中GPU设备信息的变化。
通过从内存中获取目标GPU设备对应的目标GPU设备信息,根据本申请的GPU容器创建方法,无需调用API函数以读取GPU设备信息,避免了API函数读取设备信息的多次交互,从而大大减少了容器生产过程中的耗时,提高GPU容器生产效率,使得算力平台可以快速交付算力容器,从而可以满足AI模型训练的迭代需求以及提高用户体验;并且,GPU容器快速交付用户,有助于资源流转效率的提升,进而可以提升资源的利用率以及降低算力平台成本;另外,由于减少了API函数频繁读取设备信息的请求数,可以降低设备负载压力以及提升生产的成功率。
图3示出根据本申请一实施例的GPU容器创建方法的流程图。在一种可能的实现方式中,如图3所示,S207可以包括:
S301,若内存中不存在目标GPU设备信息,调用应用程序函数;
S303,基于应用程序函数,获取目标GPU设备对应的目标GPU设备信息。
本说明书实施例中,可以判断内存中是否存在目标GPU设备信息,若内存中不存在目标GPU设备信息,可以调用应用程序函数。并可以基于应用程序函数,获取目标GPU设备对应的目标GPU设备信息。
需要说明的是,内存中会预加载每个GPU设备的设备信息(GPU设备信息),但由于缓存被清空等,导致内存中不存在每个GPU设备的设备信息,使得无法命中目标GPU设备信息。
相应地,GPU容器创建方法还可以包括:
S305,基于应用程序函数,获取GPU设备集群中每个GPU设备的设备信息;
S307,将每个GPU设备的GPU设备信息存储至内存中。
本说明书实施例中,可以基于应用程序函数,获取GPU设备集群中每个GPU设备的设备信息,并可以将每个GPU设备的GPU设备信息存储至内存中。
通过对内存中是否存在目标GPU设备信息进行判断,不仅可以保证目标GPU设备信息的成功获取,还可以在保证后续的GPU容器创建请求可以直接从内存中读取目标GPU设备信息,从而保证GPU容器的创建效率以及GPU容器的交付效率。
图4示出根据本申请一实施例的GPU容器创建方法的流程图。在一种可能的实现方式中,如图4所示,该方法还可以包括:
S401,若检测到预加载触发事件,获取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设备信息。
需要说明的是,该步骤S401可以实时执行,不受以上步骤约束。
S403,将每个GPU设备的设备信息预加载至内存中。
本说明书实施例中,可以将GPU集群中每个GPU设备的设备信息预加载至内存中。
通过预加载触发事件触发GPU设备信息预加载至内存中,可以保证加载至内存中的GPU设备信息是最新的,使得内存中的GPU设备信息具有自动更新功能,适应实时性要求。
图5示出根据本申请一实施例的根据GPU资源需求信息和每个GPU设备的卡量信息,从所述GPU设备集群中确定目标GPU设备的流程图。如图5所示,在一种可能的实现方式中,当GPU资源需求信息包括GPU卡资源信息和容器规格配置信息时,该步骤S205可以包括:
S501,根据每个GPU设备的卡量信息和容器规格配置信息,确定GPU设备集群中满足容器规格配置信息的规格数量。
本说明书实施例中,可以遍历每个GPU设备的卡量信息,若满足容器规格配置信息,可以计算能够提供容器规格配置信息的数量,可以将该数量添加到计数器上,计数器的初始值可以为0。当遍历完每个GPU设备的卡量信息时,可以将计数的值作为规格数量。例如,5台GPU设备可用卡量分别为7卡、8卡、3卡、4卡、5卡。容器规格配置信息为4卡。遍历到7卡,判断满足容器规格配置信息,并可以确定可以提供4卡的数量为1,计数器加1;遍历到8卡,判断满足容器规格配置信息,并可以确定可以提供4卡的数量为2,计数器加2,此时计数器为1+2=3;遍历到3卡,判断不满足容器规格配置信息,并可以确定可以提供4卡的数量为0,计数器加0,此时计数器仍为1+2+0=3;以此类推,当遍历完每个GPU设备的卡量信息时,可以得到计数器为1+2+0+1+1=5。可以确定GPU设备集群中满足容器规格配置信息的规格数量为5。
S503,根据GPU卡资源信息和容器规格配置信息,确定容器数量配置信息。
本说明书实施例中,可以将GPU卡资源信息与容器规格配置信息相除的结果作为容器数量配置信息。例如,GPU卡资源信息为36卡,容器规格配置信息为6卡,可以确定容器数量配置信息为36/6=6个容器。
S505,若规格数量不满足容器数量配置信息,根据每个GPU设备的卡量信息和GPU卡资源信息,确定容器规格调整信息。
本说明书实施例中,若规格数量不满足容器数量配置信息,可以根据每个GPU设备的卡量信息和GPU卡资源信息,确定容器规格调整信息。比如,若规格数量小于容器数量配置信息,可以根据每个GPU设备的卡量信息和GPU卡资源信息,确定容器规格调整信息。本公开对此不作限定,只要GPU设备集群的卡量信息能够满足容器规格调整信息中容器规格和GPU卡资源信息即可。
在一个示例中,当GPU资源需求信息包括GPU卡资源信息和容器规格配置信息时,若GPU卡资源信息为36卡,容器规格配置信息为每个GPU容器是6卡,从而可以确定需要6个容器。假设GPU设备集群包括10台GPU设备,每台GPU设备的总卡量为8卡;10台GPU设备可用卡量分别为7卡、8卡、4卡、3卡、5卡、6卡、8卡、5卡、5卡、4卡。其中,10台GPU设备可用卡量的和为7+8+4+3+5+6+8+5+5+4=55;10台GPU设备可用卡量满足GPU卡资源信息。10台GPU设备可以提供6卡的包括:7卡、8卡、6卡、8卡,可见,10台GPU设备不能满足容器规格配置信息,此时,可以根据每个GPU设备的卡量信息和GPU卡资源信息,确定容器规格调整信息。10台GPU设备中包括9台可以提供大于或等于4卡的容器规格,因此可以将容器规格调整信息确定为4卡,这样需要9个容器。
可选地,若每个GPU设备的卡量信息满足容器规格配置信息,可以将容器规格配置信息作为目标容器规格信息;根据GPU卡资源信息和容器规格配置信息,确定目标容器数量信息,比如36卡(GPU卡资源信息)/6卡(容器规格配置信息)=6(目标容器数量信息)。
S507,发送容器规格调整信息至GPU容器生产请求对应的终端;
S509,若接收到终端对容器规格调整信息的确认信息,将容器规格调整信息作为目标容器规格信息。
本说明书实施例中,可以发送容器规格调整信息至GPU容器生产请求对应的终端,若接收到终端对容器规格调整信息的确认信息,可以将容器规格调整信息作为目标容器规格信息。
S5011,根据GPU卡资源信息和目标容器规格信息,确定目标容器数量信息。
本说明书实施例中,可以将GPU卡资源信息和目标容器规格信息相除,得到目标容器数量信息。
S5013,根据目标容器规格信息和目标容器数量信息,从GPU设备集群中确定目标GPU设备。
本说明书实施例中,可以从GPU设备集群中选择出与目标容器规格信息和目标容器数量信息匹配的目标GPU设备。例如,如上述目标容器规格信息为4卡、目标容器数量信息为9;可以从10台GPU设备中选择出目标GPU设备包括:7卡、8卡、4卡、5卡、6卡、8卡、5卡、5卡、4卡;或者,由于8卡可以提供2个4卡的容器,可以从10台GPU设备中选择出目标GPU设备包括:7卡、8卡、4卡、5卡、6卡、8卡、5卡。本申请对此不作限定。
通过在GPU设备集群不满足容器规格配置信息时,根据每个GPU设备的卡量信息和GPU卡资源信息,确定容器规格调整信息;并由终端侧的用户对容器规格调整信息进行确认,即实现根据实时GPU资源对容器规格配置信息的调整以保证GPU容器创建的顺利执行,又提高了用户在GPU容器创建过程中的参与度。
图6示出根据本申请一实施例的根据GPU资源需求信息和每个GPU设备的卡量信息,从所述GPU设备集群中确定目标GPU设备的流程图。如图6所示,在一种可能的实现方式中,当GPU资源需求信息包括GPU卡资源信息时,该步骤S205可以包括:
S601,根据GPU卡资源信息和每个GPU设备的卡量信息,确定容器数量信息和容器规格信息;
S603,根据容器规格信息和容器数量信息,从GPU设备集群中确定目标GPU设备。
本说明书实施例中,当GPU资源需求信息仅包括GPU卡资源信息时,即用户没有对容器规格进行要求时,可以根据GPU卡资源信息和每个GPU设备的卡量信息,确定容器数量信息和容器规格信息;并可以根据容器规格信息和容器数量信息,从GPU设备集群中确定目标GPU设备。例如,GPU卡资源信息为36卡,可以确定待选择的容器数量和容器规格包括9*4卡、6*6卡、12*3卡、18*2卡。可以从待选择的容器数量、容器规格以及每个GPU设备的卡量信息,确定容器数量信息和容器规格信息,本公开对此不作限定。从而可以根据容器规格信息和容器数量信息,从GPU设备集群中确定目标GPU设备。
可选地,当GPU资源需求信息还包括目标型号信息时,可以从GPU设备集群中选择出与目标型号信息对应的GPU设备;S601可以包括:根据GPU卡资源信息和目标型号信息对应的GPU设备的卡量信息,确定容器数量信息和容器规格信息;S603可以包括:根据容器规格信息和容器数量信息,从目标型号信息对应的GPU设备中确定目标GPU设备。
图7示出根据本申请一实施例的GPU容器创建的架构流程示意图。如图7所示,在GPU容器生产中,在一种可能的实现方式中,步骤S209可以包括:调用容器创建函数;并根据目标GPU设备信息、资源需求信息以及容器创建函数,创建GPU容器(创建GPU算力容器)。容器创建函数可以是nvidia-docker创建函数(英伟达-容器创建函数),本申请对此不作限定。可选地,在步骤S201之后,可以使用该容器创建函数进行GPU容器的创建,例如,可以基于该容器创建函数,从内存中获取目标GPU设备对应的目标GPU设备信息等。
如图7所示,在完成GPU容器的创建后,可以将创建的GPU容器交付给用户使用。这里用户可以是指发送GPU容器创建请求的终端对应的用户。
图8示出根据本申请一实施例的GPU容器创建装置的框图。如图8所示,该装置可以包括:
容器创建请求接收模块801,用于接收GPU容器创建请求;所述GPU容器创建请求包括GPU资源需求信息;
卡量信息获取模块803,用于获取GPU设备集群中每个GPU设备的卡量信息;
目标GPU设备确定模块805,用于根据所述GPU资源需求信息和每个GPU设备的卡量信息,从所述GPU设备集群中确定目标GPU设备;
目标GPU设备信息获取模块807,用于从内存中获取所述目标GPU设备对应的目标GPU设备信息;
GPU容器创建模块809,用于根据所述目标GPU设备信息和所述资源需求信息,创建GPU容器。
通过从内存中获取目标GPU设备对应的目标GPU设备信息,根据本申请的GPU容器创建装置,无需调用API函数以读取GPU设备信息,避免了API函数读取设备信息的多次交互,从而大大减少了容器生产过程中的耗时,提高GPU容器生产效率,使得算力平台可以快速交付算力容器,从而可以满足AI模型训练的迭代需求以及提高用户体验;并且,GPU容器快速交付用户,有助于资源流转效率的提升,进而可以提升资源的利用率以及降低算力平台成本;另外,由于减少了API函数频繁读取设备信息的请求数,可以降低设备负载压力以及提升生产的成功率。
在一种可能的实现方式中,GPU容器创建装置还可以包括:
第一设备信息获取模块,用于若检测到预加载触发事件,获取GPU设备集群中每个GPU设备的设备信息;
预加载模块,用于将每个GPU设备的设备信息预加载至所述内存中。
在一种可能的实现方式中,当GPU资源需求信息包括GPU卡资源信息和容器规格配置信息时,目标GPU设备确定模块705可以包括:
规格数量确定单元,用于根据每个GPU设备的卡量信息和所述容器规格配置信息,确定所述GPU设备集群中满足所述容器规格配置信息的规格数量;
容器数量配置信息确定单元,用于根据所述GPU卡资源信息和所述容器规格配置信息,确定容器数量配置信息;
容器规格调整信息确定单元,用于若所述规格数量不满足所述容器数量配置信息,根据每个GPU设备的卡量信息和所述GPU卡资源信息,确定容器规格调整信息;
发送单元,用于发送所述容器规格调整信息至所述GPU容器生产请求对应的终端;
确认信息接收单元,用于若接收到所述终端对所述容器规格调整信息的确认信息,将所述容器规格调整信息作为目标容器规格信息;
目标容器数量信息确定单元,用于根据所述GPU卡资源信息和所述目标容器规格信息,确定目标容器数量信息;
第一目标GPU设备确定单元,用于根据目标容器规格信息和目标容器数量信息,从GPU设备集群中确定所述目标GPU设备。
在一种可能的实现方式中,目标GPU设备信息获取模块707可以包括:
应用程序函数调用单元,用于若所述内存中不存在所述目标GPU设备信息,调用应用程序函数;
目标GPU设备信息获取单元,用于基于所述应用程序函数,获取所述目标GPU设备对应的目标GPU设备信息;
所述装置还可以包括:
第二设备信息获取模块,用于基于所述应用程序函数,获取所述GPU设备集群中每个GPU设备的设备信息;
存储模块,用于将每个GPU设备的设备信息存储至所述内存中。
在一种可能的实现方式中,所述设备信息可以包括以下中的至少一种:GPU卡的型号信息、GPU卡数量信息、GPU卡序列号、GPU显存信息。
在一种可能的实现方式中,所述GPU资源需求信息可以包括GPU卡资源信息;目标GPU设备确定模块705可以包括:
容器信息确定单元,用于根据所述GPU卡资源信息和所述每个GPU设备的卡量信息,确定容器数量信息和容器规格信息;
第二目标GPU设备确定单元,用于根据所述容器规格信息和所述容器数量信息,从所述GPU设备中确定所述目标GPU设备。
在一种可能的实现方式中,GPU容器创建模块709可以包括:
容器创建函数调用单元,用于调用容器创建函数;
GPU容器创建单元,用于根据所述目标GPU设备信息、所述资源需求信息以及所述容器创建函数,创建所述GPU容器。
关于上述实施例中的装置,其中各个模块和单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
另一方面,本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的各种可选实现方式中提供的GPU容器创建方法。
图9是根据一示例性实施例示出的一种用于GPU容器创建的电子设备的框图。该电子设备可以是服务器,其内部结构图可以如图9所示。该电子设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种GPU容器创建方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在示例性实施例中,还提供了一种电子设备,包括:处理器;用于存储该处理器可执行指令的存储器;其中,该处理器被配置为执行该指令,以实现如本公开实施例中的GPU容器创建方法。
在示例性实施例中,还提供了一种存储介质,当该存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本公开实施例中的GPU容器创建方法。
在示例性实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本公开实施例中的GPU容器创建方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种GPU容器创建方法,其特征在于,所述方法包括:
接收GPU容器创建请求;所述GPU容器创建请求包括GPU资源需求信息;
获取GPU设备集群中每个GPU设备的卡量信息;
根据所述GPU资源需求信息和每个GPU设备的卡量信息,从所述GPU设备集群中确定目标GPU设备;
从内存中获取所述目标GPU设备对应的目标GPU设备信息;
根据所述目标GPU设备信息和所述资源需求信息,创建GPU容器。
2.根据权利要求1所述的方法,其特征在于,还包括:
若检测到预加载触发事件,获取所述GPU设备集群中每个GPU设备的设备信息;
将每个GPU设备的设备信息预加载至所述内存中。
3.根据权利要求1所述的方法,其特征在于,当所述GPU资源需求信息包括GPU卡资源信息和容器规格配置信息时,所述根据所述GPU资源需求信息和每个GPU设备的卡量信息,从所述GPU设备集群中确定目标GPU设备,包括:
根据每个GPU设备的卡量信息和所述容器规格配置信息,确定所述GPU设备集群中满足所述容器规格配置信息的规格数量;
根据所述GPU卡资源信息和所述容器规格配置信息,确定容器数量配置信息;
若所述规格数量不满足所述容器数量配置信息,根据每个GPU设备的卡量信息和所述GPU卡资源信息,确定容器规格调整信息;
发送所述容器规格调整信息至所述GPU容器生产请求对应的终端;
若接收到所述终端对所述容器规格调整信息的确认信息,将所述容器规格调整信息作为目标容器规格信息;
根据所述GPU卡资源信息和所述目标容器规格信息,确定目标容器数量信息;
根据所述目标容器规格信息和所述目标容器数量信息,从所述GPU设备集群中确定所述目标GPU设备。
4.根据权利要求1所述的方法,其特征在于,所述从内存中获取所述目标GPU设备对应的目标GPU设备信息,包括:
若所述内存中不存在所述目标GPU设备信息,调用应用程序函数;
基于所述应用程序函数,获取所述目标GPU设备对应的目标GPU设备信息;
所述方法还包括:
基于所述应用程序函数,获取所述GPU设备集群中每个GPU设备的设备信息;
将每个GPU设备的设备信息存储至所述内存中。
5.根据权利要求1所述的方法,其特征在于,所述设备信息包括以下中的至少一种:GPU卡的型号信息、GPU卡数量信息、GPU卡序列号、GPU显存信息。
6.根据权利要求1所述的方法,其特征在于,所述GPU资源需求信息包括GPU卡资源信息;所述根据所述GPU资源需求信息和每个GPU设备的卡量信息,从所述GPU设备集群中确定目标GPU设备,包括:
根据所述GPU卡资源信息和所述每个GPU设备的卡量信息,确定容器数量信息和容器规格信息;
根据所述容器规格信息和所述容器数量信息,从所述GPU设备中确定所述目标GPU设备。
7.根据权利要求1所述的方法,其特征在于,所述根据所述目标GPU设备信息和所述资源需求信息,创建GPU容器包括:
调用容器创建函数;
根据所述目标GPU设备信息、所述资源需求信息以及所述容器创建函数,创建所述GPU容器。
8.一种GPU容器创建装置,其特征在于,包括:
容器创建请求接收模块,用于接收GPU容器创建请求;所述GPU容器创建请求包括GPU资源需求信息;
卡量信息获取模块,用于获取GPU设备集群中每个GPU设备的卡量信息;
目标GPU设备确定模块,用于根据所述GPU资源需求信息和每个GPU设备的卡量信息,从所述GPU设备集群中确定目标GPU设备;
目标GPU设备信息获取模块,用于从内存中获取所述目标GPU设备对应的目标GPU设备信息;
GPU容器创建模块,用于根据所述目标GPU设备信息和所述资源需求信息,创建GPU容器。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令以实现权利要求1至7中任意一项所述的方法。
10.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011632520.6A CN114691350A (zh) | 2020-12-31 | 2020-12-31 | Gpu容器创建方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011632520.6A CN114691350A (zh) | 2020-12-31 | 2020-12-31 | Gpu容器创建方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114691350A true CN114691350A (zh) | 2022-07-01 |
Family
ID=82134165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011632520.6A Pending CN114691350A (zh) | 2020-12-31 | 2020-12-31 | Gpu容器创建方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114691350A (zh) |
-
2020
- 2020-12-31 CN CN202011632520.6A patent/CN114691350A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111031336B (zh) | 直播榜单数据更新方法、装置、电子设备和存储介质 | |
CN111143462A (zh) | 数据导出的方法、装置、计算机设备和存储介质 | |
CN110267060B (zh) | 视频文件存储注入方法、装置、计算机设备和存储介质 | |
CN110704177A (zh) | 计算任务处理方法、装置、计算机设备和存储介质 | |
US20220405147A1 (en) | Task processing method, electronic device and storage medium | |
CN111026988A (zh) | 一种页面加载的方法、装置、系统及计算机设备 | |
CN111880864B (zh) | 基于http的模型调用方法、系统、计算机设备和存储介质 | |
CN113315981B (zh) | 任务数据更新方法、装置、系统、电子设备及存储介质 | |
CN113610558A (zh) | 资源分发方法、装置、电子设备及存储介质 | |
CN112783866A (zh) | 数据读取方法、装置、计算机设备和存储介质 | |
CN112989147A (zh) | 数据信息的推送方法、装置、计算机设备及存储介质 | |
CN114691350A (zh) | Gpu容器创建方法、装置、电子设备及存储介质 | |
CN115361589B (zh) | 页面展示方法、装置、电子设备及存储介质 | |
CN113469735B (zh) | 资源处理方法、装置、电子设备及存储介质 | |
CN114553786B (zh) | 网络请求熔断方法、装置、计算机设备和存储介质 | |
CN104219272A (zh) | 缓存更新方法、终端和系统 | |
CN112364251B (zh) | 数据推荐方法、装置、电子设备及存储介质 | |
CN114064100A (zh) | 配置信息处理方法、系统和装置 | |
CN107220818B (zh) | 网上支付方法及装置 | |
CN114217919A (zh) | 任务处理方法、装置、电子设备及存储介质 | |
CN112688980B (zh) | 资源分发方法、装置、计算机设备 | |
CN110196724B (zh) | 文件加载方法、终端、服务器、计算机设备及存储介质 | |
CN113645064B (zh) | 任务下发方法、装置、电子设备及存储介质 | |
CN112463836A (zh) | 基于Django框架的数据查询方法、装置、计算机设备和介质 | |
CN112436953B (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 |