GPU的命令处理方法、装置、电子设备和存储介质与流程

文档序号:34752490发布日期:2023-07-13 02:13阅读:21来源:国知局
GPU的命令处理方法、装置、电子设备和存储介质与流程

本公开涉及计算机,尤其涉及一种gpu的命令处理方法、gpu的命令处理装置、电子设备、存储介质和程序产品。


背景技术:

1、gpu(graphic processing unit,图形处理器),又称显示核心、视觉处理器、显示芯片,是一种能够在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机)等上做图像和图形相关运算工作的处理器。

2、gpu最初是作为专门用于加速特定3d(3dimensions,三维)渲染任务的asic(application specific integrated circuit,专用集成电路)开发而成的。随着时间的推移,这些功能固定的引擎变得更加可编程化、更加灵活。尽管图形处理和当下视觉效果越来越真实的顶级游戏仍是gpu的主要功能,但同时,它也已经演化为用途更普遍的并行处理器,能够处理越来越多的应用程序。

3、目前,通常通过提高gpu的硬件性能来提高gpu的命令处理效率。如何在有限的gpu资源下,提高gpu的命令处理效率,是亟待解决的技术问题。


技术实现思路

1、本公开提供了一种gpu的命令处理技术方案。

2、根据本公开的一方面,提供了一种gpu的命令处理方法,包括:

3、获取gpu的负载信息;

4、响应于根据所述gpu的负载信息确定所述gpu处于预设的高负载状态,将所述gpu对应的命令请求队列中的至少部分命令分发给cpu;其中,所述cpu用于响应于接收到所述gpu对应的命令请求队列中的任一命令,通过所述cpu中的gpu模拟程序处理所述命令。

5、通过获取gpu的负载信息,响应于根据所述gpu的负载信息确定所述gpu处于预设的高负载状态,将所述gpu对应的命令请求队列中的至少部分命令分发给cpu,其中,所述cpu用于响应于接收到所述gpu对应的命令请求队列中的任一命令,通过所述cpu中的gpu模拟程序处理所述命令,由此在gpu处于高负载状态时,能够将gpu的一部分负载卸载到cpu侧,利用cpu中的gpu模拟程序处理gpu对应的命令请求队列中的至少部分命令,从而在gpu处于高负载状态时,能够通过cpu分担gpu的负载,利用cpu提高gpu对应的命令请求队列的处理效率,进而不仅能够在有限的gpu资源下提高电子设备的综合性能,还能够提高cpu的利用率。

6、在一种可能的实现方式中,所述预设的高负载状态包括第一预设高负载状态;

7、所述响应于根据所述gpu的负载信息确定所述gpu处于预设的高负载状态,将所述gpu对应的命令请求队列中的至少部分命令分发给cpu,包括:

8、响应于根据所述gpu的负载信息,确定所述gpu处于所述第一预设高负载状态,将所述gpu对应的命令请求队列中的至少部分命令分发给所述cpu。

9、在该实现方式中,通过响应于根据所述gpu的负载信息,确定所述gpu处于所述第一预设高负载状态,将所述gpu对应的命令请求队列中的至少部分命令分发给所述cpu,由此可以在gpu的负载过高情况下,利用cpu处理gpu对应的命令请求队列中的至少部分命令,从而能够在有限的gpu资源下提高整机性能。

10、在一种可能的实现方式中,所述gpu的负载信息包括所述gpu的负载率;

11、所述方法还包括:

12、响应于所述gpu的负载率大于或等于第一预设负载率,确定所述gpu处于所述第一预设高负载状态。

13、在该实现方式中,通过响应于所述gpu的负载率大于或等于第一预设负载率,确定所述gpu处于所述第一预设高负载状态,由此能够基于第一预设负载率准确地判断gpu是否处于第一预设高负载状态。

14、在一种可能的实现方式中,所述预设的高负载状态包括第二预设高负载状态;

15、所述响应于根据所述gpu的负载信息确定所述gpu处于预设的高负载状态,将所述gpu对应的命令请求队列中的至少部分命令分发给cpu,包括:

16、获取所述gpu对应的命令请求队列中的命令的数量;

17、响应于根据所述gpu的负载信息和所述数量,确定所述gpu处于所述第二预设高负载状态,将所述gpu对应的命令请求队列中的至少部分命令分发给所述cpu。

18、在该实现方式中,通过获取所述gpu对应的命令请求队列中的命令的数量,并响应于根据所述gpu的负载信息和所述数量,确定所述gpu处于所述第一预设高负载状态,将所述gpu对应的命令请求队列中的至少部分命令分发给所述cpu,由此可以在gpu的负载较高且gpu对应的命令请求队列中的命令的数量较大的情况下,利用cpu处理gpu对应的命令请求队列中的至少部分命令,从而能够在有限的gpu资源下提高整机性能。

