近日,麒麟软件研发中心虚拟化技术研发团队推出虚拟GPU方案V2.0,该方案采用vhost-user-gpu、3D渲染同步优化、基于动态数据的云桌面刷新等技术,将虚拟机GPU的3D渲染性能大幅提升到后端GPU 3D渲染性能的80%以上,无需专业显卡支持,通过消费级显卡即可使虚拟机满足图像处理、平面设计、3D建模以及游戏等场景的需求,同时可实现1:N的灵活性和隔离性,大大降低了用户使用成本。
随着云桌面技术的发展和广泛应用,用户在云桌面进行图像处理、平面设计、3D建模以及游戏等场景需求增多,这对云桌面的图像渲染能力提出了越来越高的要求。在2022年5月,麒麟软件基于开源virtio-gpu半虚拟化显卡技术和api转发方案,开发了自己的虚拟GPU方案V1.0。该方案对virtio-gpu虚拟显卡进行了深度优化,在有后端GPU支持的情况下,可将virtio-gpu的渲染性能提升到后端GPU性能的60%(采用glmark2渲染基准测试)。
然而,与GPU硬件虚拟化方案相比,麒麟软件虚拟GPU方案V1.0的渲染转发过程开销仍比较大,后端物理GPU没能得到充分利用,损失近40%的渲染性能。针对该问题,对虚拟GPU方案进一步升级优化,推出麒麟软件虚拟GPU方案V2.0,使得渲染过程中的性能损耗降低到两成以内,3D综合渲染性能可以达到后端GPU性能的八成以上。
方案介绍
麒麟软件虚拟GPU方案V2.0版优化如下:
GPU方案V2.0采用新技术框架,使用vhost-user-gpu虚拟显卡(基于vhost-user技术实现)替换了V1.0方案采用的virtio-gpu虚拟显卡。vhost-user-gpu虚拟显卡无需经由宿主机内核kvm模块和用户态切换,可以通过共享内存直接与虚拟机进行数据面通信,减少了大量的用户态(vm exit 和 vm entry)切换开销,V1.0版本额外开销更小,性能更好。
此外,GPU方案V2.0,还突破了渲染命令执行实时监听技术与快速命令反馈技术,在渲染命令执行过程中,实现实时监听,提升命令执行监听精确度,减少物理GPU的空闲等待;在命令执行完毕前,预先准备好反馈数据,提升反馈速度和减少反馈时间开销。实现了由完整桌面刷新改为动态区域刷新,即只刷新桌面显示数据有变化的区域,降低云桌面刷新时,读取物理GPU中未变化图像数据所造成的额外开销。
为验证方案效果,基于Intel集显、AMD RX550以及Nvidia RTX2060三种不同厂商的显卡,以及glmark2和gputest两种不同的基准测试程序对vhost-user-gpu的3d渲染性能进行了测试,结果如下:
在glmark2基准测试下,vhost-user-gpu在分别以三种不同类型的GPU作为后端渲染加速GPU的情况下,测试得分均达到甚至超过物理GPU的原始测试得分的80%。
在gputest基准测试下,对比vhost-user-gpu与物理GPU在7个不同测试场景下的得分,结果显示,在大多数情况下,优化后的vhost-user-gpu的性能同样可以达到物理GPU原始性能的80%以上。
此外,麒麟软件虚拟化GPU方案V2.0还进行了广泛的架构适配和显卡适配,在商用x86、arm架构下,采用主流显卡厂商GPU作为后端GPU时,该方案均能正常运行,进一步提升了麒麟软件虚拟GPU方案的商业竞争力。未来,麒麟软件在创新之路上再接再厉,打造好用、易用的操作系统产品,为用户带来更好的使用体验,助力我国数字经济建设。