本技术涉及kubernetes云平台,尤其涉及一种gpu资源调用方法、装置、电子设备和存储介质。
背景技术:
1、kubernetes(k8s)云平台作为一个分布式操作系统,可以降低it运维成本,缩短了业务交付周期,同时集成了敏捷开发云、应用管理、弹性伸缩、资源监控、微服务治理等功能的paas平台已逐渐成为业务上云的重要承载平台。因此,kubernetes云平台被广泛应用于各个领域,特别是人工智能(artificial intelligence,简称ai)技术领域。
2、在kubernetes云平台中,普通业务容器基于中央处理器(central processingunit,简称cpu)的算力即可满足需求,而对于ai类业务容器可能需要图形处理器(graphicsprocessing unit,简称gpu)等高算力支撑。由于ai类业务的业务场景的复杂度较高,对于gpu资源调用的效率要求较高。因此,对于ai类业务容器,如何高效管理和调用gpu资源是亟待解决的问题。
技术实现思路
1、本技术实施例提供了一种gpu资源调用方法、装置、电子设备和存储介质,对于不同的ai业务场景均能够高效的进行gpu资源的调用。
2、第一方面,本技术实施例提供了一种gpu资源调用方法,应用于第一电子设备,所述第一电子设备为kubernetes云平台中的设备,所述第一电子设备中包括本地图形处理器gpu资源,所述gpu资源调用方法包括:
3、第一时刻,接收到第一人工智能ai业务的请求,所述第一ai业务的请求中包括第一标识,所述第一标识用于表示所述第一ai业务为需要调用所述本地gpu资源的业务;
4、根据所述第一标识,通过第一ai业务容器调用所述本地gpu资源,所述第一ai业务容器为运行用于处理所述第一ai业务的应用程序的容器;
5、第二时刻,接收到第二ai业务的请求,所述第二ai业务的请求中包括第二标识,所述第二标识用于表示所述第二ai业务为需要对gpu资源进行远程调用业务;
6、根据所述第二标识,在多个异地gpu资源中确定目标异地gpu资源;
7、通过第二ai业务容器远程调用所述目标异地gpu资源,所述第二ai业务容器为运行用于处理所述第二ai业务的应用程序的容器。
8、一种可能的实现方式中,所述根据所述第一标识,通过第一ai业务容器调用本地gpu资源,包括:
9、根据所述第一标识,通过所述第一ai业务容器在kubernetes device plugin组件中获取被劫持的第一接口,所述kubernetes device plugin组件中包括多个ai业务的标识和被劫持的接口的对应关系;
10、通过所述第一ai业务容器调用被劫持的所述第一接口,以调用所述本地gpu资源。
11、一种可能的实现方式中,通过第一ai业务容器调用本地gpu资源,包括:
12、通过所述第一ai业务容器采用时分复用的方式,调用所述本地gpu资源。
13、一种可能的实现方式中,所述根据所述第二标识,通过第二ai业务容器远程调用所述目标异地gpu资源,包括:
14、根据所述第二标识,通过所述第二ai业务容器在所述kubernetes device plugin组件中获取被劫持的第二接口;
15、通过所述第二ai业务容器利用网络,在目标kubernetes服务端中调用被劫持的所述第二接口,以远程调用所述目标异地gpu资源,所述目标kubernetes服务端为所述目标异地gpu资源所处的服务端。
16、一种可能的实现方式中,所述通过第二ai业务容器远程调用目标异地gpu资源,还包括:
17、通过所述第二ai业务容器采用时分复用的方式,远程调用所述目标异地gpu资源。
18、一种可能的实现方式中,所述方法还包括:
19、接收对所述第一ai业务的第一操作;
20、响应于所述第一操作,为所述第一ai业务设置第一标识;
21、接收对所述第二ai业务的第二操作;
22、响应于所述第二操作,为所述第二ai业务设置第二标识。
23、一种可能的实现方式中,所述方法还包括:
24、第三时刻,接收第二电子设备的第三ai业务容器对所述本地gpu资源的远程调用,以将所述本地gpu资源远程调用给所述第三ai业务容器,所述第二电子设备为所述kubernetes云平台中的设备,所述第三ai业务容器中运行有用于处理第三ai业务的应用程序,所述第二电子设备中不包括gpu资源。
25、第二方面,本技术实施例提供了一种gpu资源调用装置,所述gpu资源调用装置包括:
26、接收模块,用于在第一时刻,接收到第一ai业务的请求,所述第一ai业务的请求中包括第一标识,所述第一标识用于表示所述第一ai业务为需要调用本地gpu资源的业务;
27、调用模块,用于根据所述第一标识,通过第一ai业务容器调用本地gpu资源,所述第一ai业务容器为运行用于处理所述第一ai业务的应用程序的容器。
28、所述接收模块,还用于在第二时刻,接收到第二ai业务的请求,所述第二ai业务的请求中包括第二标识,所述第二标识用于表示所述第二ai业务为需要对gpu资源进行远程调用业务。
29、处理模块,用于根据所述第二标识,在多个异地gpu资源中确定目标异地gpu资源。
30、所述调用模块,还用于通过第二ai业务容器远程调用所述目标异地gpu资源,所述第二ai业务容器为运行用于处理所述第二ai业务的应用程序的容器。
31、一种可能的实现方式中,所述调用模块,具体用于根据所述第一标识,通过所述第一ai业务容器在kubernetes device plugin组件中获取被劫持的第一接口,所述kubernetes device plugin组件中包括多个ai业务的标识和被劫持的接口的对应关系;通过所述第一ai业务容器调用被劫持的所述第一接口,以调用所述本地gpu资源。
32、一种可能的实现方式中,所述调用模块,具体用于通过所述第一ai业务容器采用时分复用的方式,调用所述本地gpu资源。
33、一种可能的实现方式中,所述调用模块,具体用于根据所述第二标识,通过所述第二ai业务容器在所述kubernetes device plugin组件中获取被劫持的第二接口;通过所述第二ai业务容器利用网络,在目标kubernetes服务端中调用被劫持的所述第二接口,以远程调用所述目标异地gpu资源,所述目标kubernetes服务端为所述目标异地gpu资源所处的服务端。
34、一种可能的实现方式中,所述调用模块,具体用于通过所述第二ai业务容器采用时分复用的方式,远程调用所述目标异地gpu资源。
35、一种可能的实现方式中,所述接收模块,还用于接收对所述第一ai业务的第一操作。
36、所述处理模块,还用于响应于所述第一操作,为所述第一ai业务设置第一标识。
37、所述接收模块,还用于接收对所述第二ai业务的第二操作。
38、所述处理模块,还用于响应于所述第二操作,为所述第二ai业务设置第二标识。
39、一种可能的实现方式中,所述接收模块,还用于在第三时刻,接收第二电子设备的第三ai业务容器对所述本地gpu资源的远程调用,以将所述本地gpu资源远程调用给所述第三ai业务容器,所述第二电子设备为所述kubernetes云平台中的设备,所述第三ai业务容器中运行有用于处理第三ai业务的应用程序,所述第二电子设备中不包括gpu资源。
40、第三方面,本技术实施例还提供了一种电子设备,该电子设备包括:处理器,以及与所述处理器通信连接的存储器;
41、所述存储器存储计算机执行指令;
42、所述处理器执行所述存储器存储的计算机执行指令,以实现上述第一方面任一种可能的实现方式中所述的方法。
43、第四方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述第一方面任一种可能的实现方式中所述的方法。
44、第五方面,本技术实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,实现上述第一方面任一种可能的实现方式中所述的方法。
45、由此可见,本技术实施例提供了一种gpu资源调用方法、装置、电子设备和存储介质,应用于第一电子设备,第一电子设备为kubernetes云平台中的设备,第一电子设备中包括本地图形处理器gpu资源,该方法包括:第一时刻,接收到第一人工智能ai业务的请求,第一ai业务的请求中包括第一标识,第一标识用于表示第一ai业务为需要调用本地gpu资源的业务;根据第一标识,通过第一ai业务容器调用本地gpu资源,第一ai业务容器为运行用于处理第一ai业务的应用程序的容器;第二时刻,接收到第二ai业务的请求,第二ai业务的请求中包括第二标识,第二标识用于表示第二ai业务为需要对gpu资源进行远程调用业务;根据第二标识,在多个异地gpu资源中确定目标异地gpu资源;通过第二ai业务容器远程调用目标异地gpu资源,第二ai业务容器为运行用于处理第二ai业务的应用程序的容器。这样,可以使得需要调用本地gpu资源的ai业务能够调用本地的gpu资源,需要对gpu资源进行远程调用ai业务可以远程调用异地的gpu资源,可以提升kubernetes云平台的gpu资源的利用率,并且提升gpu资源调用的效率。