19、在一种可能的实现方式中,所述gpu的负载信息包括所述gpu的负载率;

20、所述方法还包括:

21、响应于所述gpu的负载率大于或等于第二预设负载率,且所述数量大于或等于预设数量,确定所述gpu处于所述第二预设高负载状态。

22、在该实现方式中,通过响应于所述gpu的负载率大于或等于第二预设负载率,且所述数量大于或等于预设数量,确定所述gpu处于所述第二预设高负载状态,由此能够基于第二预设负载率和预设数量准确地判断gpu是否处于第二预设高负载状态。

23、在一种可能的实现方式中,所述响应于根据所述gpu的负载信息确定所述gpu处于预设的高负载状态,将所述gpu对应的命令请求队列中的至少部分命令分发给cpu,包括:

24、获取所述cpu的负载信息;

25、响应于根据所述gpu的负载信息确定所述gpu处于预设的高负载状态,且根据所述cpu的负载信息确定所述cpu处于预设的低负载状态,将所述gpu对应的命令请求队列中的至少部分命令分发给cpu。

26、在该实现方式中,通过获取所述cpu的负载信息,并响应于根据所述gpu的负载信息确定所述gpu处于预设的高负载状态,且根据所述cpu的负载信息确定所述cpu处于预设的低负载状态,将所述gpu对应的命令请求队列中的至少部分命令分发给cpu,由此在gpu处于高负载状态且cpu处于预设的低负载状态时,能够将gpu的一部分负载卸载到cpu侧,通过cpu分担gpu的负载,这样能够在gpu高负载的情况下提高硬件的使用效率,从而能够在有限的gpu资源下提高电子设备的综合性能。

27、在一种可能的实现方式中,所述cpu的负载信息包括所述cpu的负载率;

28、所述方法还包括:

29、响应于所述cpu的负载率小于或等于第三预设负载率,确定所述cpu处于所述预设的低负载状态,其中,所述第三预设负载率小于第一预设负载率,且所述第三预设负载率小于第二预设负载率。

30、在该实现方式中,通过响应于所述cpu的负载率小于或等于第三预设负载率,确定所述cpu处于所述预设的低负载状态,其中,所述第三预设负载率小于第一预设负载率,且所述第三预设负载率小于第二预设负载率,由此能够基于第三预设负载率准确地判断cpu是否处于预设的低负载状态。

31、在一种可能的实现方式中,所述将所述gpu对应的命令请求队列中的至少部分命令分发给所述cpu,包括:

32、通过中断将所述gpu对应的命令请求队列中的至少部分命令分发给所述cpu。

33、在该实现方式中,通过中断将所述gpu对应的命令请求队列中的至少部分命令分发给所述cpu,由此cpu能够及时获取到gpu对应的命令请求队列中的命令,从而有助于cpu更及时地处理gpu对应的命令请求队列中的命令。

34、在一种可能的实现方式中,所述方法还包括:

35、响应于来自于所述cpu的命令处理结果,将所述命令处理结果发送给所述gpu。

36、在该实现方式中,响应于来自于所述cpu的命令处理结果,将所述命令处理结果发送给所述gpu,由此能够与gpu进行命令处理进度的同步。

37、在一种可能的实现方式中,所述方法还包括:

38、将来自于所述cpu的命令处理结果写入所述gpu对应的命令响应队列中;

39、向所述cpu发送命令完成消息。

40、在该实现方式中,命令处理器在将来自于所述cpu的任一命令对应的命令处理结果写入所述gpu对应的命令响应队列中之后,可以向cpu发送命令完成消息,以通知cpu该命令已完成。

41、在一种可能的实现方式中,所述cpu还用于响应于任一命令对应的命令完成消息,通知图形驱动所述命令已完成。

42、在该实现方式中,通过cpu响应于任一命令对应的命令完成消息,通知图形驱动所述命令已完成,由此图形驱动可以执行下一步的操作。

43、在一种可能的实现方式中,所述gpu对应的命令请求队列中的命令包括图像渲染命令;

44、所述方法还包括:

45、将所述gpu处理所述图像渲染命令得到的画面帧和所述gpu模拟程序处理所述图像渲染命令得到的画面帧按顺序推入帧队列中。

46、在该实现方式中,通过将所述gpu处理所述图像渲染命令得到的画面帧和所述gpu模拟程序处理所述图像渲染命令得到的画面帧按顺序推入帧队列中,由此能够使gpu和cpu中的gpu模拟程序渲染得到的画面帧按顺序显示。

47、根据本公开的一方面,提供了一种gpu的命令处理装置,包括:

48、获取模块,用于获取gpu的负载信息;

