GPU共享方法、装置、电子设备及存储介质与流程

文档序号:37645742发布日期:2024-04-18 18:12阅读:19来源:国知局
GPU共享方法、装置、电子设备及存储介质与流程

本发明涉及计算机领域,具体涉及gpu共享方法、装置、电子设备及存储介质。


背景技术:

1、高性能计算主要在生命科学、制造业仿真cae、化工、航空航天、材料、气象等多个行业具有较为广泛和重要的作用,在这些领域中,一般都会涉及大量的运算,并且要求在一定的时间内完成计算任务,单靠一台通用的服务器节点是无法满足要求的,一般都会使用多台高性能服务器,通过高速网络互连,形成高性能服务器集群,以极高速度并行处理大量数据。

2、然而,现有技术中只能维护一个待处理的用户作业脚本队列,并管理待处理的用户作业的整体资源利用,并不能做到根据计算任务需求将服务器集群中的gpu资源进行共享。


技术实现思路

1、有鉴于此,本发明提供了一种gpu共享方法、装置、电子设备及存储介质,以解决现有技术不能做到根据计算任务需求将服务器集群中的gpu资源进行共享的问题。

2、第一方面,本发明提供了一种gpu共享方法,其特征在于,方法包括:

3、获取服务器集群中各个服务器对应的gpu资源信息;gpu资源信息包括各个服务器对应的gpu的gpu型号、gpu数量、gpu在服务器上的设备名以及gpu剩余算力值的大小;

4、接收用户提交的至少一个待处理作业对应的作业请求;

5、根据各服务器对应的gpu资源信息,从服务器集群中为各待处理作业分配目标gpu;

6、利用待处理作业对应的目标gpu完成待处理作业。

7、本技术实施例提供的gpu共享方法,获取服务器集群中各个服务器对应的gpu资源信息,从而可以保证准确地掌握各个服务器中的gpu的信息,便于对服务器集群中的各个gpu进行统一调度。然后,接收用户提交的至少一个待处理作业对应的作业请求。根据各服务器对应的gpu资源信息,从服务器集群中为各待处理作业分配目标gpu,保证了为待处理作业分配的目标gpu准确,且满足完成待处理作业的需求。然后,利用待处理作业对应的目标gpu完成待处理作业,保证了待处理作业可以完成,且实现了对服务器集群中的gpu进行统一管理。上述方法,可以同时接收用户提交的至少一个待处理作业对应的作业请求,且可以同时为各个待处理作业分配目标gpu,而不是维护一个待处理作业的脚本队列,并管理待处理作业对应的整体资源利用,因此实现了根据计算任务需求将服务器集群中的gpu资源进行共享,且实现了对服务器集群中的gpu算力资源进行精细化切分和调度。

8、在一种可选的实施方式中,根据各服务器对应的gpu资源信息,从服务器集群中为各待处理作业分配目标gpu,包括:

9、针对各待处理作业,对待处理作业对应的作业请求进行读取,获取作业请求对应的作业信息;

10、根据作业信息以及各服务器对应的gpu资源信息,从服务器集群中为待处理作业分配目标gpu。

11、本技术实施例提供的gpu共享方法,针对各待处理作业,对待处理作业对应的作业请求进行读取,获取作业请求对应的作业信息,保证了获取到的作业请求对应的作业信息的准确性。然后,根据作业信息以及各服务器对应的gpu资源信息,从服务器集群中为待处理作业分配目标gpu,保证了为待处理作业分配目标gpu的准确性,且满足完成待处理作业的需求。

12、在一种可选的实施方式中,作业信息中包括完成待处理作业对应的所需算力值;根据作业信息以及各服务器对应的gpu资源信息,从服务器集群中为各待处理作业分配目标gpu,包括:

13、对作业请求进行读取,获取作业信息中包括的完成待处理作业对应的所需算力值;

14、根据gpu资源信息,从服务器集群中确定剩余算力值大于或者等于所需算力值的第一备用gpu;

