开源工具·Hacker News

virtio-nvgpu 开源:KVM 虚拟机内 GPU 性能接近宿主机

Nestri Labs 发布 virtio-nvgpu,通过转发 NVIDIA 内核驱动 ioctl 让 KVM 客户机直接访问 GPU。实测渲染性能与宿主机差距在 2% 以内,CPU 开销相同,且支持多客户机共享。该项目解决了虚拟机中 GPU 性能损耗问题,对云端渲染和串流场景意义重大。

Nestri Labs 在 GitHub 上发布了 virtio-nvgpu,一个让 KVM 客户机以接近原生性能访问 NVIDIA GPU 的开源项目。该项目在驱动 ABI 层面转发 Linux 客户机与宿主机之间的 NVIDIA 内核驱动 ioctl,绕过了 API 层翻译,使客户机能够直接运行 NVIDIA 官方用户态驱动。

实测数据显示,在一张 RTX 3060 上,当每帧渲染时间高于约 2 毫秒(即游戏常见的负载),客户机的渲染性能与裸机差距在 2% 以内;低于此阈值时,等待 GPU 的延迟成本会变得明显。CPU 方面,客户机的开销与宿主机相当。多客户机共享测试中,四台客户机同时运行相同负载,总帧率与单台客户机几乎一致(103.7 fps 对 102.9 fps),帧时间分配均匀。所有客户机可同时渲染并编码 H.264,且未触达 NVENC 会话上限。

virtio-nvgpu 的架构分为客户机内核模块、VMM 无关的 virtio 设备层(Rust 编写)、宿主后端及 ABI 定义表。客户机模块必须采用 GPL 许可,而设备层采用 BSD-3-Clause OR Apache 许可,以便其他 VMM 集成。该设计参考了 chromeos/virtio-media 项目。目前支持特定的驱动 ABI 版本(535.129.03、580.178.04、595.71.05),较旧版本会被拒绝。CUDA 虽已实现转发,但仅验证了设备枚举功能。目标场景是无头串流:客户机内的合成器渲染、合成并在 GPU 上编码帧,仅将压缩后的视频流输出,宿主机保留显卡控制权。

#GPU#虚拟化#开源#Nvidia

本文由程序自动抓取公开报道,经 AI 筛选与改写生成,未经人工逐条核实,事实以原文为准。