收藏 分销(赏)

基于GPU指令转发的虚拟化图形引擎设计及实现.pdf

上传人:自信****多点 文档编号:574693 上传时间:2024-01-02 格式:PDF 页数:5 大小:2.60MB
下载 相关 举报
基于GPU指令转发的虚拟化图形引擎设计及实现.pdf_第1页
第1页 / 共5页
基于GPU指令转发的虚拟化图形引擎设计及实现.pdf_第2页
第2页 / 共5页
基于GPU指令转发的虚拟化图形引擎设计及实现.pdf_第3页
第3页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、07-11.于乐.基于GPU指令转发的虚拟化图形引擎设计及实现J.航空电子技术,2 0 2 3,54(2):王金升,时洋洋,引用格式:廖科,收稿日期:2 0 2 3-0 2-2 AVIONICSTECHNOLOGYVol.54 No.2第54卷第2 期子技术航空电June.220232023年0 6 月D0I:10.12175/j.issn.1006-141X.2023.02.02基于GPU指令转发的虚拟化图形引擎设计及实现廖科1,王金升,时洋洋1,于乐1(1.中国航空无线电电子研究所,上海2 0 0 2 33;2.航空工业第一飞机设计研究院,西安7 10 0 8 9)【摘要】为了满足机载座舱

2、显控系统对图形引擎的性能要求,设计了一种基于半虚拟化的机载图形引擎实现方案,并在嵌入式平台上进行实现和测试.结果表明采用本文设计的虚拟化图形引擎,可以满足多个虚拟机同时使用GPU进行绘制的需求的同时,可以有效发挥多核CPU的性能,在提高了产品集成度的同时,显著提升了机载图形应用的性能。【关键词虚拟化;图形引擎;多核中图分类号TP302;TN40文献标识码A文章编号】10 0 6-141X(2023)02-0007-05Design and Implementation of Virtual Graphics Engine Based onGPU Instruction ForwardingLI

3、AO Ke,WANG Jin-sheng,SHI Yang-yang,YU Le(1.China National Aeronautical Radio Electronics Research Institute,Shanghai 200233,China;2.AVIC The First Aircraft Institute,Xian 710089,China)Abstract:In order to meet the performance requirements of the airborne cockpit display and control system on thegrap

4、hics engine,an implementation scheme of airborne graphics engine based on para-virtualization is designed,implemented and tested on the embedded platform.The results show that the virtual graphics engine designed canmeet the requirements of multiple virtual machines using GPU for rendering at the sa

5、me time.AT the same time,itcan effectively optimizing the performance of multi-core CPUs,and significantly improve the performance of airbornegraphics applications while improving product concentration.Key words:virtualization;graphics engine;multi-core随着机载显示的复杂度和分辨率的不断提升,图形系统也更加复杂和庞大,现有的单线程架构已经难以满足

6、性能需要,只有充分利用现有的多核平台才能有效地保证应用程序的基本性能需要,目前多核平台发展迅猛,国外的主流处理器如T2080、LX2160,国内的FT2000、D 2 0 0 0 等处理器都支持4核和8 核的中央处理器(CPU:Ce n t r a l Pr o c e s s i n gUnit),因此如何有效的利用多核CPU的优势,提高图形煊染性能就成为一个迫切需要解决的问题。为了充分发挥多核处理器的性能,同时又保证系统架构的安全性,多核虚拟化技术应运而生。虚拟化是一种资源管理技术,该技术将计算机的各种实体资源,如处理器、内存、存储、接口资源等,予以抽象、转换后呈现出来,打破实体结构间不可