15、获取第一备用gpu的数量;

16、当第一备用gpu的数量小于第一数量阈值时,从各第一备用gpu中选择剩余算力值最小的第一备用gpu为目标gpu;

17、当第一备用gpu的数量大于或者等于第一数量阈值时,从各第一备用gpu中选择剩余算力值最大的第一备用gpu为目标gpu;

18、将目标gpu分配待处理作业。

19、本技术实施例提供的gpu共享方法,作业信息中包括完成待处理作业对应的所需算力值;对作业请求进行读取,获取作业信息中包括的完成待处理作业对应的所需算力值,保证获取到的待处理作业对应的所需算力值的准确性。然后,根据gpu资源信息,从服务器集群中确定剩余算力值大于或者等于所需算力值的第一备用gpu,保证了确定的第一备用gpu均可以满足待处理作业的需求。获取第一备用gpu的数量,当第一备用gpu的数量小于第一数量阈值时,从各第一备用gpu中选择剩余算力值最小的第一备用gpu为目标gpu,在一定程度上减少了gpu资源碎片化的情况,从而可以将剩余算力值较大的第一备用gpu留给其他所需算力值较大的待处理作业。当第一备用gpu的数量大于或者等于第一数量阈值时,从各第一备用gpu中选择剩余算力值最大的第一备用gpu为目标gpu。在服务器集群中gpu资源充足的情况下,使得待处理作业可以分配到更多的资源,提高服务器集群中gpu资源的利用效率,避免服务器集群中gpu资源闲置浪费,且提高了待处理作业处理速度,减少了处理待处理作业所用时间。然后,将目标gpu分配待处理作业,保证了待处理作业完成。

20、在一种可选的实施方式中,作业信息中包括完成待处理作业对应的所需gpu型号以及所需算力值;根据作业信息以及各服务器对应的gpu资源信息,从服务器集群中为各待处理作业分配目标gpu,包括:

21、对作业请求进行读取,获取作业信息中包括的完成待处理作业对应的所需gpu型号以及所需算力值;

22、根据所需gpu型号,从服务器集群中确定与所需gpu型号相同的候选gpu;

23、根据所需算力值,从各候选gpu中确定剩余算力值大于或者等于所需算力值的第二备用gpu;

24、当第二备用gpu的数量小于第一数量阈值时,从各第二备用gpu中选择剩余算力值最小的第二备用gpu为目标gpu;

25、当第二备用gpu的数量大于或者等于第一数量阈值时,从各第二备用gpu中选择剩余算力值最大的第二备用gpu为目标gpu;

26、将目标gpu分配待处理作业。

27、本技术实施例提供的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分配待处理作业,保证了待处理作业完成。

28、在一种可选的实施方式中,作业信息中还包括待处理作业对应的优先级,方法还包括:

29、当各候选gpu的剩余算力值均小于所需算力值时,获取各候选gpu当前正在处理的进行中作业的优先级以及占用算力值;

30、根据进行中作业对应的占用算力值,从进行中作业中选择占用算力值大于所需算力值的候选进行中作业;

31、根据各候选进行中作业对应的优先级,从各候选进行中作业中选择优先级最低的目标进行中作业;

32、将目标进行中作业的优先级与待处理作业的优先级进行对比;

33、当目标进行中作业的优先级低于待处理作业的优先级时,将目标进行中作业挂起,释放目标进行中作业对应的占用算力值,并将目标进行中作业对应的gpu作为目标gpu分配给待处理作业;

34、当目标进行中作业的优先级高于或者等于待处理作业的优先级时,将待处理作业挂起;

35、根据各候选进行中作业的作业进度,预估处理待处理作业的预测时间;

36、将预测时间返回给用户。