49、分发模块,用于响应于根据所述gpu的负载信息确定所述gpu处于预设的高负载状态,将所述gpu对应的命令请求队列中的至少部分命令分发给cpu;其中,所述cpu用于响应于接收到所述gpu对应的命令请求队列中的任一命令,通过所述cpu中的gpu模拟程序处理所述命令。

50、在一种可能的实现方式中,所述预设的高负载状态包括第一预设高负载状态;

51、所述分发模块用于:

52、响应于根据所述gpu的负载信息,确定所述gpu处于所述第一预设高负载状态,将所述gpu对应的命令请求队列中的至少部分命令分发给所述cpu。

53、在一种可能的实现方式中,所述gpu的负载信息包括所述gpu的负载率;

54、所述装置还包括:

55、第一确定模块,用于响应于所述gpu的负载率大于或等于第一预设负载率,确定所述gpu处于所述第一预设高负载状态。

56、在一种可能的实现方式中,所述预设的高负载状态包括第二预设高负载状态;

57、所述分发模块用于:

58、获取所述gpu对应的命令请求队列中的命令的数量;

59、响应于根据所述gpu的负载信息和所述数量,确定所述gpu处于所述第二预设高负载状态,将所述gpu对应的命令请求队列中的至少部分命令分发给所述cpu。

60、在一种可能的实现方式中,所述gpu的负载信息包括所述gpu的负载率;

61、所述装置还包括:

62、第二确定模块,用于响应于所述gpu的负载率大于或等于第二预设负载率,且所述数量大于或等于预设数量,确定所述gpu处于所述第二预设高负载状态。

63、在一种可能的实现方式中,所述分发模块用于:

64、获取所述cpu的负载信息;

65、响应于根据所述gpu的负载信息确定所述gpu处于预设的高负载状态,且根据所述cpu的负载信息确定所述cpu处于预设的低负载状态,将所述gpu对应的命令请求队列中的至少部分命令分发给cpu。

66、在一种可能的实现方式中,所述cpu的负载信息包括所述cpu的负载率;

67、所述装置还包括:

68、第三确定模块,用于响应于所述cpu的负载率小于或等于第三预设负载率,确定所述cpu处于所述预设的低负载状态,其中,所述第三预设负载率小于第一预设负载率,且所述第三预设负载率小于第二预设负载率。

69、在一种可能的实现方式中,所述分发模块用于:

70、通过中断将所述gpu对应的命令请求队列中的至少部分命令分发给所述cpu。

71、在一种可能的实现方式中,所述装置还包括:

72、第一发送模块,用于响应于来自于所述cpu的命令处理结果,将所述命令处理结果发送给所述gpu。

73、在一种可能的实现方式中,所述装置还包括:

74、写入模块,用于将来自于所述cpu的命令处理结果写入所述gpu对应的命令响应队列中;

75、第二发送模块,用于向所述cpu发送命令完成消息。

76、在一种可能的实现方式中,所述cpu还用于响应于任一命令对应的命令完成消息,通知图形驱动所述命令已完成。

77、在一种可能的实现方式中,所述gpu对应的命令请求队列中的命令包括图像渲染命令;

78、所述装置还包括:

79、推入模块,用于将所述gpu处理所述图像渲染命令得到的画面帧和所述gpu模拟程序处理所述图像渲染命令得到的画面帧按顺序推入帧队列中。

80、根据本公开的一方面,提供了一种电子设备,包括cpu、gpu和命令处理器;

81、所述命令处理器用于获取所述gpu的负载信息,并响应于根据所述gpu的负载信息确定所述gpu处于预设的高负载状态,将所述gpu对应的命令请求队列中的至少部分命令分发给cpu;

82、所述cpu用于响应于接收到所述gpu对应的命令请求队列中的任一命令,通过所述cpu中的gpu模拟程序处理所述命令。

83、根据本公开的一方面,提供了一种电子设备,包括:一个或多个处理器;用于存储可执行指令的存储器;其中,所述一个或多个处理器被配置为调用所述存储器存储的可执行指令,以执行上述方法。

84、根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。

85、根据本公开的一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述方法。

86、在本公开实施例中,通过获取gpu的负载信息,响应于根据所述gpu的负载信息确定所述gpu处于预设的高负载状态,将所述gpu对应的命令请求队列中的至少部分命令分发给cpu,其中,所述cpu用于响应于接收到所述gpu对应的命令请求队列中的任一命令,通过所述cpu中的gpu模拟程序处理所述命令,由此在gpu处于高负载状态时,能够将gpu的一部分负载卸载到cpu侧,利用cpu中的gpu模拟程序处理gpu对应的命令请求队列中的至少部分命令,从而在gpu处于高负载状态时,能够通过cpu分担gpu的负载,利用cpu提高gpu对应的命令请求队列的处理效率,进而不仅能够在有限的gpu资源下提高电子设备的综合性能,还能够提高cpu的利用率。

87、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。

88、根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

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