7、切820233年航空电子技术割的障碍,通过将这些资源虚拟到不同的虚拟机,可以更好地使用这些资源。图形引擎在飞机座舱显控系统中承担着图形加速和显示等职责,为了保证不同座舱内各个显示单元的独立性,传统做法是为每个单元配备一个独立的图形引擎。随着技术的发展,在机载显示对功能性能要求不断提升的同时,对空间和功耗的要求也越来越高,原有的解决方案已经越来越难以满足产品对体积、功耗和性能的要求。虚拟化及多核技术的发展为解决上述难题提供了一种解决方案,通过使用一个多核CPU配合一个独立的图形处理器(GPU:G r a p h i c s Pr o c e s s i n gUnit),可提供虚拟化支持的图形引

8、擎,将单个物理GPU虚拟成多个具备相同功能的vGPU,每个图形引擎拥有自已独立的CPU核心、运行内存空间和操作系统,从而在功能上形成多个虚拟的图形引擎,为不同的显示器提供服务,这样就通过一个图形引擎实现了原有多个图形引擎才能实现的功能,从而提升了系统的集成度,降低了产品的体积和功耗。本文基于机载图形显示对煊染的需求和特点,对几种GPU虚拟化实现技术的优缺点进行分析,选择用半虚拟化方式来实现GPU的虚拟化,在嵌入式平台和嵌入式操作系统上进行了设计实现,并进行了功能性能测试,证明了本方案的有效性。1GPU虚拟化概述GPU的虚拟化方法主要有以下四种:(1)基于图形应用程序编程接口转发的共享访问在应用

9、层次实现GPU资源的共享,基于图形应用程序编程接口(API:A p p l i c a t i o n Pr o g r a mmi n gInterface)转发的共享访问方式包括一个图形API服务器端分区和若干图形API客户端分区,图形API客户端分区上运行图形API转发软件和图形应用软件。图形应用软件处理图形任务时调用的图形API经由图形API转发软件按照约定的协议发往图形API服务器端分区处理。图形API客户端分区上无需图形驱动软件,跟GPU没有直接交联,其运行也跟具体GPU无关,因此图形API客户端分区通用性非常高。但图形API转发方式固有的数据处理量大,应用处理延迟高的问题极难解决

10、。(2)直通方式直通方式又叫透传模式,通过对虚拟机管理系统的配置,将物理GPU设备的外设部件互连接口(一般为PCI/PCIE)直接暴露给虚拟机2,绕过主机的操作系统,使虚拟机中的对应设备驱动能够直接识别并访问相应的物理。使用直通方式实现虚拟化的技术路线中,如果没有GPU硬件层面的支持,一个GPU设备只能被一个虚拟机使用,无法满足虚拟化技术将一个物理设备分割成多个虚拟设备的需求。(3)硬件虚拟化方式硬件虚拟化方式需要GPU硬件的支持,在这种GPU上集成有图形虚拟化管理器3,通过GPU的图形虚拟化管理器能配置为多个虚拟的GPU。处理器核心对这些虚拟GPU的操作原理与独占GPU方式完全一样,该方式优

11、点突出,可以达到硬件级的多分区之间资源隔离,缺点是只能在支持GPU硬件虚拟化和CPU硬件虚拟化的硬件平台上配置虚拟化系统软件才能实施。(4)半虚拟化方式半虚拟化方式是指通过特殊设计的图形驱动程序,配合定制的虚拟机接口设备驱动(一般为PCI),在向虚拟机提供和独占方式基本一致的应用编程接口的同时,提供接近直通模式的传输效率。本文设计的基于GPU指令转发的虚拟化就是半虚拟化的一种实现方案,通过在驱动层面对GPU指令进行管理和转发,以及图形驱动、PCI设备驱动及多核操作系统Hypervisor层的配合,提供了一种高效率的虚拟化图形引擎实现方案。2基于GPU指令转发的虚拟化设计和实现2.1架构设计在图

