一种基于GPU指令转发的多核协同渲染处理方法与流程

文档序号:34389973发布日期:2023-06-08 09:28阅读:80来源:国知局
一种基于GPU指令转发的多核协同渲染处理方法与流程

本发明涉及但不限于航空电子系统中图形驱动,尤指一种基于gpu指令转发的多核协同渲染处理方法。


背景技术:

1、随着机载显示的复杂度和分辨率的不断提升,图形系统也更加复杂和庞大,通过对典型机载图形渲染场景进行分析,发现在很多绘制场景下性能瓶颈卡在cpu端,即cpu已满负荷运行,而gpu经常处于空闲状态,特别是在中文汉字多的画面场景下这种问题更为突出。

2、由于工艺的限制,单核cpu的性能已到瓶颈,靠单核cpu的性能提升已无法满足未来高性能图形渲染需求,只有充分利用现有的多核平台,发挥多核的性能,才能有效地保证应用程序的基本性能需要。


技术实现思路

1、本发明的目的:本发明实施例提供了一种基于gpu指令转发的多核协同渲染处理方法,通过有效利用处理器的多核能力,解决传统单线程图形渲染带来的cpu性能瓶颈的问题,从而有效提升机载图形绘制性能。

2、本发明的技术方案:本发明实施例提供一种基于gpu指令转发的多核协同渲染处理方法,包括:用于执行多核协同渲染的硬件包括多核cpu和gpu,软件包括支持多核分区的操作系统、图形驱动软件和图形应用软件,所述多核cpu上运行有多核分区操作系统,每个分区操作系统分配有独立的cpu核、独立的内存空间以及独立外设;每个分区操作系统上运行有图形应用软件和gpu的用户态驱动软件,且所述图形应用软件包括运行在各分区操作系统中的用户态驱动软件和运行在操作系统虚拟化层的gpu管理模块,所述gpu管理模块向各分区操作系统提供gpu命令“转发”服务;所述多核协同渲染处理方法,包括:

3、步骤1,每个分区操作系统中,用户态驱动软件建立独立的gpu命令缓冲区和数据缓冲区;

4、步骤2,每个分区操作系统中,图形应用软件调用用户态驱动软件中的图形api时,用户态驱动软件将所调用的图形api转换成gpu命令和数据,分别缓存到用于存放gpu命令和数据的gpu命令缓冲区和数据缓冲区;

5、步骤3,每个分区操作系统中,当图形应用软件调用图形api触发gpu命令提交时,本分区操作系统中的用户态驱动软件按照约定协议向gpu管理模块中的gpu命令“转发”服务申请gpu命令提交;

6、步骤4,gpu管理模块控制操作系统的共享存储区中环形缓冲区向gpu传送gpu命令,以通过gpu执行所述gpu命令的图形渲染。

7、可选地,如上所述的基于gpu指令转发的多核协同渲染处理方法中,

8、所述gpu管理模块向各分区操作系统提供gpu命令“转发”服务,使得各分区操作系统向gpu提交的gpu命令都通过gpu管理模块的gpu命令“转发”服务传送。

9、可选地,如上所述的基于gpu指令转发的多核协同渲染处理方法中,

10、所述步骤3中,所述图形应用软件调用图形api触发gpu命令提交具有以下情况:

11、情况1,图形应用软件调用图形api时,由用户态驱动软件将所调用的图形api转换出的特定gpu命令触发gpu命令提交;

12、情况2,当图形应用软件调用图形api时,由用户态驱动软件将所调用的图形api转换出的gpu命令和数据,将gpu命令缓冲区或数据缓冲区填满时,触发gpu命令提交。

13、可选地,如上所述的基于gpu指令转发的多核协同渲染处理方法中,

14、所述步骤3中,每个分区操作系统中,当图形应用软件调用图形api触发gpu命令提交之后,具体通过调用gpu管理模块提供的gpu命令“转发”服务,由gpu命令“转发”服务将用户态驱动软件提交的gpu命令缓存在环形缓冲区内。

15、可选地,如上所述的基于gpu指令转发的多核协同渲染处理方法中,所述gpu命令“转发”服务将用户态驱动软件提交的gpu命令缓存在环形缓冲区内之后,

16、所述gpu命令“转发”服务根据各分区操作系统提交的gpu命令的优先级进行调度,以控制gpu分时对各分区操作系统提交的gpu命令进行图形渲染。

17、可选地,如上所述的基于gpu指令转发的多核协同渲染处理方法中,还包括:

18、gpu管理模块通过对各分区操作系统中的gpu负荷进行监控,以实现各分区操作系统中gpu命令的负载均衡。

19、可选地,如上所述的基于gpu指令转发的多核协同渲染处理方法中,

20、所述步骤2中,gpu命令和数据的实际拷贝操作,都是通过指针传递的,以保证命令转发的及时性。

