近日,麒麟软件研发中心虚拟化技术研发团队推出虚拟 GPU 方案 V2.0,该方案采用 vhost-user-gpu、3D 渲染同步优化、基于动态数据的云桌面刷新等技术,将虚拟机 GPU 的 3D 渲染性能提升到后端 GPU 3D 渲染性能的 80% 以上

麒麟软件表示,该方案无需专业显卡支持,通过消费级显卡即可使虚拟机满足图像处理、平面设计、3D 建模以及游戏等场景的需求,同时可实现 1:N 的灵活性和隔离性,大大降低了用户使用成本。

附麒麟软件虚拟 GPU 方案 V2.0 版技术框图:

17008089117591000.webp

据介绍,随着云桌面技术的发展和广泛应用,用户在云桌面进行图像处理、平面设计、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 采用新技术框架,使用 vhost-user-gpu 虚拟显卡(基于 vhost-user 技术实现)替换了 V1.0 方案采用的 virtio-gpu 虚拟显卡。vhost-user-gpu 虚拟显卡无需经由宿主机内核 kvm 模块和用户态切换,可以通过共享内存直接与虚拟机进行数据面通信,减少了大量的用户态(vm exit 和 vm entry)切换开销,V1.0 版本额外开销更小,性能更好。

此外,GPU 方案 V2.0,还突破了渲染命令执行实时监听技术与快速命令反馈技术,在渲染命令执行过程中,实现实时监听,提升命令执行监听精确度,减少物理 GPU 的空闲等待;在命令执行完毕前,预先准备好反馈数据,提升反馈速度和减少反馈时间开销。实现了由完整桌面刷新改为动态区域刷新,即只刷新桌面显示数据有变化的区域,降低云桌面刷新时,读取物理 GPU 中未变化图像数据所造成的额外开销。

为验证方案效果,基于英特尔集显、AMD RX 550 以及英伟达 RTX 2060 三种不同厂商的显卡,以及 glmark2 和 gputest 两种不同的基准测试程序对 vhost-user-gpu 的 3d 渲染性能进行了测试,结果如下:

在 glmark2 基准测试下,vhost-user-gpu 在分别以三种不同类型的 GPU 作为后端渲染加速 GPU 的情况下,测试得分均达到甚至超过物理 GPU 的原始测试得分的 80%

17008089128391000.webp

▲ glmark2 基准测试性能测试数据

在 gputest 基准测试下,对比 vhost-user-gpu 与物理 GPU 在 7 个不同测试场景下的得分,结果显示,在大多数情况下,优化后的 vhost-user-gpu 的性能同样可以达到物理 GPU 原始性能的 80% 以上。

17008089110001000.webp

▲ GPUTEST 基准测试性能数据表

此外,麒麟软件虚拟化 GPU 方案 V2.0 还进行了广泛的架构适配和显卡适配,在商用 x86、arm 架构下,采用主流显卡厂商 GPU 作为后端 GPU 时,该方案均能正常运行