12、形引擎硬件上运行有GPU虚拟化管理器软件(GPUmanager),内核态的图形驱动软件基于Hypervisor提供的管理接口,通过对多个图形任务的命令流和数据流进行管理,提供多个OPENGL绘制任务共享GPU资源的管理功能,支持用户在多分区中使用同一个GPU设备进行染。如图1所示。GPUManager的工作原理如下:GPTAAan重更以下能十9廖科,等:基于GPU指令转发的虚拟化图形引擎设计及实现第2 期虚拟机1虚拟机2图形应用图形应用GPU驱动GPU驱动客户机客户机操作系统操作系统GPUManagerHypervisor多核CPU+GPU图1GPU虚拟化架构在虚拟化之上,运行有多个虚拟机,以

13、图2 中的虚拟机1和虚拟机2 为例,在每个虚拟机上运行独立的操作系统,GPU驱动软件作为用户态驱动,运作在操作系统之上,对上层图形应用提供OpenGL编程接口,将上层图形应用软件转换为绘制指令和数据,通过Hypervisor层的图形驱动软件的调度和管理,最终送至底层图形引擎硬件进行执行。虚拟OpenGLOpenGL虚拟机1机2CmdsDataCmdsDataHyperCallHyperCallVPCIEVPCIEGPUManageRingbuffer物理GPU图2 GPU虚拟化实现方案相比于传统的vmware采用的复杂厚重Hypervi-sor,这里采用的是一层很薄轻量级虚拟化实现,以适应嵌入

14、式平台对运行效率的要求,在GPU虚拟化的实现中,由于各个分区提交图形指令和数据给虚拟化层时,都是指针传递,没有大量的数据拷贝,因此GPUManager服务软件负荷很轻,可以保证指令“转发”的及时性。2.2具体实现2.2.1系统组成虚拟化图形引擎主要由如下软硬件组成:(1)硬件平台:硬件平台的CPU为多核处理器,GPU为高性能GPU,包括串口、网口在内的硬件环境。在本文描述的硬件平台环境中,只具备一个GPU子卡,多个虚拟机上的图形应用软件共用GPU进行染;(2)虚拟化操作系统:支持多核虚拟化操作系统,为整个硬件平台提供了配置和管理功能;(3)分区操作系统:运行在虚拟化层之上的客户机操作系统,为应

15、用提供了运行在CPU内核上的操作系统环境;(4)客户机应用软件:用户应用相关的图形应用功能软件;(5)虚拟化图形驱动软件,由运行在虚拟化操作系统内核态hypervisor层的GPU驱动软件(GPUManager)和运行在分区操作系统的GPU驱动组成。2.2.2 GPU管理器GPU管理器(GPUmanager)由运行在内核态hypervisor层的一个插件系统实现,该管理器通过对多图形进程虚拟多个GPU的方式,提供多个OPEN-GL绘制线程共享GPU资源的功能,支持用户在多CPU、多OS、多线程环境中使用同一个GPU设备。GPUManager应用场景如下:(1)安全性:GPUManager能阻止

16、发生在某个虚拟机产生的逻辑故障影响其他虚拟机,防止故障扩展。(2)统一性:无论平台配置如何,所有OS上运行的绘制进程都以OpenGL作为绘制API,从而实现各OS上应用的可移植性。(3)并行性:绘制应用可以快速将命令发布到命令缓冲区中,并立即返回到CPU,具体染操作由GPUManager进程处理。借助此管道,可以充分利用多核计算机上的多个进程以及GPU和CPU。GPUManager使用单独的进程来访问GPU设备。我们称此过程为GPU进程(GPUprocess)。GPU进程经过专门设计,可从Hypervsior或分区操作系统中的Kernel访问OPENGLAPI。它通过客户端-服务器模型工作,绘

17、制进程(在多OS或分区操作系统的各分区中运行的代码)不是直接向系统API发出调用,而是对其进行序列化,然后将其放入位于自身和服务器进程之间共享的内存中的环形缓冲区(命令缓冲区)中。GPU服务器(GPUPro-cess(s e r v e r)运行在Hypervsior或分区操作系统中的1020233年航空电子技术Kernel的GPU进程,允许访问OPENGLAPI)从共享内存中提取序列化的命令,解析它们并执行适当的图形调用。2.2.3实现方案基于GPU指令转发的虚拟化实现方案如图2 所示,具体实现原理如下:以2 个虚拟机分区为例,每个虚拟机上的图形应用调用OpenGLAPI时,图形驱动程序将这

