一卡四虚拟机!开源项目实现低损耗GPU虚拟化:性能接近裸机

倚天百科 百科资讯 2

9月24日消息,Nestrilabs近日正式发布了实验性虚拟化技术virtio-nvgpu,通过创新的驱动指令转发机制,使KVM虚拟机在调用英伟达显卡时能够获得接近裸机的性能表现。

根据项目在GitHub上公布的测试数据,在搭载RTX 3060显卡的系统上,虚拟机的渲染帧时间损耗被控制在2%以内。

在宿主机需要39ms渲染的帧,虚拟机仅需增加极微小的延迟即可完成,甚至在部分测试中出现了因误差导致的0.4%性能反超。

技术层面上,virtio-nvgpu采用了与传统API翻译方案完全不同的路径。它并不尝试序列化Vulkan或OpenGL调用,而是直接在内核驱动的ABI层面工作,转发英伟达内核驱动处理的ioctl指令,可以让虚拟机运行未经修改的原生驱动堆栈,包括Vulkan和NVENC编码器。

这种方案的优势在于极低的跨界开销,在大约81.3万帧的基准测试中,后端仅服务了约1.38万条消息,平均每59帧才跨越一次虚拟机边界。

因为命令缓冲区是在本地内存中构建的,绝大多数绘图指令根本不需要经过宿主机干预,从而保证了极高的执行效率。

此外针对云端多租户场景,virtio-nvgpu也展示了强大的共享能力,4台虚拟机同时运行相同负载时,总帧率达到103.7fps,甚至略高于单机运行时的102.9fps,且每台虚拟机的帧时间差异精确到了小数点后四位。

目前该技术仅在720p分辨率下进行了验证,且对驱动版本有严格限制(最低535.129.03),但它已为英伟达显卡在Linux虚拟化领域的应用开辟了新路径。