37、本技术实施例提供的gpu共享方法,作业信息中还包括待处理作业对应的优先级,当各候选gpu的剩余算力值均小于所需算力值时,获取各候选gpu当前正在处理的进行中作业的优先级以及占用算力值。然后,根据进行中作业对应的占用算力值,从进行中作业中选择占用算力值大于所需算力值的候选进行中作业,保证了假设释放候选进行中作业之后,得到的释放算力值可以满足待处理作业的算力值需求。根据各候选进行中作业对应的优先级,从各候选进行中作业中选择优先级最低的目标进行中作业;将目标进行中作业的优先级与待处理作业的优先级进行对比;当目标进行中作业的优先级低于待处理作业的优先级时,将目标进行中作业挂起,释放目标进行中作业对应的占用算力值,并将目标进行中作业对应的gpu作为目标gpu分配给待处理作业。上述方法,当待处理作业的优先级较高时,使得待处理作业可以及时被完成。当目标进行中作业的优先级高于或者等于待处理作业的优先级时,将待处理作业挂起;根据各候选进行中作业的作业进度,预估处理待处理作业的预测时间,将预测时间返回给用户。当待处理作业的优先级较低时,可以使得用户清楚的知道处理待处理作业的时间,从而使得用户可以选择是否继续等待处理待处理作业,提高了待处理作业处理的灵活性,不需要将所有的待处理作业全部放入消息队列进行排队处理。

38、在一种可选的实施方式中,作业信息中还包括完成待处理作业对应的所需gpu数量,方法还包括:

39、当所需gpu数量为至少两个时,向待处理作业分配同一服务器上的目标gpu。

40、本技术实施例提供的gpu共享方法,作业信息中还包括完成待处理作业对应的所需gpu数量,当所需gpu数量为至少两个时,向待处理作业分配同一服务器上的目标gpu,避免跨服务器节点访问带来的性能损耗。

41、在一种可选的实施方式中,利用待处理作业对应的目标gpu完成待处理作业,包括;

42、在目标gpu上创建控制组,并设置控制组对于cpu资源和内存资源中的至少一种的限定数值;

43、在目标gpu上创建命名空间,将控制组与命名空间进行绑定;

44、在目标gpu上启动代理进程,将代理进程放入命名空间;

45、在命名空间中启动代理进程,将代理进程的根目录切换到预设目录下;预设目录下包括预设cuda库,预设cuda库用于拦截待处理作业对应的作业进程对cuda库的调用;

46、在代理进程中,调用待处理作业对应的作业进程,并将作业进程对应的cuda上下文绑定到目标gpu中第一预设数量的执行计算单元上,以使在命名空间中完成待处理作业对应的作业进程,且限制作业进程对目标gpu的剩余算力的使用。

47、本技术实施例提供的gpu共享方法,在目标gpu上创建控制组,并设置控制组对于cpu资源和内存资源中的至少一种的限定数值,在目标gpu上创建命名空间,将控制组与命名空间进行绑定。在目标gpu上启动代理进程,将代理进程放入命名空间;在命名空间中启动代理进程,将代理进程的根目录切换到预设目录下,在代理进程中,调用待处理作业对应的作业进程,并将作业进程对应的cuda上下文绑定到目标gpu中第一预设数量的执行计算单元上,以使在命名空间中完成待处理作业对应的作业进程,且限制作业进程对目标gpu的剩余算力的使用。上述方法,通过创建控制组限制待处理作业对应的作业进程对cpu资源以及内存资源的使用量,避免了cpu资源以及内存资源的使用量过大,影响了服务器集群的正常工作。此外通过在命名空间中创建代理进程,然后通过代理进程调用待处理作业对应的作业进程,将作业进程对应的cuda上下文绑定到目标gpu中第一预设数量的执行计算单元上,使得可以在命名空间中完成待处理作业对应的作业进程,使得各个待处理作业之间的隔离性较好,且一个作业进程出错的情况下,不会影响到其他进程的运行。且通过将代理进程的根目录切换到预设目录下,从而可以拦截待处理作业对应的作业进程对cuda库的调用,进而限制了待处理作业对应的作业进程对gpu资源的使用,避免了待处理作业对应的作业进程对gpu资源的使用量过大,影响了其他进程。