18、些图形API调用转换成GPU指令和数据,缓存到存放到GPU命令缓冲区和数据缓冲区。在系统的内存中运行一个特殊的管理程序“GPUManager”,每个分区的图形应用都可通过系统调用的方式调用GPU管理器提供的服务,为了保证性能,该程序一般运行在一个独立的CPU内核上;GPUmanager提供虚拟的PCIE接口(vPCIE),这样对每个分区的GPU来说看到的都是自已独占一个PCIE接口(vPCIE)。G PU 管理器可直接访问GPU,同时向其它各分区提供GPU指令“转发”服务,其它各分区向GPU提交指令都通过该处理器核的GPU指令“转发”服务实现。当图形应用调用API触发GPU指令提交,或者当GP

19、U命令缓冲区或数据缓冲区满时,各个分区的处理器核按照约定的协议向GPU指令“转发”服务软件申请GPU指令提交;指令和数据的实际拷贝操作,都是指针传递,因此GPU指令“转发”服务软件负荷很轻,可以保证指令“转发”的及时性。GPU指令“转发”服务软件接收各个分区的服务请求按照配置设定的调度策略以一定的顺序向GPU提交指令;当GPU执行状态与当前分区的状态不一致时,GPU指令“转发”服务软件将执行状态切换至当前分区的染上下文,然后向环形缓冲区(RingBuffer)中插入命令包从分区GPU命令缓冲区执行,实现图形指令提交,让GPU执行各分区的图形处理任务。GPU管理器服务进程平时处于静默状态,当各分

20、区有绘制任务要提交时才被唤醒,处理完成后继续处于静默状态。各个分区的使用独立的GPU、内存空间和外设,从而有效控制单个图形处理任务的故障对其它任务的影响。3测试在T2080+E8860+Vxworks6533.1平台上进行了测试验证,T2080是NXP公司推出的一款嵌入式4核处理器,最高主频1.8 Ghz,E8 8 6 0 为AMD公司推出的嵌入式GPU,E8 8 6 0 具有2 GB显存GDDR5显存,GPU主频6 2 5Mhz,显存速率为7 2.2 G/s,支持最多6 路输出,最大分辨率支持4K,Vx w o r k s6533.x是风河系统公司推出的面向多核虚拟化的操作系统平台。测试分为

21、两类,一类为GPU基准benchMark性能测试,主要用于测试GPU的绘制基本图元的能力,本次测试选择直线绘制和大像素的三角形绘制,分别用于测试顶点处理和像素填充能力,其中顶点处理主要受CPU端性能影响大,像素填充主要受GPU端影响大。另外一类为典型航空应用测试,目前国内外航空应用建模多采用SCADEDISPLAY和VAPSXT两类工具软件,采用这两类模型进行建模,并运行在嵌入式平台上,用来模拟实际应用场景。GPU benchmark测试过程如下:(1)不使用虚拟化,在硬件平台上运行vx-works6.x操作系统,运行benchmark测试程序,测试直线和三角形最大绘制能力;(2)只运行一个虚

22、拟分区,在分区上运行vx-works6.6操作系统,上层应用运行和步骤1一样的测试用例,测试直线和三角形最大绘制能力;(3)运行两个虚拟分区,每个分区运行在独立的CPU核上,在两个分区上运行独立的vxworks6.x操作系统,在每个系统上分别运行一个benchmark应用,测试每个分区的直线和三角形最大绘制能力;表1基准性能测试对照表10000像素三角运行模式直线绘制形绘制无虚拟化117M/秒959/秒单分区107M/秒464K/秒每个分区8 5M/每个分区450 K/2个分区虚拟化秒,合计17 0秒,合计9 0 0 K/模式M/秒秒从表1可以看出,使用虚拟化模式可以有效对性能瓶颈在CPU端的

