一、常见参数解释
1. 显示相关
| 参数 | 含义 | 说明 |
|---|---|---|
num_displays |
虚拟显示器数量 | 表示该 vGPU 最多可同时输出的显示器个数 |
display_width |
每个虚拟显示器的最大水平分辨率 | 单位:像素 |
display_height |
每个虚拟显示器的最大垂直分辨率 | 单位:像素 |
max_pixels |
所有显示器合计最大像素数 | 例如 1920×1080 = 2073600。如果 num_displays=2,则 max_pixels 至少应为 2×2073600 |
2. 显存相关
| 参数 | 含义 | 说明 |
|---|---|---|
framebuffer |
vGPU 帧缓冲大小 | 十六进制,单位字节。这是主要可用的显存大小 |
framebuffer_reservation |
额外保留显存 | 十六进制,单位字节。最终 vGPU 总显存 ≈ framebuffer + framebuffer_reservation |
例如你配置中:
0x1A000000= 416 MiB
0x6000000= 96 MiB
总显存 = 416 + 96 = 512 MiB
3. 功能开关
| 参数 | 含义 | 说明 |
|---|---|---|
cuda_enabled |
是否启用 CUDA | 1 启用,0 禁用。启用后虚拟机里可以调用 CUDA 做计算 |
frl_enabled |
是否启用帧率限制 | 1 启用,0 不限制。通常用于限制虚拟机的渲染帧率 |
multi_vgpu_enabled |
是否允许一个物理 GPU 分配多个 vGPU | 部分版本支持,可选 |
gpu_direct_enabled |
是否启用 GPU Direct | 部分版本支持 |
nvlink_enabled |
是否启用 NVLink | 部分版本支持 |
mig_enabled |
是否启用 MIG 多实例 GPU | 部分版本支持 |
上面这四个不是所有配置都支持,常见版本可能只包含
cuda_enabled和frl_enabled。
4. PCI 身份伪装
| 参数 | 含义 | 说明 |
|---|---|---|
pci_id |
完整的 PCI ID | 高 16 位是设备 ID,低 16 位是厂商 ID。例如 0x17F010DE 表示厂商 10DE(NVIDIA),设备 17F0(Quadro M6000) |
pci_device_id |
设备 ID | 就是上面 pci_id 中的设备 ID 部分,例如 0x17F0 |
pci_vendor_id |
厂商 ID | 通常固定为 NVIDIA 的 0x10DE,可省略 |
pci_subsystem_id |
子系统完整 ID | 用于更精确地伪装,可选 |
pci_sub_device_id |
子系统设备 ID | 可选 |
pci_sub_vendor_id |
子系统厂商 ID | 可选 |
class_code / pci_class |
PCI 类代码 | 显卡通常为 0x030000,可选 |
5. vGPU 类型标识
| 参数 | 含义 | 说明 |
|---|---|---|
vgpu_type |
vGPU 类型字符串 | 用于驱动内部识别,常见值如 "NVS"、"GRID"、"Quadro"、"Tesla"、"RTX" 等 |
二、示例配置
nano /etc/vgpu_unlock/profile_override.toml
示例 1:标准 1080p / 512 MiB / 模拟 Quadro M6000
就是你原来的配置,适合基础办公、轻度图形。
[profile.nvidia-524] num_displays = 1 display_width = 1920 display_height = 1080 max_pixels = 2073600 vgpu_type = "NVS" framebuffer = 0x1A000000 framebuffer_reservation = 0x6000000 cuda_enabled = 1 frl_enabled = 0 pci_id = 0x17F010DE pci_device_id = 0x17F0
示例 2:4K 单屏 / 2 GiB / 模拟 Tesla T4
适合高分辨率显示和 CUDA 计算。
[profile.nvidia-t4-2g] num_displays = 1 display_width = 3840 display_height = 2160 max_pixels = 8294400 vgpu_type = "GRID" framebuffer = 0x7A000000 framebuffer_reservation = 0x6000000 cuda_enabled = 1 frl_enabled = 0 pci_id = 0x1EB810DE pci_device_id = 0x1EB8
显存计算:
0x7A000000= 1952 MiB
0x6000000= 96 MiB
总显存 = 2048 MiB = 2 GiB
示例 3:双屏 1080p / 1 GiB / 开启帧率限制
适合需要双显示器但不需要太高显存的场景。
[profile.nvidia-dual-1g] num_displays = 2 display_width = 1920 display_height = 1080 max_pixels = 4147200 vgpu_type = "NVS" framebuffer = 0x3A000000 framebuffer_reservation = 0x6000000 cuda_enabled = 0 frl_enabled = 1 pci_id = 0x17F010DE pci_device_id = 0x17F0
显存计算:
0x3A000000= 928 MiB
0x6000000= 96 MiB
总显存 = 1024 MiB = 1 GiB
示例 4:轻量 720p / 256 MiB / 禁用 CUDA
适合非常轻量的虚拟机,节省资源。
[profile.nvidia-lite] num_displays = 1 display_width = 1280 display_height = 720 max_pixels = 921600 vgpu_type = "NVS" framebuffer = 0x0A000000 framebuffer_reservation = 0x6000000 cuda_enabled = 0 frl_enabled = 1 pci_id = 0x17F010DE pci_device_id = 0x17F0
三、注意事项
-
十六进制数值:
framebuffer、framebuffer_reservation、pci_id等通常使用0x前缀的十六进制。 -
显存计算:总显存 ≈
framebuffer + framebuffer_reservation,如果你发现虚拟机内显存不对,可以调整这两个值。 -
PCI ID 伪装:
pci_id的格式是设备ID + 厂商ID,例如0x17F010DE中0x17F0是设备 ID,0x10DE是 NVIDIA 厂商 ID。建议保持厂商 ID 为10DE,否则驱动可能无法识别。 -
兼容性:不是所有驱动都支持所有
vgpu_type和 PCI ID,最好使用已知受支持的组合,否则可能导致 vGPU 无法启动。