48、在一种可选的实施方式中,方法还包括:

49、获取服务器集群中全部gpu对应的当前gpu资源利用率,当当前gpu资源利用率小于预设gpu资源利用率阈值时,扩大第一预设数量,以增加作业进程对应的cuda上下文绑定到执行计算单元的数量;

50、当当前gpu资源利用率大于或者等于预设gpu资源利用率阈值时,减少第一预设数量,以减少作业进程对应的cuda上下文绑定到执行计算单元的数量。

51、本技术实施例提供的gpu共享方法,获取服务器集群中全部gpu对应的当前gpu资源利用率,当当前gpu资源利用率小于预设gpu资源利用率阈值时,扩大第一预设数量,以增加作业进程对应的cuda上下文绑定到执行计算单元的数量,使得待处理作业可以分配到更多的资源,提高服务器集群中gpu资源的利用效率,避免服务器集群中gpu资源闲置浪费,且提高了待处理作业处理速度,减少了处理待处理作业所用时间。当当前gpu资源利用率大于或者等于预设gpu资源利用率阈值时,减少第一预设数量,以减少作业进程对应的cuda上下文绑定到执行计算单元的数量,保证了服务器集群中其他进程的正常运行。

52、在一种可选的实施方式中,方法还包括:

53、获取目标gpu的当前gpu资源使用率;当当前gpu资源使用率大于或者等于预设gpu资源使用率阈值时,扩大第一预设数量,以增加作业进程对应的cuda上下文绑定到执行计算单元的数量。

54、本技术实施例提供的gpu共享方法,获取目标gpu的当前gpu资源使用率;当当前gpu资源使用率大于或者等于预设gpu资源使用率阈值时,扩大第一预设数量,以增加作业进程对应的cuda上下文绑定到执行计算单元的数量,使得待处理作业可以分配到更多的资源,提高服务器集群中gpu资源的利用效率,避免服务器集群中gpu资源闲置浪费,且提高了待处理作业处理速度,减少了处理待处理作业所用时间。

55、第二方面,本发明提供了一种gpu共享装置,其特征在于,装置包括:

56、获取模块,用于获取服务器集群中各个服务器对应的gpu资源信息;gpu资源信息包括各个服务器对应的gpu的gpu型号、gpu数量、gpu在服务器上的设备名以及gpu剩余算力值的大小;

57、接收模块,用于接收用户提交的至少一个待处理作业对应的作业请求;

58、分配模块,用于根据各服务器对应的gpu资源信息,从服务器集群中为各待处理作业分配目标gpu;

59、完成模块,用于利用待处理作业对应的目标gpu完成待处理作业。

60、本技术实施例提供的gpu共享装置,获取服务器集群中各个服务器对应的gpu资源信息,从而可以保证准确地掌握各个服务器中的gpu的信息,便于对服务器集群中的各个gpu进行统一调度。然后,接收用户提交的至少一个待处理作业对应的作业请求。根据各服务器对应的gpu资源信息,从服务器集群中为各待处理作业分配目标gpu,保证了为待处理作业分配的目标gpu准确,且满足完成待处理作业的需求。然后,利用待处理作业对应的目标gpu完成待处理作业,保证了待处理作业可以完成,且实现了对服务器集群中的gpu进行统一管理。上述方法,可以同时接收用户提交的至少一个待处理作业对应的作业请求,且可以同时为各个待处理作业分配目标gpu,而不是维护一个待处理作业的脚本队列,并管理待处理作业对应的整体资源利用,因此实现了根据计算任务需求将服务器集群中的gpu资源进行共享,且实现了对服务器集群中的gpu算力资源进行精细化切分和调度。

61、第三方面,本发明提供了一种电子设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的gpu共享方法。

62、第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的gpu共享方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1