23、直线绘制模式有效加速,而对性能瓶颈在GPU端的10 0 0 0 像素三角形绘制则基本没有加速,这也符合设计预期,因为基于GPU指令转发的虚拟化模式主要是用于解决CPU端瓶颈带来11廖科,等:基于GPU指令转发的虚拟化图形引擎设计及实现第2 期的性能问题,若GPU本身是性能瓶颈,使用本虚拟化方式无优化效果。典型航空应用测试过程如下:(1)不使用虚拟化,在硬件平台上运行vx-works6.x操作系统,上层应用选择运行典型飞行界面应用,测试绘制帧率;(2)只运行一个虚拟分区,在分区上运行vx-works6.6操作系统,上层应用运行和步骤1一样的测试用例,测试绘制帧率;(3)并行性测试:运行两个虚拟分

24、区,每个分区运行在独立的CPU核上,在两个分区上运行独立的vxworks6.x操作系统,在每个系统上分别运行一个PFD应用,测试绘制帧率;(4)安全性测试:通过命令行输入命令,模拟故障导致一个分区应用停止,看另外一个分区应用继续正常运行。表2 典型应用测试对照表运行模式SCADE画面VAPSXT画面无虚拟化135顿/秒147顿/秒单分区单分区126顿/秒143顿/秒2个分区虚拟化模式225/秒212顿/秒单分区故障是否影响否否其他分区运行本测试结果表明,通过GPU虚拟化,可以实现多个分区同时使用一个物理GPU进行绘制,对每个分区应用开发者来说,每个分区都提供了独立的CPU、G PU 和操行系统

25、,和独占方式使用没有区别。从无虚拟化和运行一个虚拟化分区的对比可以看出,使用虚拟化层带来的损耗仅为6%,说明虚拟化层运行效率很高,这主要是由于各个分区提交图形指令和数据给虚拟化层时,都是指针传递,没有大量的数据拷贝,因此GPUmanager服务软件负荷很轻,可以保证指令“转发”的及时性。从使用2 个分区的虚拟化和不使用虚拟化相比,总体绘制性能提升了6 7%,较好的发挥了多核处理器的性能。4结束语综上所述,基于GPU指令转发的虚拟化方式不仅能在图形绘制功能的层级实现GPU功能的多核共享,也能在GPU资源的直接访问方面实现GPU的多核共享。该方式能够突破单核算力瓶颈,提高GPU轻负载的图形应用的性

26、能,提高系统处理图形应用的集成度。相比硬件虚拟化方式,对GPU硬件本身没特殊要求,适用性更强。基于应用层API转发的方式,由于在驱动层进行了管理,减少了大量转发工作,可以有效提升运行效率。通过测试表明这种方式在有效利用多核性能的同时,提供多个独立的虚拟GPU供应用使用,提升了图形引擎的综合绘制性能。这种虚拟化方式不依赖硬件的虚拟化功能,通过对驱动软件的适当改造也可以适用于基于国产多核CPU和GPU的硬件平台上,为多个“APP”化应用的部署和运行提供高效安全的运行环境。参考文献1赵晨旭,田启宽.基于分区代理机制的FC通信虚拟化方案设计J.航空电子技术,2 0 2 1,52(3):43-47.2顾琦琪,高毅,余学俊,姚建国,等.支持国产GPU芯片的虚拟化构建与QoS控制研究.航空电子技术,2 0 2 2,53(6):1-10.3Imagination Technologies Limitied.PowerVR Rogue DDKServices Virtualisation Porting GuideM.2019.4CoreAVIInc.HyperCoreTM GPU VirtualizationManagerM.2022.

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服