Nvidia vGPU技术简介
Nvidia-VGPU简介
NVIDIA virtual GPU (vGPU) 技术是一种GPU虚拟化解决方案,允许物理GPU资源被多个虚拟机共享,同时为每个虚拟机提供独立的GPU加速能力。
基本原理
Nvidia vGPU技术通过软件层将物理GPU划分为多个虚拟GPU实例,每个实例都可以独立分配给不同的虚拟机使用。其工作原理如下:
- 在宿主机上安装vGPU驱动程序和管理组件
- 使用NVIDIA vGPU管理器控制和管理vGPU资源
- 创建多个 mediated device (mdev) 设备,即vGPU实例
- 将这些vGPU实例直通给不同的虚拟机
- 虚拟机内部安装相应的NVIDIA驱动程序来使用vGPU资源
这种技术类似于Intel的GVT-g图形虚拟化技术,但NVIDIA vGPU管理器是整个方案的核心组件,负责资源调度和管理。
在宿主机上安装好nvidia vgpu驱动之后,会有2个服务。
- nvidia-vgpud.service
- nvidia-vgpu-mgr.service
简单的解释下这2个服务在vgpu启动时的作用:
在使用vGPU卡的时候,正常逻辑是,开机之后,nvidia-vgpud 服务会查询内核中所有已安装的 GPU,并检查 vGPU 功能。如果找到支持 vGPU 的 GPU,则 nvidia-vgpu 会创建一个 MDEV 设备,系统会创建 /sys/class/mdev_bus 目录。
将这些设备分配给 VM,当 VM 启动时,它将打开 MDEV 设备。nvidia-vgpu-mgr 此时会使用 ioctl 与内核进行通信。当 nvidia-vgpu-mgr 询问 GPU 是否支持 vGPU 时,vgpu会回答是,随后尝试初始化 vGPU 设备。
目前vgpu_unlock项目主要支持时间切片(Time-sliced)技术,即单个GPU的性能会在多个vGPU实例之间动态分配。例如,对于一张Tesla P4显卡:
- 如果只创建一个vGPU实例,该实例可以获得接近100%的GPU性能
- 如果同时创建两个vGPU实例,每个实例将分别获得约50%的GPU性能
根据NVIDIA vGPU的技术规范,单个vGPU实例至少需要1GB显存。因此,对于具有8GB显存的Tesla P4显卡,理论上最多可以同时运行8个1GB显存的vGPU实例。
注意,Nvidia-vGPU授权是驱动授权,不是硬件授权。vgpu_unlock 这个项目并不能破解Nvidia-vGPU授权。
它这是使消费卡能够支持vGPU 技术,而不是破解了授权。需要授权,还是需要去nvidia购买!
部署配置
环境要求
硬件要求:
- 支持vGPU技术的NVIDIA显卡(Tesla系列推荐)
- 服务器主板支持IOMMU/VT-d功能
- 足够的系统内存和存储空间
软件要求:
- Linux操作系统(如Ubuntu、CentOS、RHEL等)
- 支持vGPU的NVIDIA驱动程序
- 虚拟化平台(如KVM、Proxmox VE等)
配置步骤
启用IOMMU:
- 在BIOS中启用VT-d/IOMMU功能
- 在GRUB配置中添加IOMMU内核参数
安装vGPU驱动:
- 下载并安装适合的NVIDIA vGPU驱动
- 重启系统以加载驱动模块
创建vGPU实例:
- 使用nvidia-vgpu-mgr工具创建指定类型的vGPU
- 配置vGPU实例的显存大小和其他参数
分配给虚拟机:
- 在虚拟化平台中将vGPU设备直通给目标虚拟机
- 在虚拟机中安装对应的NVIDIA驱动
常见配置类型
NVIDIA vGPU支持多种配置类型,常见的包括:
- GRID P4-1Q:1GB显存,适合轻量级图形应用
- GRID P4-2Q:2GB显存,适合中等图形负载
- GRID P4-4Q:4GB显存,适合重度图形应用
- GRID P4-8Q:8GB显存,适合专业图形工作站
选择合适的配置类型需要根据实际应用场景和性能需求来决定。
参考资料
官方资源
驱动获取
- NVIDIA vGPU驱动归档 - GitHub上的NVIDIA vGPU驱动版本归档
- vgpu_unlock项目 - 使消费级显卡支持vGPU技术的开源项目
配置教程
社区资源
- vgpu-proxmox项目 - Proxmox VE环境下使用vGPU的工具集
- Bilibili相关教程 - 视频教程和实践经验分享
官方支持列表:
https://docs.nvidia.com/vgpu/gpus-supported-by-vgpu.html
实用配置示例
1. 查看系统中的GPU设备
1 | lspci | grep -i nvidia |
2. 检查vGPU驱动是否正常加载
1 | lsmod | grep nvidia |
3. 创建vGPU实例
1 | # 查看支持的vGPU类型 |
4. Proxmox VE中配置vGPU
在Proxmox VE中,可以通过以下步骤为虚拟机分配vGPU:
- 编辑虚拟机配置文件(/etc/pve/qemu-server/{VMID}.conf)
- 添加vGPU设备配置:
1
hostpci0: 00:05.0,pcie=1
- 启动虚拟机并安装NVIDIA驱动
5. 性能监控
1 | # 查看vGPU使用情况 |
注意事项
- 许可证管理:生产环境中需要正确配置NVIDIA许可证服务器
- 兼容性检查:确保使用的驱动版本与操作系统和GPU型号兼容
- 资源规划:合理规划vGPU实例数量和资源配置,避免资源争用
- 安全性考虑:定期更新驱动程序,关注安全公告
- Title: Nvidia vGPU技术简介
- Author: 清夏晚风
- Created at : 2025-12-19 00:00:00
- Updated at : 2026-01-13 16:48:23
- Link: https://blog.kimikkorow.eu.org/NVIDIA相关/VGPU相关/00.Nvidia-VGPU简介/
- License: This work is licensed under CC BY-NC-SA 4.0.