GPU(图形处理器单元)主要进行浮点运算和并行运算,其浮点运算和并行运算速度可以比CPU强上百倍之多,使用GPU虚拟化技术之后,可以实现云桌面整体性能的大幅提升,正在被越来越多的用户追捧。本文主要介绍在银河麒麟操作系统采用VirtIO-GPU技术实现国产CPU平台云桌面性能优化。
在当前GPU大厂不开源核外包、不支持国产CPU架构的背景下,VirtIO-GPU给开源社区带了新的曙光,在多种优化手段后,银河麒麟操作系统虚拟机中的3D渲染性能在国产CPU平台飞腾、鲲鹏、海光、龙芯上均有大幅提升,这使得云端高性能办公正在逐步成为现实。
目前成熟的GPU虚拟化方案主要有:软件模拟GPU、GPU分片虚拟化、API转发等。麒麟软件虚拟GPU优化方案采用API转发方案的VirtIO-GPU虚拟化技术,VirtIO-GPU在有后端GPU硬件渲染情况下,客户机系统中图形3D性能大幅提升,在网页浏览、视频播放、文件办公等场景大幅提升了使用体验,大幅降低CPU使用率。目前已经从未优化的5%左右效率稳定提升到优化后的60%以上。 在Unigine Valley测试中,深度优化性能相比初步优化时(有GPU后端渲染)的2.5%提升至81%。
Glmark2测试性能效率提升到60%以上
采用VirtIO-GPU虚拟化技术的云桌面场景中运行大型3D游戏、高清视频编解码等变成现实,且能够兼顾1:N的灵活性和隔离性。优化后的场景可在不降低客户图形显示加速性能的前提下,租户数量提升一倍,大幅降低了客户成本。
多虚拟机共享后端GPU时租户数量提升一倍
方案介绍
图:VirtIO-GPU 云桌面技术栈框架
在开源技术基础上,麒麟软件研发团队引入零拷贝技术和新的虚拟机显示器刷新加速模块,并且在命令转发、状态同步逻辑等进行了深度优化。
• 图形资源支持零拷贝
目前对于同一资源,虚拟机侧的VirtIO-GPU前端驱动与宿主机侧的后端设备均有各自的副本,为了保持二者之间的数据同步,因而需要频繁且大规模的内存复制。通过引入零拷贝技术,VirtIO-GPU前端驱动和后端设备可共享同一资源实例,从而避免了内存复制,大大降低了VirtIO-GPU渲染指令的路径延时,提高了渲染效率,并在一定程度上减少了对CPU资源的占用。
• 前后端更加高效的状态同步
对VirtIO-GPU设备与物理GPU之间的命令转发、状态同步逻辑进行了深度优化。经测试,在极端情况下,二者之间的状态同步延迟时间比之前降低约100倍,这极大的缩短了VirtIO-GPU渲染指令的执行时间,提高了响应速度。
• 显示画面的刷新更加实时
引入了新的虚拟机显示器刷新加速模块,可支持将VirtIO-GPU等虚拟显卡的输出画面更加及时的刷新到各种虚拟显示器中,因而具有更好的实时性,可有效减少用户侧图像画面的延迟。
通讯员 | 白鹂莎、杜式薇
来 源 | 产品与生态中心、研发中心
审 核 | 市场与政府事务部