21、可选地,如上所述的基于gpu指令转发的多核协同渲染处理方法中,还包括:

22、当gpu执行图形渲染的状态与当前分区操作系统的状态不一致时,由gpu命令“转发”服务将gpu的执行状态切换至当前分区操作系统的渲染上下文,然后从分区操作系统的gpu命令缓冲区执行gpu命令,实现gpu命令提交,使得gpu执行各分区的图形处理任务。

23、可选地,如上所述的基于gpu指令转发的多核协同渲染处理方法中,

24、所述gpu管理模块的服务进程默认处于静默状态,当各分区操作系统有gpu命令提交时唤醒gpu管理模块,处理完成gpu命令提交后继续处于静默状态。

25、可选地,如上所述的基于gpu指令转发的多核协同渲染处理方法中,还包括:

26、gpu渲染出的图形结果通过视频控制器传输到不同显示器进行显示。

27、本发明的有益效果:本发明实施例提供了一种基于gpu指令转发的多核协同渲染处理方法,具体为基于gpu虚拟化的共享访问方式,通过在多核分区操作系统的虚拟化层增加gpu管理模块的方式,不仅实现gpu功能的多核共享,也能在gpu资源的直接访问方面实现gpu的多核共享。采用本发明实施例提供的多核协同渲染处理方法能够突破单核算力瓶颈,提高gpu轻负载的图形应用的性能,提高系统处理图形应用的集成度。相比前述三种共享访问方式,驻留在不同cpu核上的图形任务间的影响能有效控制,能避免单个图形处理任务的故障对其它任务的影响;能避免重负载的低优先级任务对轻负载的高优先级任务的灾难性影响,运行在各个cpu核上的图形应用可以实现隔离,更好的保障安全性与可靠性,实用性非常好。

28、进一步地,本发明实施例提供的技术方案不依赖于具体的硬件平台,适应性和灵活性好,该多核协同渲染处理方法的实现简单、方便易用,适用于各种多核协同渲染的场合;且推广性强,将会有广阔的市场使用空间和显著的经济效益。



技术特征:

1.一种基于gpu指令转发的多核协同渲染处理方法,其特征在于,用于执行多核协同渲染的硬件包括多核cpu和gpu,软件包括支持多核分区的操作系统、图形驱动软件和图形应用软件,所述多核cpu上运行有多核分区操作系统,每个分区操作系统分配有独立的cpu核、独立的内存空间以及独立外设;每个分区操作系统上运行有图形应用软件和gpu的用户态驱动软件,且所述图形应用软件包括运行在各分区操作系统中的用户态驱动软件和运行在操作系统虚拟化层的gpu管理模块,所述gpu管理模块向各分区操作系统提供gpu命令“转发”服务;所述多核协同渲染处理方法,包括:

2.根据权利要求1所述的基于gpu指令转发的多核协同渲染处理方法,其特征在于,

3.根据权利要求2所述的基于gpu指令转发的多核协同渲染处理方法,其特征在于,

4.根据权利要求2所述的基于gpu指令转发的多核协同渲染处理方法,其特征在于,

5.根据权利要求4所述的基于gpu指令转发的多核协同渲染处理方法,其特征在于,所述gpu命令“转发”服务将用户态驱动软件提交的gpu命令缓存在环形缓冲区内之后,

6.根据权利要求1~5中任一项所述的基于gpu指令转发的多核协同渲染处理方法,其特征在于,还包括:

7.根据权利要求1~5中任一项所述的基于gpu指令转发的多核协同渲染处理方法,其特征在于,

8.根据权利要求1~5中任一项所述的基于gpu指令转发的多核协同渲染处理方法,其特征在于,还包括:

9.根据权利要求1~5中任一项所述的基于gpu指令转发的多核协同渲染处理方法,其特征在于,

10.根据权利要求1~5中任一项所述的基于gpu指令转发的多核协同渲染处理方法,其特征在于,还包括:


技术总结
本发明实施例公开了一种基于GPU指令转发的多核协同渲染处理方法,包括:每个分区操作系统中,用户态驱动软件建立独立的GPU命令缓冲区和数据缓冲区;图形应用软件调用图形API时,用户态驱动软件将图形API转换成GPU命令和数据,分别缓存到GPU命令缓冲区和数据缓冲区;当图形应用软件调用图形API触发GPU命令提交时,用户态驱动软件向GPU命令“转发”服务申请GPU命令提交;由GPU管理模块控制共享存储区中环形缓冲区向GPU传送GPU命令,以通过GPU执行GPU命令的图形渲染。本发明实施例提供的技术方案通过有效利用处理器的多核能力,解决传统单线程图形渲染带来的CPU性能瓶颈的问题,从而有效提升机载图形绘制性能。

技术研发人员:廖科,曲国远,郭文骏
受保护的技术使用者:中国航空无线电电子研究所
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1