NVIDIA Virtual GPU 软件 v17.0 至 v17.5

虚拟 GPU 软件用户指南

虚拟 GPU 软件用户指南

面向管理员的文档,介绍了如何安装和配置 NVIDIA Virtual GPU 管理器,在直通模式下配置虚拟 GPU 软件,以及在客户操作系统上安装驱动程序。

NVIDIA vGPU 软件是一个图形虚拟化平台,使虚拟机 (VM) 能够访问 NVIDIA GPU 技术。

1.1. NVIDIA vGPU 软件的使用方式

NVIDIA vGPU 软件可以通过多种方式使用。

1.1.1. NVIDIA vGPU

NVIDIA 虚拟 GPU (vGPU) 使多个虚拟机 (VM) 能够同时直接访问单个物理 GPU,使用与部署在非虚拟化操作系统上相同的 NVIDIA 图形驱动程序。通过这样做,NVIDIA vGPU 为虚拟机提供了无与伦比的图形性能、计算性能和应用程序兼容性,以及在多个工作负载之间共享 GPU 所带来的成本效益和可扩展性。

有关详细信息,请参阅安装和配置 NVIDIA Virtual GPU 管理器

1.1.2. GPU 直通

在 GPU 直通模式下,整个物理 GPU 直接分配给一个虚拟机,绕过 NVIDIA Virtual GPU 管理器。在这种操作模式下,GPU 由虚拟机中运行的 NVIDIA 驱动程序独占访问。GPU 不在虚拟机之间共享。

有关详细信息,请参阅使用 GPU 直通

1.1.3. 裸机部署

在裸机部署中,您可以将 NVIDIA vGPU 软件图形驱动程序与 vWS 和 vApps 许可证结合使用,以交付远程虚拟桌面和应用程序。如果您打算为此目的在没有虚拟机监控程序的情况下使用 Tesla 板卡,请使用 NVIDIA vGPU 软件图形驱动程序,而不是其他 NVIDIA 驱动程序。

要在裸机部署中使用 NVIDIA vGPU 软件驱动程序,请完成以下任务

  1. 在物理主机上安装驱动程序。

    有关说明,请参阅安装 NVIDIA vGPU 软件图形驱动程序

  2. 许可您正在使用的任何 NVIDIA vGPU 软件。

    有关说明,请参阅虚拟 GPU 客户端许可用户指南

  3. 配置平台以进行远程访问。

    要将图形功能与 Tesla GPU 结合使用,您必须使用受支持的远程解决方案,例如 RemoteFX、Citrix Virtual Apps and Desktops、VNC 或类似技术。

  4. 使用主机操作系统的显示设置功能将 Tesla GPU 配置为主显示器。

    NVIDIA Tesla 通常在裸机平台上作为辅助设备运行。

  5. 如果系统有多个显示适配器,请禁用通过非 NVIDIA 适配器连接的显示设备。

    您可以使用主机操作系统的显示设置功能或远程解决方案来实现此目的。在包括 Tesla GPU 在内的 NVIDIA GPU 上,默认情况下会启用显示设备。

    用户只有在启用由 NVIDIA 适配器驱动的显示器后,才能启动需要 NVIDIA GPU 技术的应用程序以获得增强的用户体验。

1.2. NVIDIA vGPU 软件部署的主显示适配器要求

设置为主显示适配器的 GPU 不能用于 NVIDIA vGPU 部署或 GPU 直通部署。主显示器是虚拟机监控程序主机的启动显示器,它显示 SBIOS 控制台消息,然后启动操作系统或虚拟机监控程序。

任何用于 NVIDIA vGPU 部署或 GPU 直通部署的 GPU 都必须设置为辅助显示适配器。

注意

XenServer 提供了一个特定设置,允许主显示适配器用于 GPU 直通部署。

citrix-hypervisor-gpu-settings-window.png

只有以下 GPU 支持作为主显示适配器

  • Tesla M6
  • Quadro RTX 6000
  • Quadro RTX 8000

所有其他支持 NVIDIA vGPU 软件的 GPU 都不能用作主显示适配器,因为它们是 3D 控制器,而不是 VGA 设备。

如果虚拟机监控程序主机没有额外的图形适配器,请考虑安装一个低端显示适配器用作主显示适配器。如有必要,请确保在虚拟机监控程序主机的 BIOS 选项中正确设置主显示适配器。

1.3. NVIDIA vGPU 软件功能

NVIDIA vGPU 软件包括 vWS、vPC 和 vApps。

1.3.1. NVIDIA vGPU 上的 API 支持

NVIDIA vGPU 包括对以下 API 的支持

  • 开放计算语言 (OpenCL™ 软件) 3.0
  • OpenGL® 4.6
  • Vulkan® 1.3
  • DirectX 11
  • DirectX 12 (Windows 10)
  • Direct2D
  • DirectX 视频加速 (DXVA)
  • NVIDIA® CUDA® 12.4
  • NVIDIA vGPU 软件 SDK(远程图形加速)
  • NVIDIA RTX(基于 NVIDIA Volta 图形架构和更高架构的 GPU)

注意

这些 API 向后兼容。也支持旧版本的 API。

1.3.2. NVIDIA vGPU 软件上对 NVIDIA CUDA 工具包和 OpenCL 的支持

仅在部分 vGPU 类型和受支持的 GPU 上,NVIDIA vGPU 支持 NVIDIA CUDA 工具包和 OpenCL。

有关 NVIDIA CUDA 工具包的更多信息,请参阅CUDA 工具包文档 12.4

注意

如果您在 Linux 上将 NVIDIA vGPU 软件与 CUDA 结合使用,请通过从独立于发行版的 runfile 软件包安装 CUDA 来避免安装方法冲突。请勿从特定于发行版的 RPM 或 Deb 软件包安装 CUDA。

为确保在安装 CUDA 时 NVIDIA vGPU 软件图形驱动程序不被覆盖,请在选择要安装的 CUDA 组件时取消选择 CUDA 驱动程序。

有关详细信息,请参阅NVIDIA CUDA Linux 安装指南

OpenCL 和 CUDA 应用程序支持

以下 NVIDIA vGPU 类型支持 OpenCL 和 CUDA 应用程序

  • Tesla M10 GPU 上的 8Q vGPU 类型
  • 以下 GPU 上的所有 Q 系列 vGPU 类型
    • NVIDIA L2
    • NVIDIA L4
    • NVIDIA L20
    • NVIDIA L40
    • NVIDIA L40S
    • NVIDIA RTX 5000 Ada
    • NVIDIA RTX 6000 Ada
    • NVIDIA A2
    • NVIDIA A10
    • NVIDIA A16
    • NVIDIA A40
    • NVIDIA RTX A5000
    • NVIDIA RTX A5500
    • NVIDIA RTX A6000
    • Tesla V100 SXM2
    • Tesla V100 SXM2 32GB
    • Tesla V100 PCIe
    • Tesla V100 PCIe 32GB
    • Tesla V100S PCIe 32GB
    • Tesla V100 FHHL
    • Tesla T4
    • Quadro RTX 6000
    • Quadro RTX 6000 passive
    • Quadro RTX 8000
    • Quadro RTX 8000 passive

NVIDIA CUDA 工具包开发工具支持

在某些 GPU 上,NVIDIA vGPU 支持以下 NVIDIA CUDA 工具包开发工具

  • 调试器
    • CUDA-GDB
    • Compute Sanitizer
  • 分析器
    • CUDA 分析工具接口 (CUPTI) 的 Activity、Callback 和 Profiling API

      不支持其他 CUPTI API,例如 Event 和 Metric API。

    • NVIDIA Nsight™ Compute
    • NVIDIA Nsight Systems
    • NVIDIA Nsight 插件
    • NVIDIA Nsight Visual Studio 插件

    不支持其他 CUDA 分析器,例如 nvprof 和 NVIDIA Visual Profiler。

这些工具在 Linux 客户虚拟机中受支持。

支持 NVIDIA CUDA 工具包分析器,并且可以在启用统一内存的虚拟机上启用它们。

注意

默认情况下,NVIDIA CUDA 工具包开发工具在 NVIDIA vGPU 上处于禁用状态。如果使用,您必须通过设置 vGPU 插件参数,为每个需要它们的虚拟机单独启用 NVIDIA CUDA 工具包开发工具。有关说明,请参阅为 NVIDIA vGPU 启用 NVIDIA CUDA 工具包开发工具

下表列出了 NVIDIA vGPU 支持这些调试器和分析器的 GPU。

GPU vGPU 模式 调试器 分析器
NVIDIA L2 时间切片
NVIDIA L4 时间切片
NVIDIA L20 时间切片
NVIDIA L40 时间切片
NVIDIA L40S 时间切片
NVIDIA RTX 5000 Ada 时间切片
NVIDIA RTX 6000 Ada 时间切片
NVIDIA A2 时间切片
NVIDIA A10 时间切片
NVIDIA A16 时间切片
NVIDIA A40 时间切片
NVIDIA RTX A5000 时间切片
NVIDIA RTX A5500 时间切片
NVIDIA RTX A6000 时间切片
Tesla T4 时间切片
Quadro RTX 6000 时间切片
Quadro RTX 6000 passive 时间切片
Quadro RTX 8000 时间切片
Quadro RTX 8000 passive 时间切片
Tesla V100 SXM2 时间切片
Tesla V100 SXM2 32GB 时间切片
Tesla V100 PCIe 时间切片
Tesla V100 PCIe 32GB 时间切片
Tesla V100S PCIe 32GB 时间切片
Tesla V100 FHHL 时间切片

✓ 功能受支持

- 功能不受支持

受支持的 NVIDIA CUDA 工具包功能

如果 vGPU 类型、物理 GPU 和虚拟机监控程序软件版本支持该功能,则 NVIDIA vGPU 支持以下 NVIDIA CUDA 工具包功能

  • 纠错码 (ECC) 内存
  • 通过 NVLink 的对等 CUDA 传输
    注意

    要确定主机中物理 GPU 或分配给虚拟机的 vGPU 之间的 NVLink 拓扑,请从主机或虚拟机运行以下命令

    复制
    已复制!
                

    $ nvidia-smi topo -m

  • 统一内存
    注意

    默认情况下,统一内存处于禁用状态。如果使用,您必须通过设置 vGPU 插件参数,为每个需要它的 vGPU 单独启用统一内存。有关说明,请参阅为 vGPU 启用统一内存

  • NVIDIA Nsight Systems GPU 上下文切换跟踪

动态页面停用功能在支持 ECC 内存的物理 GPU 上的所有 vGPU 类型中均受支持,即使 ECC 内存在物理 GPU 上被禁用也是如此。

NVIDIA vGPU 不支持的 NVIDIA CUDA 工具包功能

NVIDIA vGPU 不支持 NVIDIA CUDA 工具包的 NVIDIA Nsight Graphics 功能。

注意

NVIDIA Nsight Graphics 功能在 GPU 直通模式和裸机部署中受支持。

1.3.3. 其他 vWS 功能

除了 vPC 和 vApps 的功能外,vWS 还提供以下功能

  • 工作站特定的图形功能和加速
  • 针对专业应用程序的认证驱动程序
  • 用于工作站或专业 3D 图形的 GPU 直通

    在直通模式下,vWS 支持分辨率高达 8K 的多个虚拟显示头,以及基于可用像素数量的灵活虚拟显示分辨率。有关详细信息,请参阅物理 GPU 的显示分辨率

  • 面向 Windows 用户的 10 位颜色。(Linux 上当前不支持 HDR/10 位颜色,支持 NvFBC 捕获,但已弃用。)

1.3.4. NVIDIA vGPU 软件上对 NVIDIA GPU Cloud (NGC) 容器的支持

NVIDIA vGPU 软件在所有受支持的虚拟机监控程序上的 NVIDIA vGPU 和 GPU 直通部署中都支持 NGC 容器。

在 NVIDIA vGPU 部署中,仅在基于 Maxwell 架构之后的 NVIDIA GPU 架构的 GPU 上支持 Q 系列 vGPU 类型。

在 GPU 直通部署中,支持 NVIDIA vGPU 软件的基于 NVIDIA Maxwell™ 架构之后的所有 NVIDIA GPU 架构的 GPU 均受支持。

NVIDIA vGPU 软件在受支持的平台 - NVIDIA 容器工具包中列出的,且 NVIDIA vGPU 软件也支持的任何客户操作系统上都支持 NGC 容器。

有关设置 NVIDIA vGPU 软件以与 NGC 容器结合使用的更多信息,请参阅将 NGC 与 NVIDIA Virtual GPU 软件结合使用设置指南

1.3.5. NVIDIA GPU Operator 支持

NVIDIA GPU Operator 简化了在由 Kubernetes 容器编排引擎管理的软件容器平台上部署 NVIDIA vGPU 软件的过程。它自动化了在配置了 NVIDIA vGPU 的客户虚拟机中运行的容器平台的 NVIDIA vGPU 软件图形驱动程序的安装和更新。

NVIDIA GPU Operator 要安装的任何驱动程序都必须从 NVIDIA 许可门户下载到本地计算机。不支持 NVIDIA GPU Operator 自动访问 NVIDIA 许可门户。

NVIDIA GPU Operator 支持 NVIDIA vGPU 软件的自动配置,并通过在客户虚拟机中运行的 DCGM Exporter 提供遥测支持。

仅在虚拟机监控程序软件版本、容器平台、vGPU 类型和客户操作系统版本的特定组合中支持 NVIDIA GPU Operator。要确定您的配置是否支持 NVIDIA GPU Operator 与 NVIDIA vGPU 部署,请查阅您选择的虚拟机监控程序的发行说明,网址为 NVIDIA Virtual GPU 软件文档

有关详细信息,请参阅 NVIDIA 文档门户上的NVIDIA GPU Operator 概述

1.4. 本指南的组织结构

虚拟 GPU 软件用户指南的组织结构如下

安装和配置 NVIDIA 虚拟 GPU 管理器的过程取决于您使用的 hypervisor。完成此过程后,您可以安装客户操作系统的显示驱动程序,并许可您正在使用的任何 NVIDIA vGPU 软件许可产品。

2.1. 关于 NVIDIA 虚拟 GPU

2.1.1. NVIDIA vGPU 架构

1 说明了 NVIDIA vGPU 的高级架构。在 hypervisor 下运行的 NVIDIA 虚拟 GPU 管理器的控制下,NVIDIA 物理 GPU 能够支持多个虚拟 GPU 设备 (vGPU),这些设备可以直接分配给客户虚拟机。

客户虚拟机以与 hypervisor 直通的物理 GPU 相同的方式使用 NVIDIA vGPU:加载在客户虚拟机中的 NVIDIA 驱动程序提供对 GPU 的直接访问,用于性能关键的快速路径,而 NVIDIA 虚拟 GPU 管理器的半虚拟化接口用于非性能管理操作。

图 1. NVIDIA vGPU 系统架构

architecture-grid-vgpu-overview.png

每个 NVIDIA vGPU 都类似于传统的 GPU,具有固定数量的 GPU 帧缓冲区以及一个或多个虚拟显示输出或“头”。vGPU 的帧缓冲区是在创建 vGPU 时从物理 GPU 的帧缓冲区中分配的,并且 vGPU 保留对该帧缓冲区的独占使用权,直到它被销毁。根据物理 GPU 和 GPU 虚拟化软件,NVIDIA 虚拟 GPU 管理器在物理 GPU 上支持不同类型的 vGPU

  • 在所有支持 NVIDIA vGPU 软件的 GPU 上,都可以创建分时 vGPU。
  • 此外,在支持多实例 GPU (MIG) 功能和 NVIDIA AI Enterprise 的 GPU 上,支持基于 MIG 的 vGPU。MIG 功能是在基于 NVIDIA Ampere GPU 架构的 GPU 上引入的。
    注意

    尽管早期版本的 NVIDIA vGPU 软件支持支持 MIG 功能的 GPU,但在此版本的 NVIDIA vGPU 软件中支持此类 GPU。支持 MIG 功能的 GPU 在 NVIDIA AI Enterprise 上受支持。

2.1.1.1. 分时 NVIDIA vGPU 内部架构

分时 vGPU 是驻留在未分区为多个 GPU 实例的物理 GPU 上的 vGPU。驻留在 GPU 上的所有分时 vGPU 共享对 GPU 引擎的访问权限,包括图形 (3D)、视频解码和视频编码引擎。

在分时 vGPU 中,在 vGPU 上运行的进程被调度为串行运行。每个 vGPU 在其他进程在其他 vGPU 上运行时等待。当进程在 vGPU 上运行时,vGPU 独占使用 GPU 的引擎。您可以更改默认调度行为,如更改分时 vGPU 的调度行为中所述。

图 2. 分时 NVIDIA vGPU 内部架构

architecture-grid-vgpu-internal.png

2.1.2. 关于虚拟 GPU 类型

板卡拥有的物理 GPU 数量取决于板卡。每个物理 GPU 可以支持几种不同类型的虚拟 GPU (vGPU)。vGPU 类型具有固定数量的帧缓冲区、支持的显示头数和最大分辨率1。它们根据为其优化的不同类别的工作负载分组为不同的系列。每个系列都由 vGPU 类型名称的最后一个字母标识。

系列 最佳工作负载
Q 系列 适用于需要 Quadro 技术的性能和功能的创意和技术专业人士的虚拟工作站
B 系列 适用于业务专业人士和知识工作者的虚拟桌面
A 系列 适用于虚拟应用程序用户的应用程序流式传输或基于会话的解决方案4

vGPU 类型名称中板卡类型后的数字表示分配给该类型 vGPU 的帧缓冲区量。例如,类型为 A16-4Q 的 vGPU 在 NVIDIA A16 板卡上分配了 4096 Mbytes 的帧缓冲区。

由于其不同的资源要求,可以在物理 GPU 上同时创建的最大 vGPU 数量因 vGPU 类型而异。例如,NVDIA A16 板卡在其两个物理 GPU 中的每个 GPU 上最多可以支持 4 个 A16-4Q vGPU,总共 16 个 vGPU,但仅支持 2 个 A16-8Q vGPU,总共 8 个 vGPU。启用后,帧速率限制器 (FRL) 将 vGPU 的最大帧速率限制为每秒帧数 (FPS),如下所示

  • 对于 B 系列 vGPU,最大帧速率为 45 FPS。
  • 对于 Q 系列和 A 系列 vGPU,最大帧速率为 60 FPS。

默认情况下,所有 GPU 都启用 FRL。当 vGPU 调度行为从支持替代 vGPU 调度器的 GPU 上的默认尽力而为调度器更改时,FRL 将被禁用。有关详细信息,请参阅更改分时 vGPU 的调度行为。在使用尽力而为调度器的 vGPU 上,可以禁用 FRL,如NVIDIA 虚拟 GPU 软件文档中您选择的 hypervisor 的发行说明中所述。

注意

NVIDIA vGPU 在所有受支持的 GPU 板卡上都是许可产品。需要软件许可证才能启用客户虚拟机中的所有 vGPU 功能。所需的许可证类型取决于 vGPU 类型。

  • Q 系列 vGPU 类型需要 vWS 许可证。
  • B 系列 vGPU 类型需要 vPC 许可证,但也可以与 vWS 许可证一起使用。
  • A 系列 vGPU 类型需要 vApps 许可证。

有关每种受支持的 GPU 中可用的虚拟 GPU 类型的详细信息,请参阅受支持的 GPU 的虚拟 GPU 类型

2.1.3. Q 系列和 B 系列 vGPU 的虚拟显示分辨率

Q 系列和 B 系列 vGPU 不支持每个显示器的固定最大分辨率,而是支持基于可用像素数量的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU。

您可以使用的虚拟显示器数量取决于以下因素的组合

  • 虚拟 GPU 系列
  • GPU 架构
  • vGPU 帧缓冲区大小
  • 显示分辨率
注意

即使显示器的组合分辨率小于 vGPU 的可用像素数,您也不能使用超过 vGPU 支持的最大显示器数量。例如,由于 -0Q 和 -0B vGPU 最多仅支持两个显示器,因此即使显示器的组合分辨率 (6220800) 小于这些 vGPU 的可用像素数 (8192000),您也不能将四个 1280×1024 显示器与这些 vGPU 一起使用。

各种因素会影响 GPU 帧缓冲区的消耗,这可能会影响用户体验。这些因素包括但不限于显示器数量、显示分辨率、工作负载和已部署的应用程序、远程解决方案以及客户操作系统。vGPU 驱动特定显示器组合的能力并不能保证有足够的帧缓冲区可用于运行所有应用程序。如果应用程序耗尽帧缓冲区,请考虑通过以下方式之一更改您的设置

  • 切换到具有更多帧缓冲区的 vGPU 类型
  • 使用更少的显示器
  • 使用更低分辨率的显示器

受支持的 GPU 的虚拟 GPU 类型中列出的每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示配置

2.1.4. 单个 GPU 上的有效分时虚拟 GPU 配置

NVIDIA vGPU 软件支持在同一物理 GPU 上混合使用不同类型的分时 vGPU。具有任何帧缓冲区大小的 A 系列、B 系列和 Q 系列 vGPU 的任何组合都可以同时驻留在同一物理 GPU 上。分配给物理 GPU 上 vGPU 的帧缓冲区总量不得超过物理 GPU 拥有的帧缓冲区量。

例如,以下 vGPU 组合可以同时驻留在同一物理 GPU 上

  • A40-2B 和 A40-2Q
  • A40-2Q 和 A40-4Q
  • A40-2B 和 A40-4Q

默认情况下,GPU 仅支持具有相同帧缓冲区大小的 vGPU,因此处于等大小模式。为了支持具有不同帧缓冲区大小的 vGPU,必须将 GPU 置于混合大小模式。当 GPU 处于混合大小模式时,GPU 上允许的某些类型的 vGPU 的最大数量小于 GPU 处于等大小模式时的最大数量。有关更多信息,请参阅以下主题

并非所有 hypervisor 和 GPU 都支持在同一物理 GPU 上混合使用不同类型的分时 vGPU。要确定您选择的 hypervisor 是否支持您选择的 GPU 的此功能,请查阅NVIDIA 虚拟 GPU 软件文档中您的 hypervisor 的发行说明。

2.1.5. 客户虚拟机支持

NVIDIA vGPU 支持 Windows 和 Linux 客户虚拟机操作系统。支持的 vGPU 类型取决于客户虚拟机操作系统。

有关受支持的 Windows 和 Linux 版本以及有关受支持配置的更多信息,请参阅NVIDIA 虚拟 GPU 软件文档中您的 hypervisor 的驱动程序发行说明。

2.1.5.1. Windows 客户虚拟机支持

所有 NVIDIA vGPU 类型都支持 Windows 客户虚拟机,即:Q 系列、B 系列和 A 系列 NVIDIA vGPU 类型。

2.1.5.2. Linux 客户虚拟机支持

所有 NVIDIA vGPU 类型都支持 Linux 客户虚拟机,即:Q 系列、B 系列和 A 系列 NVIDIA vGPU 类型。

2.2. 使用 NVIDIA vGPU 的先决条件

在继续操作之前,请确保满足以下先决条件

  • 您拥有一个服务器平台,该平台能够托管您选择的 hypervisor 和支持 NVIDIA vGPU 软件的 NVIDIA GPU。
  • 您的服务器平台中安装了一个或多个支持 NVIDIA vGPU 软件的 NVIDIA GPU。
  • 如果您使用的是基于 NVIDIA Ampere 架构或更高架构的 GPU,则在您的服务器平台上启用以下 BIOS 设置

    • VT-D/IOMMU
    • SR-IOV
    • 备用路由 ID 解释 (ARI)
  • 您已下载了适用于您选择的 hypervisor 的 NVIDIA vGPU 软件包,其中包含以下软件
    • 适用于您的 hypervisor 的 NVIDIA 虚拟 GPU 管理器
    • 适用于受支持的客户操作系统的 NVIDIA vGPU 软件图形驱动程序
  • 以下软件已按照软件供应商文档中的说明安装
    • 您选择的 hypervisor,例如 XenServer、Red Hat Enterprise Linux KVM 或 VMware vSphere Hypervisor (ESXi)
    • 用于管理您选择的 hypervisor 的软件,例如 Citrix XenCenter 管理 GUI 或 VMware vCenter Server
    • 您将与运行 NVIDIA 虚拟 GPU 的虚拟机 (VM) 一起使用的虚拟桌面软件,例如 Citrix Virtual Apps and Desktops 或 Omnissa Horizon
    注意

    如果您使用的是 VMware vSphere Hypervisor (ESXi),请确保您将在其上配置具有 NVIDIA vGPU 的虚拟机的 ESXi 主机不是完全自动化的 VMware Distributed Resource Scheduler (DRS) 集群的成员。有关更多信息,请参阅安装和配置适用于 VMware vSphere 的 NVIDIA 虚拟 GPU 管理器

  • 已创建要启用一个或多个虚拟 GPU 的虚拟机。
    注意

    如果虚拟机使用 UEFI 启动并且您计划在虚拟机中安装 Linux 客户操作系统,请确保安全启动禁用

  • 您选择的客户操作系统已安装在虚拟机中。

有关受支持的硬件和软件以及此版本 NVIDIA vGPU 软件的任何已知问题的信息,请参阅您选择的 hypervisor 的发行说明

2.3. 切换支持多种显示模式的 GPU 的模式

一些 GPU 支持关闭显示和启用显示模式,但在 NVIDIA vGPU 软件部署中必须以关闭显示模式使用。

下表列出的 GPU 支持多种显示模式。如表所示,一些 GPU 在出厂时以关闭显示模式供应,但其他 GPU 以启用显示模式供应。

GPU 出厂供应模式
NVIDIA A40 关闭显示
NVIDIA L40 关闭显示
NVIDIA L40S 关闭显示
NVIDIA L20 关闭显示
NVIDIA L20 液冷 关闭显示
NVIDIA RTX 5000 Ada 启用显示
NVIDIA RTX 6000 Ada 启用显示
NVIDIA RTX A5000 启用显示
NVIDIA RTX A5500 启用显示
NVIDIA RTX A6000 启用显示

出厂时以关闭显示模式供应的 GPU,例如 NVIDIA A40 GPU,如果其模式先前已更改,则可能处于启用显示模式。

要更改支持多种显示模式的 GPU 的模式,请使用 displaymodeselector 工具,您可以从 NVIDIA 开发者网站上的 NVIDIA Display Mode Selector Tool 页面请求该工具。

注意

只有表中列出的 GPU 支持 displaymodeselector 工具。其他支持 NVIDIA vGPU 软件的 GPU 不支持 displaymodeselector 工具,除非另有说明,否则不需要显示模式切换。

2.4. 安装和配置用于 XenServer 的 NVIDIA 虚拟 GPU 管理器

以下主题将逐步指导您完成设置单个 XenServer VM 以使用 NVIDIA vGPU 的过程。完成此过程后,您可以为您的客户机操作系统安装图形驱动程序,并许可您正在使用的任何 NVIDIA vGPU 软件许可产品。

这些设置步骤假定您熟悉 XenServer 基础知识 中介绍的 XenServer 技能。

2.4.1. 安装和更新用于 XenServer 的 NVIDIA 虚拟 GPU 管理器

NVIDIA 虚拟 GPU 管理器在 XenServer dom0 域中运行。用于 XenServer 的 NVIDIA 虚拟 GPU 管理器以 RPM 文件和 Supplemental Pack 的形式提供。

注意

NVIDIA 虚拟 GPU 管理器和客户机 VM 驱动程序必须兼容。如果您将 vGPU 管理器更新到与客户机 VM 驱动程序不兼容的版本,客户机 VM 将在禁用 vGPU 的情况下启动,直到其客户机 vGPU 驱动程序更新到兼容版本。有关更多详细信息,请参阅 用于 XenServer 的虚拟 GPU 软件发行说明


2.4.1.1. 安装用于 XenServer 的 RPM 软件包

RPM 文件必须在安装前复制到 XenServer dom0 域(请参阅 将文件复制到 dom0)。

  1. 使用 rpm 命令安装软件包
    复制
    已复制!
                

    [root@xenserver ~]# rpm -iv NVIDIA-vGPU-NVIDIA-vGPU-CitrixHypervisor-8.2-550.144.02.x86_64.rpm Preparing packages for installation... NVIDIA-vGPU-NVIDIA-vGPU-CitrixHypervisor-8.2-550.144.02 [root@xenserver ~]#

  2. 重启 XenServer 平台
    复制
    已复制!
                

    [root@xenserver ~]# shutdown –r now Broadcast message from root (pts/1) (Fri Jan 17 14:24:11 2025): The system is going down for reboot NOW! [root@xenserver ~]#

2.4.1.2. 更新用于 XenServer 的 RPM 软件包

如果系统上已安装现有的 NVIDIA 虚拟 GPU 管理器,并且您想要升级,请按照以下步骤操作

  1. 关闭任何正在使用 NVIDIA vGPU 的 VM。
  2. 使用 rpm 命令的 –U 选项安装新软件包,以从先前安装的软件包升级
    复制
    已复制!
                

    [root@xenserver ~]# rpm -Uv NVIDIA-vGPU-NVIDIA-vGPU-CitrixHypervisor-8.2-550.144.02.x86_64.rpm Preparing packages for installation... NVIDIA-vGPU-NVIDIA-vGPU-CitrixHypervisor-8.2-550.144.02 [root@xenserver ~]#

    注意

    您可以使用 rpm –q 命令查询当前 NVIDIA 虚拟 GPU 管理器软件包的版本

    复制
    已复制!
                

    [root@xenserver ~]# rpm –q NVIDIA-vGPU-NVIDIA-vGPU-CitrixHypervisor-8.2-550.144.02 [root@xenserver ~]# If an existing NVIDIA GRID package is already installed and you don’t select the upgrade (-U) option when installing a newer GRID package, the rpm command will return many conflict errors. Preparing packages for installation... file /usr/bin/nvidia-smi from install of NVIDIA-vGPU-NVIDIA-vGPU-CitrixHypervisor-8.2-550.144.02.x86_64 conflicts with file from package NVIDIA-vGPU-xenserver-8.2-550.127.06.x86_64 file /usr/lib/libnvidia-ml.so from install of NVIDIA-vGPU-NVIDIA-vGPU-CitrixHypervisor-8.2-550.144.02.x86_64 conflicts with file from package NVIDIA-vGPU-xenserver-8.2-550.127.06.x86_64 ...

  3. 重启 XenServer 平台
    复制
    已复制!
                

    [root@xenserver ~]# shutdown –r now Broadcast message from root (pts/1) (Fri Jan 17 14:24:11 2025): The system is going down for reboot NOW! [root@xenserver ~]#

2.4.1.3. 安装或更新用于 XenServer 的 Supplemental Pack

XenCenter 可用于在 XenServer 主机上安装或更新 Supplemental Pack。NVIDIA 虚拟 GPU 管理器 supplemental pack 以 ISO 形式提供。

  1. 工具菜单中选择安装更新
  2. 在浏览开始之前部分上的说明后,单击下一步
  3. 选择更新部分,单击从磁盘选择更新或 Supplemental Pack,然后打开 NVIDIA 的 XenServer Supplemental Pack ISO。

    图 3. 在 XenCenter 中选择的 NVIDIA vGPU 管理器 supplemental pack

    supplemental-pack-vgu-selected-xencenter.png

  4. 选择更新部分,单击下一步
  5. 选择服务器部分,选择应在其上安装 Supplemental Pack 的所有 XenServer 主机,然后单击下一步
  6. 在 Supplemental Pack 上传到所有 XenServer 主机后,在上传部分单击下一步
  7. 预检部分单击下一步
  8. 更新模式部分单击安装更新
  9. 安装更新部分单击完成

图 4. NVIDIA vGPU 管理器 supplemental pack 成功安装

supplemental-pack-vgu-installed-xencenter.png

2.4.1.4. 验证用于 XenServer 软件包的 NVIDIA vGPU 软件的安装

XenServer 平台重启后,验证用于 XenServer 的 NVIDIA vGPU 软件包的安装。

  1. 通过检查内核加载模块列表中是否存在 NVIDIA 内核驱动程序,验证 NVIDIA vGPU 软件包是否已安装并正确加载。
    复制
    已复制!
                

    [root@xenserver ~]# lsmod | grep nvidia nvidia 9522927 0 i2c_core 20294 2 nvidia,i2c_i801 [root@xenserver ~]#

  2. 通过运行 nvidia-smi 命令,验证 NVIDIA 内核驱动程序是否可以与系统中的 NVIDIA 物理 GPU 成功通信。nvidia-smi 命令在 NVIDIA 系统管理界面 nvidia-smi 中进行了更详细的描述。

运行 nvidia-smi 命令应生成平台中 GPU 的列表。

复制
已复制!
            

[root@xenserver ~]# nvidia-smi Fri Jan 17 18:46:50 2025 +------------------------------------------------------+ | NVIDIA-SMI 550.144.02 Driver Version: 550.144.02 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla M60 On | 00000000:05:00.0 Off | Off | | N/A 25C P8 24W / 150W | 13MiB / 8191MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 1 Tesla M60 On | 00000000:06:00.0 Off | Off | | N/A 24C P8 24W / 150W | 13MiB / 8191MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 2 Tesla M60 On | 00000000:86:00.0 Off | Off | | N/A 25C P8 25W / 150W | 13MiB / 8191MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 3 Tesla M60 On | 00000000:87:00.0 Off | Off | | N/A 28C P8 24W / 150W | 13MiB / 8191MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+ [root@xenserver ~]#


如果 nvidia-smi 无法运行或未为系统中的所有 NVIDIA GPU 生成预期输出,请参阅 故障排除,以获取故障排除步骤。

2.4.2. 使用虚拟 GPU 配置 XenServer VM

为了支持计算或图形密集型应用程序和工作负载,您可以向单个 VM 添加多个 vGPU。

有关哪些 XenServer 版本和 NVIDIA vGPU 支持将多个 vGPU 分配给 VM 的详细信息,请参阅 用于 XenServer 的虚拟 GPU 软件发行说明

XenServer 支持使用 XenCenter 或在 XenServer dom0 shell 中运行的 xe 命令行工具配置和管理虚拟 GPU。以下部分介绍了使用 XenCenter 进行的基本配置。使用 xe 进行命令行管理在 XenServer vGPU 管理 中进行了描述。

注意

如果您使用的是 Citrix Hypervisor 8.1 或更高版本,并且需要分配插件配置参数,请使用 xe 命令创建 vGPU,如 使用 xe 创建 vGPU 中所述。


  1. 确保 VM 已关闭电源。
  2. 在 XenCenter 中右键单击 VM,选择属性以打开 VM 的属性,然后选择 GPU 属性。可用 GPU 类型在 GPU 类型下拉列表中列出:

    图 5. 使用 Citrix XenCenter 配置带有 vGPU 的 VM

    xencenter-configure-vm-with-gpu.png

配置带有 vGPU 的 XenServer VM 后,从 XenCenter 或通过在 dom0 shell 中使用 xe vm-start 启动 VM。您可以在 XenCenter 中查看 VM 的控制台。

VM 启动后,安装 NVIDIA vGPU 软件图形驱动程序,如 安装 NVIDIA vGPU 软件图形驱动程序 中所述。

2.4.3. 在 XenServer 上设置 vGPU 插件参数

vGPU 的插件参数控制 vGPU 的行为,例如每秒帧数 (FPS) 的帧率限制器 (FRL) 配置,或者是否启用 vGPU 的控制台虚拟网络计算 (VNC)。分配了 vGPU 的 VM 将使用这些参数启动。如果为分配给同一 VM 的多个 vGPU 设置了参数,则 VM 将使用分配给每个 vGPU 的参数启动。

对于要设置插件参数的每个 vGPU,在 XenServer dom0 域的命令 shell 中执行此任务。

  1. 获取 hypervisor 主机上所有 VM 的 UUID,并使用该命令的输出标识分配了 vGPU 的 VM。
    复制
    已复制!
                

    [root@xenserver ~] xe vm-list ... uuid ( RO) : 7f6c855d-5635-2d57-9fbc-b1200172162f name-label ( RW): RHEL8.3 power-state ( RO): running ...

  2. 获取 hypervisor 主机上所有 vGPU 的 UUID,并从分配了 vGPU 的 VM 的 UUID 中,确定 vGPU 的 UUID。
    复制
    已复制!
                

    [root@xenserver ~] xe vgpu-list ... uuid ( RO) : d15083f8-5c59-7474-d0cb-fbc3f7284f1b vm-uuid ( RO): 7f6c855d-5635-2d57-9fbc-b1200172162f device ( RO): 0 gpu-group-uuid ( RO): 3a2fbc36-827d-a078-0b2f-9e869ae6fd93 ...

  3. 使用 xe 命令设置要设置的每个 vGPU 插件参数。
    复制
    已复制!
                

    [root@xenserver ~] xe vgpu-param-set uuid=vgpu-uuid extra_args='parameter=value'

    vgpu-uuid
    vGPU 的 UUID,您在上一步中获得。
    parameter
    要设置的 vGPU 插件参数的名称。
    value
    要将 vGPU 插件参数设置到的值。

    此示例将 UUID 为 d15083f8-5c59-7474-d0cb-fbc3f7284f1b 的 vGPU 的 enable_uvm vGPU 插件参数设置为 1。此参数设置启用 vGPU 的统一内存。

    复制
    已复制!
                

    [root@xenserver ~] xe vgpu-param-set uuid=d15083f8-5c59-7474-d0cb-fbc3f7284f1b extra_args='enable_uvm=1'

2.5. 安装用于 Linux KVM 的虚拟 GPU 管理器软件包

用于基于 Linux 内核的虚拟机 (KVM) (Linux KVM) 的 NVIDIA vGPU 软件适用于受支持版本的 Linux KVM hypervisor。有关支持哪些 Linux KVM hypervisor 版本的详细信息,请参阅 用于通用 Linux 与 KVM 的虚拟 GPU 软件发行说明

注意

如果您使用的是 Red Hat Enterprise Linux KVM,请按照 安装和配置用于 Red Hat Enterprise Linux KVM 的 NVIDIA 虚拟 GPU 管理器 中的说明进行操作。


在安装用于 Linux KVM 的虚拟 GPU 管理器软件包之前,请确保满足以下先决条件

  • 以下软件包已安装在 Linux KVM 服务器上

    • GNU 编译器集合 (GCC) 的 x86_64 版本
    • Linux 内核头文件
  • 软件包文件已复制到 Linux KVM 服务器文件系统中的目录中。

如果存在用于 NVIDIA 显卡的 Nouveau 驱动程序,请在安装软件包之前禁用它。

  1. 更改为 Linux KVM 服务器上包含软件包文件的目录。
    复制
    已复制!
                

    # cd package-file-directory

    package-file-directory
    包含软件包文件的目录的路径。
  2. 使软件包文件可执行。
    复制
    已复制!
                

    # chmod +x package-file-name

    package-file-name
    包含用于 Linux KVM 的虚拟 GPU 管理器软件包的文件名,例如 NVIDIA-Linux-x86_64-390.42-vgpu-kvm.run。
  3. 以 root 用户身份运行软件包文件。
    复制
    已复制!
                

    # sudo sh./package-file-name

    软件包文件应启动并显示许可协议。
  4. 接受许可协议以继续安装。
  5. 安装完成后,选择确定退出安装程序。
  6. 重启 Linux KVM 服务器。
    复制
    已复制!
                

    # systemctl reboot

2.6. 安装和配置用于 Microsoft Azure Local 的 NVIDIA 虚拟 GPU 管理器

在开始之前,请确保满足 使用 NVIDIA vGPU 的先决条件 中的先决条件,并且 Microsoft Azure Local 主机按如下方式配置

  • Microsoft Azure Local OS 已安装,如 Microsoft 文档站点上的 部署 Azure Stack HCI 操作系统 中所述。
  • 已启用以下 BIOS 设置
    • 虚拟化支持,例如,Intel 虚拟化技术 (VT-D) 或 AMD 虚拟化 (AMD-V)
    • SR-IOV
    • Above 4G Decoding
    • 对于 Supermicro 服务器:ASPM 支持
    • 对于具有 AMD CPU 的服务器
      • 备用路由 ID 解释 (ARI)
      • 访问控制服务 (ACS)
      • 高级错误报告 (AER)

按照以下说明顺序设置单个 Microsoft Azure Local VM 以使用 NVIDIA vGPU。

  1. 安装用于 Microsoft Azure Local 的 NVIDIA 虚拟 GPU 管理器
  2. 设置 GPU 上允许的 vGPU 系列
  3. 向 Microsoft Azure Local VM 添加 vGPU

这些说明假定您熟悉 Microsoft 文档站点上的 使用 Windows PowerShell 在 Azure Local 上管理 VM 中介绍的 Microsoft Windows PowerShell 命令。

完成设置后,您可以为您的客户机操作系统安装图形驱动程序,并许可您正在使用的任何 NVIDIA vGPU 软件许可产品。

2.6.1. 安装用于 Microsoft Azure Local 的 NVIDIA 虚拟 GPU 管理器

用于虚拟 GPU 管理器的驱动程序软件包以存档文件形式分发。您必须解压缩此存档文件的内容,以便能够从安装信息文件将软件包添加到驱动程序存储。

在 Windows PowerShell 窗口中以管理员用户身份执行此任务。

  1. 下载分发虚拟 GPU 管理器驱动程序软件包的存档文件。
  2. 将存档文件的内容解压缩到可从 Microsoft Azure Local 主机访问的目录中。
  3. 更改为从存档文件中解压缩的 GridSW-Azure-Local 目录。
    注意

    对于 NVIDIA vGPU 软件版本 17.0-17.4,更改为 GridSW-Azure-Stack-HCI 目录。

  4. 使用 PnPUtil 工具从 nvgridswhci.inf 安装信息文件将虚拟 GPU 管理器的驱动程序软件包添加到驱动程序存储。在用于添加驱动程序软件包的命令中,同时设置选项以遍历子目录查找驱动程序软件包,并在必要时重启 Microsoft Azure Local 主机以完成操作。
    复制
    已复制!
                

    PS C:> pnputil /add-driver nvgridswhci.inf /subdirs /install /reboot

  5. 主机重启后,验证 NVIDIA 虚拟 GPU 管理器是否可以与系统中的 NVIDIA 物理 GPU 成功通信。为此目的,运行不带参数的 nvidia-smi 命令。运行 nvidia-smi 命令应生成平台中 GPU 的列表。
  6. 确认 Microsoft Azure Local 主机具有可以通过列出支持 GPU-P 的 GPU 来分区的 GPU 适配器。
    复制
    已复制!
                

    PS C:> Get-VMHostPartitionableGpu

    如果 NVIDIA 虚拟 GPU 管理器已正确安装,则列出主机 GPU 中的每个 GPU。还列出了每个 GPU 支持的分区数以及用于引用每个 GPU 的唯一名称。
  7. 对于每个 GPU,将 GPU 应支持的分区数设置为可以添加到 GPU 的最大 vGPU 数。
    复制
    已复制!
                

    PS C:> Set-VMHostPartitionableGpu -Name "gpu-name" -PartitionCount partitions

    gpu-name
    在上一步中获得的用于引用 GPU 的唯一名称。
    partitions
    可以添加到 GPU 的最大 vGPU 数。此数字取决于虚拟 GPU 类型。例如,可以添加到 NVIDIA A16 GPU 的每种类型的 vGPU 的最大数量如下
    虚拟 GPU 类型 每个 GPU 的最大 vGPU 数

    A16-16Q

    A16-16A

    1

    A16-8Q

    A16-8A

    2

    A16-4Q

    A16-4A

    4

    A16-2Q

    A16-2B

    A16-2A

    8

    A16-1Q

    A16-1B

    A16-1A

    16

2.6.2. 设置 GPU 上允许的 vGPU 系列

虚拟 GPU 管理器允许仅从一个 vGPU 系列在 GPU 上创建虚拟 GPU (vGPU)。默认情况下,只能在 GPU 上创建 Q 系列 vGPU。您可以通过在 Windows 注册表中设置 GPU 的 GridGpupProfileType 值来更改 GPU 上允许的 vGPU 系列。

此任务需要管理员用户权限。

  1. 使用 Windows PowerShell 获取要在其上设置允许的 vGPU 系列的 GPU 的驱动程序密钥。在下一步中,您将需要此信息来识别 Windows 注册表项,其中存储了有关 GPU 的信息。
    1. 获取要在其上设置允许的 vGPU 系列的 GPU 的 InstanceID 属性。
      复制
      已复制!
                  

      PS C:\> Get-PnpDevice -PresentOnly | >> Where-Object {$_.InstanceId -like "PCI\VEN_10DE*" } | >> Select-Object -Property FriendlyName,InstanceId | >> Format-List FriendlyName : NVIDIA A100 InstanceId : PCI\VEN_10DE&DEV_2236&SUBSYS_148210DE&REV_A1\6&17F903&0&00400000

    2. 从您在上一步中获得的 InstanceID 属性中,获取 GPU 的 DEVPKEY_Device_Driver 属性。
      复制
      已复制!
                  

      PS C:\> Get-PnpDeviceProperty -InstanceId "instance-id" | >> where {$_.KeyName -eq "DEVPKEY_Device_Driver"} | >> Select-Object -Property Data Data ---- {4d36e968-e325-11ce-bfc1-08002be10318}\0001

      instance-id
      您在上一步中获得的 GPU 的 InstanceID 属性,例如,PCI\VEN_10DE&DEV_2236&SUBSYS_148210DE&REV_A1\6&17F903&0&00400000
  2. 在 Windows 注册表项 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\<i>driver-key</i> 中设置 GridGpupProfileType DWord (REG_DWORD) 注册表值。
    driver-key
    您在上一步中获得的 GPU 的驱动程序密钥,例如,{4d36e968-e325-11ce-bfc1-08002be10318}\0001

    要设置的值取决于您希望在 GPU 上允许的 vGPU 系列。

    vGPU 系列
    Q 系列 1
    A 系列 2
    B 系列 3

2.6.3. 向 Microsoft Azure Local VM 添加 vGPU

您可以通过向 VM 添加 GPU-P 适配器来向 Microsoft Azure Local VM 添加 vGPU。

在 Windows PowerShell 窗口中以管理员用户身份执行此任务。

  1. 将变量 $vm 设置为您要向其添加 vGPU 的虚拟机的名称。
    复制
    已复制!
                

    PS C:> $vm = "vm-name"

    vm-name
    您要向其添加 vGPU 的虚拟机的名称。
  2. 允许 VM 控制 MMIO 访问的缓存类型。
    复制
    已复制!
                

    PS C:> Set-VM -GuestControlledCacheTypes $true -VMName $vm

  3. 将较低的 MMIO 空间设置为 1 GB,以便允许映射足够的 MMIO 空间。
    复制
    已复制!
                

    PS C:> Set-VM -LowMemoryMappedIoSpace 1Gb -VMName $vm

    此数量是设备必须允许对齐的数量的两倍。较低的 MMIO 空间是 4 GB 以下的地址空间,对于任何具有 32 位 BAR 内存的设备都是必需的。

  4. 将较高的 MMIO 空间设置为 32 GB,以便允许映射足够的 MMIO 空间。
    复制
    已复制!
                

    PS C:> Set-VM –HighMemoryMappedIoSpace 32GB –VMName $vm

    此数量是设备必须允许对齐的数量的两倍。较高的 MMIO 空间是大约 64 GB 以上的地址空间。

  5. 确认 Microsoft Azure Local 主机具有支持您要创建的 GPU-P 适配器的 GPU。
    复制
    已复制!
                

    PS C:> get-VMHostPartitionableGpu

    您可以为要创建的 GPU 的属性指定的最大值和最小值也列出。
  6. 向 VM 添加 GPU-P 适配器。
    复制
    已复制!
                

    PS C:> Add-VMGpuPartitionAdapter –VMName $vm ` –MinPartitionVRAM min-ram ` -MaxPartitionVRAM max-ram ` -OptimalPartitionVRAM opt-ram ` -MinPartitionEncode min-enc ` -MaxPartitionEncode max-enc ` -OptimalPartitionEncode opt-enc ` -MinPartitionDecode min-dec ` -MaxPartitionDecode max-dec ` -OptimalPartitionDecode opt-dec ` -MinPartitionCompute min-compute ` -MaxPartitionCompute max-compute ` -OptimalPartitionCompute opt-compute

    注意

    由于分区仅在 VM 启动时解析,因此此命令无法验证 Microsoft Azure Local 主机是否具有支持您要创建的 GPU-P 适配器的 GPU。您指定的值必须在在上一步中列出的最大值和最小值范围内。

  7. 列出分配给 VM 的适配器,以确认 GPU-P 适配器已添加到 VM。
    复制
    已复制!
                

    PS C:> Get-VMGpuPartitionAdapter –VMName $vm

    此命令还返回用于重新配置或删除 GPU 分区的适配器 ID。

  8. 连接并启动 VM。

2.6.4. 卸载用于 Microsoft Azure Local 的 NVIDIA 虚拟 GPU 管理器

如果您不再需要在 Microsoft Azure Local 服务器上使用虚拟 GPU 管理器,您可以卸载虚拟 GPU 管理器的驱动程序软件包。

在 Windows PowerShell 窗口中以管理员用户身份执行此任务。

  1. 通过枚举驱动程序存储中的所有第三方驱动程序软件包,确定虚拟 GPU 管理器的驱动程序软件包的已发布名称。
    复制
    已复制!
                

    PS C:> pnputil /enum-drivers

    将显示类似于以下示例的信息。在此示例中,虚拟 GPU 管理器的驱动程序软件包的已发布名称为 oem5.inf。
    复制
    已复制!
                

    Microsoft PnP Utility ... Published name : oem5.inf Driver package provider : NVIDIA Class : Display adapters Driver date and version : 01/01/2023 31.0.15.2807 Signer name : Microsoft Windows Hardware Compatibility Publisher ...

  2. 删除并卸载虚拟 GPU 管理器的驱动程序软件包。
    复制
    已复制!
                

    PS C:> pnputil /delete-driver vgpu-manager-package-published-name /uninstall /reboot

    vgpu-manager-package-published-name
    您在上一步中获得的虚拟 GPU 管理器的驱动程序软件包的已发布名称,例如,oem5.inf。

    此示例删除并卸载已发布名称为 oem5.inf 的驱动程序软件包。

    复制
    已复制!
                

    PS C:> pnputil.exe /delete-driver oem5.inf /uninstall /reboot Microsoft PnP Utility Driver package uninstalled. Driver package deleted successfully.

    如有必要,将重启 Microsoft Azure Local 服务器。

2.7. 安装和配置用于 Red Hat Enterprise Linux KVM 的 NVIDIA 虚拟 GPU 管理器

以下主题将逐步指导您完成设置单个 Red Hat Enterprise Linux 基于内核的虚拟机 (KVM) VM 以使用 NVIDIA vGPU 的过程。

注意

VM 控制台的输出对于正在运行 vGPU 的 VM 不可用。在配置 vGPU 之前,请确保您已安装访问 VM 的替代方法(例如 VNC 服务器)。

按照以下说明顺序操作

  1. 安装用于 Red Hat Enterprise Linux KVM 的虚拟 GPU 管理器软件包
  2. 验证用于 Red Hat Enterprise Linux KVM 的 NVIDIA vGPU 软件的安装
  3. 仅支持 SR-IOV 的 vGPU:在具有 KVM Hypervisor 的 Linux 上为支持 SR-IOV 的 NVIDIA vGPU 准备虚拟功能
  4. 可选:将 GPU 置于混合大小模式
  5. 在具有 KVM Hypervisor 的 Linux 上获取 GPU 的 BDF 和域
  6. 在具有 KVM Hypervisor 的 Linux 上创建 NVIDIA vGPU
  7. 向具有 KVM Hypervisor 的 Linux VM 添加一个或多个 vGPU
  8. 可选:在具有 KVM Hypervisor 的 Linux 上将 vGPU 放置在混合大小模式的物理 GPU 上
  9. 在具有 KVM Hypervisor 的 Linux 上设置 vGPU 插件参数

完成此过程后,您可以为您的客户机操作系统安装图形驱动程序,并许可您正在使用的任何 NVIDIA vGPU 软件许可产品。

注意

如果您使用的是通用 Linux KVM hypervisor,请按照 安装用于 Linux KVM 的虚拟 GPU 管理器软件包 中的说明进行操作。


2.7.1. 安装用于 Red Hat Enterprise Linux KVM 的虚拟 GPU 管理器软件包

用于 Red Hat Enterprise Linux KVM 的 NVIDIA 虚拟 GPU 管理器以 .rpm 文件的形式提供。

注意

NVIDIA 虚拟 GPU 管理器和客户机 VM 驱动程序必须兼容。如果您将 vGPU 管理器更新到与客户机 VM 驱动程序不兼容的版本,客户机 VM 将在禁用 vGPU 的情况下启动,直到其客户机 vGPU 驱动程序更新到兼容版本。有关更多详细信息,请参阅 用于 Red Hat Enterprise Linux 与 KVM 的虚拟 GPU 软件发行说明


在安装用于 Red Hat Enterprise Linux KVM 的 RPM 软件包之前,请确保 Red Hat Enterprise Linux KVM 服务器上的 sshd 服务配置为允许 root 登录。如果存在用于 NVIDIA 显卡的 Nouveau 驱动程序,请在安装软件包之前禁用它。有关说明,请参阅 如何在 RHEL 7 中禁用 Nouveau 驱动程序并安装 Nvidia 驱动程序(需要 Red Hat 订阅)。

某些版本的 Red Hat Enterprise Linux KVM 具有 z-stream 更新,这些更新会破坏内核应用程序二进制接口 (kABI) 与先前内核或 GA 内核的兼容性。对于这些版本的 Red Hat Enterprise Linux KVM,提供以下虚拟 GPU 管理器 RPM 软件包

  • 用于 GA Linux KVM 内核的软件包
  • 用于更新的 z-stream 内核的软件包

为了区分这些软件包,每个 RPM 软件包的名称都包含内核版本。确保您安装的 RPM 软件包与您的 Linux KVM 内核版本兼容。

  1. 将 RPM 文件从您下载该文件的系统安全地复制到 Red Hat Enterprise Linux KVM 服务器。
    • 从 Windows 系统,使用安全复制客户端,例如 WinSCP。
    • 从 Linux 系统,使用 scp 命令。
  2. 使用安全 shell (SSH) 以 root 身份登录到 Red Hat Enterprise Linux KVM 服务器。
    复制
    已复制!
                

    # ssh root@kvm-server

    kvm-server
    Red Hat Enterprise Linux KVM 服务器的主机名或 IP 地址。
  3. 更改为 Red Hat Enterprise Linux KVM 服务器上您复制 RPM 文件的目录。
    复制
    已复制!
                

    # cd rpm-file-directory

    rpm-file-directory
    您复制 RPM 文件的目录的路径。
  4. 使用 rpm 命令安装软件包。
    复制
    已复制!
                

    # rpm -iv NVIDIA-vGPU-rhel-8.9-550.144.02.x86_64.rpm Preparing packages for installation... NVIDIA-vGPU-rhel-8.9-550.144.02 #

  5. 重启 Red Hat Enterprise Linux KVM 服务器。
    复制
    已复制!
                

    # systemctl reboot

2.7.2. 验证用于 Red Hat Enterprise Linux KVM 的 NVIDIA vGPU 软件的安装

Red Hat Enterprise Linux KVM 服务器重启后,验证用于 Red Hat Enterprise Linux KVM 的 NVIDIA vGPU 软件包的安装。

  1. 通过检查内核加载模块列表中是否存在 VFIO 驱动程序,验证 NVIDIA vGPU 软件包是否已安装并正确加载。
    复制
    已复制!
                

    # lsmod | grep vfio nvidia_vgpu_vfio 27099 0 nvidia 12316924 1 nvidia_vgpu_vfio vfio_mdev 12841 0 mdev 20414 2 vfio_mdev,nvidia_vgpu_vfio vfio_iommu_type1 22342 0 vfio 32331 3 vfio_mdev,nvidia_vgpu_vfio,vfio_iommu_type1 #

  2. 验证 libvirtd 服务是否处于活动状态并正在运行。
    复制
    已复制!
                

    # service libvirtd status

  3. 通过运行 nvidia-smi 命令,验证 NVIDIA 内核驱动程序是否可以与系统中的 NVIDIA 物理 GPU 成功通信。nvidia-smi 命令在 NVIDIA 系统管理界面 nvidia-smi 中进行了更详细的描述。

运行 nvidia-smi 命令应生成平台中 GPU 的列表。

复制
已复制!
            

# nvidia-smi Fri Jan 17 18:46:50 2025 +------------------------------------------------------+ | NVIDIA-SMI 550.144.02 Driver Version: 550.144.02 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla M60 On | 0000:85:00.0 Off | Off | | N/A 23C P8 23W / 150W | 13MiB / 8191MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 1 Tesla M60 On | 0000:86:00.0 Off | Off | | N/A 29C P8 23W / 150W | 13MiB / 8191MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 2 Tesla P40 On | 0000:87:00.0 Off | Off | | N/A 21C P8 18W / 250W | 53MiB / 24575MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+ #


如果 nvidia-smi 无法运行或未为系统中的所有 NVIDIA GPU 生成预期输出,请参阅 故障排除,以获取故障排除步骤。

2.8. 安装和配置用于 Ubuntu 的 NVIDIA 虚拟 GPU 管理器

按照以下说明顺序设置单个 Ubuntu VM 以使用 NVIDIA vGPU。

  1. 安装用于 Ubuntu 的 NVIDIA 虚拟 GPU 管理器
  2. 在具有 KVM Hypervisor 的 Linux 上获取 GPU 的 BDF 和域
  3. 仅支持 SR-IOV 的 vGPU:在具有 KVM Hypervisor 的 Linux 上为支持 SR-IOV 的 NVIDIA vGPU 准备虚拟功能
  4. 可选:将 GPU 置于混合大小模式
  5. 在具有 KVM Hypervisor 的 Linux 上创建 NVIDIA vGPU
  6. 向具有 KVM Hypervisor 的 Linux VM 添加一个或多个 vGPU
  7. 可选:在具有 KVM Hypervisor 的 Linux 上将 vGPU 放置在混合大小模式的物理 GPU 上
  8. 在具有 KVM Hypervisor 的 Linux 上设置 vGPU 插件参数
注意

VM 控制台的输出对于正在运行 vGPU 的 VM 不可用。在配置 vGPU 之前,请确保您已安装访问 VM 的替代方法(例如 VNC 服务器)。

完成此过程后,您可以为您的客户机操作系统安装图形驱动程序,并许可您正在使用的任何 NVIDIA vGPU 软件许可产品。

2.8.1. 安装用于 Ubuntu 的 NVIDIA 虚拟 GPU 管理器

用于 Ubuntu 的 NVIDIA 虚拟 GPU 管理器以 Debian 软件包 (.deb) 文件的形式提供。

注意

NVIDIA 虚拟 GPU 管理器和客户机 VM 驱动程序必须兼容。如果您将 vGPU 管理器更新到与客户机 VM 驱动程序不兼容的版本,客户机 VM 将在禁用 vGPU 的情况下启动,直到其客户机 vGPU 驱动程序更新到兼容版本。有关更多详细信息,请参阅 用于 Ubuntu 的虚拟 GPU 软件发行说明


2.8.1.1. 安装用于 Ubuntu 的虚拟 GPU 管理器软件包

在安装用于 Ubuntu 的 Debian 软件包之前,请确保 Ubuntu 服务器上的 sshd 服务配置为允许 root 登录。如果存在用于 NVIDIA 显卡的 Nouveau 驱动程序,请在安装软件包之前禁用它。

  1. 将 Debian 软件包文件从您下载该文件的系统安全地复制到 Ubuntu 服务器。
    • 从 Windows 系统,使用安全复制客户端,例如 WinSCP。
    • 从 Linux 系统,使用 scp 命令。
  2. 使用安全 shell (SSH) 以 root 身份登录到 Ubuntu 服务器。
    复制
    已复制!
                

    # ssh root@ubuntu-server

    ubuntu-server
    Ubuntu 服务器的主机名或 IP 地址。
  3. 更改为 Ubuntu 服务器上您复制 Debian 软件包文件的目录。
    复制
    已复制!
                

    # cd deb-file-directory

    deb-file-directory
    您复制 Debian 软件包文件的目录的路径。
  4. 使用 apt 命令安装软件包。
    复制
    已复制!
                

    # apt install ./nvidia-vgpu-ubuntu-550.144.02_amd64.deb

  5. 重启 Ubuntu 服务器。
    复制
    已复制!
                

    # systemctl reboot

2.8.1.2. 验证用于 Ubuntu 的 NVIDIA vGPU 软件的安装

Ubuntu 服务器重启后,验证用于 Ubuntu 的 NVIDIA vGPU 软件包的安装。

  1. 通过检查内核加载模块列表中是否存在 VFIO 驱动程序,验证 NVIDIA vGPU 软件包是否已安装并正确加载。
    复制
    已复制!
                

    # lsmod | grep vfio nvidia_vgpu_vfio 27099 0 nvidia 12316924 1 nvidia_vgpu_vfio vfio_mdev 12841 0 mdev 20414 2 vfio_mdev,nvidia_vgpu_vfio vfio_iommu_type1 22342 0 vfio 32331 3 vfio_mdev,nvidia_vgpu_vfio,vfio_iommu_type1 #

  2. 验证 libvirtd 服务是否处于活动状态并正在运行。
    复制
    已复制!
                

    # service libvirtd status

  3. 通过运行 nvidia-smi 命令,验证 NVIDIA 内核驱动程序是否可以与系统中的 NVIDIA 物理 GPU 成功通信。nvidia-smi 命令在 NVIDIA 系统管理界面 nvidia-smi 中进行了更详细的描述。

运行 nvidia-smi 命令应生成平台中 GPU 的列表。

复制
已复制!
            

# nvidia-smi Fri Jan 17 18:46:50 2025 +------------------------------------------------------+ | NVIDIA-SMI 550.144.02 Driver Version: 550.144.02 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla M60 On | 0000:85:00.0 Off | Off | | N/A 23C P8 23W / 150W | 13MiB / 8191MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 1 Tesla M60 On | 0000:86:00.0 Off | Off | | N/A 29C P8 23W / 150W | 13MiB / 8191MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 2 Tesla P40 On | 0000:87:00.0 Off | Off | | N/A 21C P8 18W / 250W | 53MiB / 24575MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+ #


如果 nvidia-smi 无法运行或未为系统中的所有 NVIDIA GPU 生成预期输出,请参阅 故障排除,以获取故障排除步骤。

2.9. 安装和配置用于 VMware vSphere 的 NVIDIA 虚拟 GPU 管理器

您可以使用用于 VMware vSphere 的 NVIDIA 虚拟 GPU 管理器来设置 VMware vSphere VM 以使用 NVIDIA vGPU。

注意

某些服务器(例如 Dell R740)如果服务器上禁用了 SR-IOV SBIOS 设置,则不会配置 SR-IOV 功能。如果您在服务器上将 Tesla T4 GPU 与 VMware vSphere 一起使用,则必须确保服务器上启用了 SR-IOV SBIOS 设置。

但是,对于任何服务器硬件,请勿在 VMware vCenter Server 中为 Tesla T4 GPU 启用 SR-IOV。如果在 VMware vCenter Server 中为 T4 启用了 SR-IOV,则 VMware vCenter Server 会将 GPU 的状态列为需要重启。您可以忽略此状态消息。

NVIDIA vGPU 说明

注意

Xorg 服务对于 NVIDIA vGPU 模式下的图形设备不是必需的。有关更多信息,请参阅 安装和更新用于 VMware vSphere 的 NVIDIA 虚拟 GPU 管理器

要设置 VMware vSphere VM 以使用 NVIDIA vGPU,请按照以下说明顺序操作

  1. 安装和更新用于 VMware vSphere 的 NVIDIA 虚拟 GPU 管理器
  2. 为 VMware vSphere 配置带有 vGPU 的 VMware vMotion
  3. 在 VMware vSphere 中更改默认图形类型
  4. 使用 NVIDIA vGPU 配置 vSphere VM
  5. 可选:在 VMware vSphere 上设置 vGPU 插件参数

配置 vSphere VM 以使用 NVIDIA vGPU 后,您可以为您的客户机操作系统安装 NVIDIA vGPU 软件图形驱动程序,并许可您正在使用的任何 NVIDIA vGPU 软件许可产品。

在 DRS 群集中配置 NVIDIA vGPU 的要求

您可以在 VMware Distributed Resource Scheduler (DRS) 群集中的 ESXi 主机上配置带有 NVIDIA vGPU 的 VM。但是,为了确保群集的自动化级别支持配置了 NVIDIA vGPU 的 VM,您必须将自动化级别设置为部分自动化手动

有关这些设置的更多信息,请参阅 VMware 文档中的 编辑群集设置

2.9.1. 安装和更新用于 VMware vSphere 的 NVIDIA 虚拟 GPU 管理器

NVIDIA 虚拟 GPU 管理器在 ESXi 主机上运行。它以 ZIP 存档中的多个软件组件的形式分发。

NVIDIA 虚拟 GPU 管理器软件组件如下

  • 用于 NVIDIA vGPU hypervisor 主机驱动程序的软件组件
  • 用于 NVIDIA GPU 管理守护程序的软件组件

您可以通过以下方式之一安装这些软件组件

注意

NVIDIA Virtual GPU Manager 和 Guest VM 驱动程序必须兼容。如果您将 vGPU Manager 更新到与 Guest VM 驱动程序不兼容的版本,Guest VM 将在禁用 vGPU 的情况下启动,直到其 Guest vGPU 驱动程序更新到兼容版本。有关更多详细信息,请参阅VMware vSphere 虚拟 GPU 软件发行说明


2.9.1.1. 在 VMware vSphere 上安装 NVIDIA Virtual GPU Manager

要安装 NVIDIA Virtual GPU Manager,您需要通过 ESXi Shell 或 SSH 访问 ESXi 主机。请参阅 VMware 文档,了解如何为 ESXi 主机启用 ESXi Shell 或 SSH。
在开始之前,请确保满足以下先决条件

  • 包含 NVIDIA vGPU 软件的 ZIP 存档已从 NVIDIA 许可门户下载。
  • NVIDIA Virtual GPU Manager 的软件组件已从下载的 ZIP 存档中提取。
  1. 将 NVIDIA Virtual GPU Manager 组件文件复制到 ESXi 主机。
  2. 将 ESXi 主机置于维护模式。
    复制
    已复制!
                

    $ esxcli system maintenanceMode set –-enable true

  3. 从其软件组件文件安装 NVIDIA vGPU 虚拟机监控程序主机驱动程序和 NVIDIA GPU 管理守护程序。
    1. 运行 esxcli 命令以从其软件组件文件安装 NVIDIA vGPU 虚拟机监控程序主机驱动程序。
      复制
      已复制!
                  

      $ esxcli software vib install -d /vmfs/volumes/datastore/host-driver-component.zip

    2. 运行 esxcli 命令以从其软件组件文件安装 NVIDIA GPU 管理守护程序。
      复制
      已复制!
                  

      $ esxcli software vib install -d /vmfs/volumes/datastore/gpu-management-daemon-component.zip

    datastore
    您将软件组件复制到的 VMFS 数据存储的名称。
    host-driver-component
    包含 NVIDIA vGPU 虚拟机监控程序主机驱动程序的文件名,以软件组件的形式。确保您指定从下载的 ZIP 存档中提取的文件。例如,对于 VMware vSphere 7.0.2,host-driver-componentNVD-VMware-x86_64-550.144.02-1OEM.702.0.0.17630552-bundle-build-number
    gpu-management-daemon-component
    包含 NVIDIA GPU 管理守护程序的文件名,以软件组件的形式。确保您指定从下载的 ZIP 存档中提取的文件。例如,对于 VMware vSphere 7.0.2,gpu-management-daemon-componentVMW-esx-7.0.2-nvd-gpu-mgmt-daemon-1.0-0.0.0001
  4. 退出维护模式。
    复制
    已复制!
                

    $ esxcli system maintenanceMode set –-enable false

  5. 重启 ESXi 主机。
    复制
    已复制!
                

    $ reboot

2.9.1.2. 更新 VMware vSphere 的 NVIDIA Virtual GPU Manager

如果您想在已安装现有版本的系统上安装新版本的 NVIDIA Virtual GPU Manager,请更新 NVIDIA Virtual GPU Manager。

要更新 vGPU Manager VIB,您需要通过 ESXi Shell 或 SSH 访问 ESXi 主机。请参阅 VMware 文档,了解如何为 ESXi 主机启用 ESXi Shell 或 SSH。

注意

在继续 vGPU Manager 更新之前,请确保所有 VM 都已关闭电源,并且 ESXi 主机已置于维护模式。请参阅 VMware 文档,了解如何将 ESXi 主机置于维护模式


  1. 停止 NVIDIA GPU 管理守护程序。
    复制
    已复制!
                

    $ /etc/init.d/nvdGpuMgmtDaemon stop

  2. 更新 NVIDIA vGPU 虚拟机监控程序主机驱动程序和 NVIDIA GPU 管理守护程序。
    1. 运行 esxcli 命令以从其软件组件文件更新 NVIDIA vGPU 虚拟机监控程序主机驱动程序。
      复制
      已复制!
                  

      $ esxcli software vib update -d /vmfs/volumes/datastore/host-driver-component.zip

    2. 运行 esxcli 命令以从其软件组件文件更新 NVIDIA GPU 管理守护程序。
      复制
      已复制!
                  

      $ esxcli software vib update -d /vmfs/volumes/datastore/gpu-management-daemon-component.zip

    datastore
    您将软件组件复制到的 VMFS 数据存储的名称。
    host-driver-component
    包含 NVIDIA vGPU 虚拟机监控程序主机驱动程序的文件名,以软件组件的形式。确保您指定从下载的 ZIP 存档中提取的文件。例如,对于 VMware vSphere 7.0.2,host-driver-componentNVD-VMware-x86_64-550.144.02-1OEM.702.0.0.17630552-bundle-build-number
    gpu-management-daemon-component
    包含 NVIDIA GPU 管理守护程序的文件名,以软件组件的形式。确保您指定从下载的 ZIP 存档中提取的文件。例如,对于 VMware vSphere 7.0.2,gpu-management-daemon-componentVMW-esx-7.0.2-nvd-gpu-mgmt-daemon-1.0-0.0.0001
  3. 重启 ESXi 主机并将其从维护模式中移除。

2.9.1.3. 验证 vSphere 的 NVIDIA vGPU 软件包的安装

ESXi 主机重启后,验证 vSphere 的 NVIDIA vGPU 软件包的安装。

  1. 通过检查内核加载模块列表中是否存在 NVIDIA 内核驱动程序,验证 NVIDIA vGPU 软件包是否已正确安装和加载。
    复制
    已复制!
                

    [root@esxi:~] vmkload_mod -l | grep nvidia nvidia 5 8420

  2. 如果输出中未列出 NVIDIA 驱动程序,请检查 dmesg 中驱动程序报告的任何加载时错误。
  3. 验证 NVIDIA GPU 管理守护程序是否已启动。
    复制
    已复制!
                

    $ /etc/init.d/nvdGpuMgmtDaemon status

  4. 通过运行 nvidia-smi 命令,验证 NVIDIA 内核驱动程序是否可以与系统中的 NVIDIA 物理 GPU 成功通信。nvidia-smi 命令在 NVIDIA 系统管理界面 nvidia-smi 中进行了更详细的描述。

运行 nvidia-smi 命令应生成平台中 GPU 的列表。

复制
已复制!
            

[root@esxi:~] nvidia-smi Fri Jan 17 17:56:22 2025 +------------------------------------------------------+ | NVIDIA-SMI 550.144.02 Driver Version: 550.144.02 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla M60 On | 00000000:05:00.0 Off | Off | | N/A 25C P8 24W / 150W | 13MiB / 8191MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 1 Tesla M60 On | 00000000:06:00.0 Off | Off | | N/A 24C P8 24W / 150W | 13MiB / 8191MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 2 Tesla M60 On | 00000000:86:00.0 Off | Off | | N/A 25C P8 25W / 150W | 13MiB / 8191MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 3 Tesla M60 On | 00000000:87:00.0 Off | Off | | N/A 28C P8 24W / 150W | 13MiB / 8191MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+


如果 nvidia-smi 未能报告系统中所有 NVIDIA GPU 的预期输出,请参阅故障排除,了解故障排除步骤。

2.9.1.4. 管理 VMware vSphere 的 NVIDIA GPU 管理守护程序

VMware vSphere 的 NVIDIA GPU 管理守护程序是一项服务,通过 /etc/init.d 目录中的脚本进行控制。您可以使用这些脚本来启动守护程序、停止守护程序并获取其状态。

  • 要启动 NVIDIA GPU 管理守护程序,请输入以下命令
    复制
    已复制!
                

    $ /etc/init.d/nvdGpuMgmtDaemon start

  • 要停止 NVIDIA GPU 管理守护程序,请输入以下命令
    复制
    已复制!
                

    $ /etc/init.d/nvdGpuMgmtDaemon stop

  • 要获取 NVIDIA GPU 管理守护程序的状态,请输入以下命令
    复制
    已复制!
                

    $ /etc/init.d/nvdGpuMgmtDaemon status

2.9.2. 配置 VMware vMotion 与 vGPU for VMware vSphere

NVIDIA vGPU 软件支持 vGPU 迁移,其中包括 VMware vMotion 和挂起-恢复,适用于配置了 vGPU 的 VM。要启用 VMware vMotion 与 vGPU,必须启用高级 vCenter Server 设置。但是,默认情况下启用配置了 vGPU 的 VM 的挂起-恢复。

有关哪些 VMware vSphere 版本、NVIDIA GPU 和 Guest OS 版本支持 vGPU 迁移的详细信息,请参阅VMware vSphere 虚拟 GPU 软件发行说明
在为 ESXi 主机配置 VMware vMotion 与 vGPU 之前,请确保主机上已安装当前的 VMware vSphere NVIDIA Virtual GPU Manager 软件包。

  1. 使用 vSphere Web Client 登录到 vCenter Server。
  2. 在“主机和集群”视图中,选择 vCenter Server 实例。
    注意

    请确保选择 vCenter Server 实例,而不是 vCenter Server VM。

  3. 单击配置选项卡。
  4. 设置部分中,选择高级设置,然后单击编辑
  5. 在打开的“编辑高级 vCenter Server 设置”窗口中,在搜索字段中键入 vGPU
  6. vgpu.hotmigrate.enabled 设置出现时,设置已启用选项,然后单击确定

    vmware-vcenter-edit-advanced-server-settings-window.png

2.9.3. 在 VMware vSphere 中更改默认图形类型

安装 VMware vSphere VIB 的 vGPU Manager VIB 后,默认图形类型为“共享”。要在 VMware vSphere 中为 VM 启用 vGPU 支持,您必须将默认图形类型更改为“共享直通”。

如果您不更改默认图形类型,分配了 vGPU 的 VM 将无法启动,并显示以下错误消息

复制
已复制!
            

The amount of graphics resource available in the parent resource pool is insufficient for the operation.

注意

在配置 vGPU 之前更改默认图形类型。对于运行 vGPU 的 VM,VMware vSphere Web Client 中 VM 控制台的输出不可用。


在更改默认图形类型之前,请确保 ESXi 主机正在运行,并且主机上的所有 VM 都已关闭电源。

  1. 使用 vSphere Web Client 登录到 vCenter Server。
  2. 在导航树中,选择您的 ESXi 主机,然后单击配置选项卡。
  3. 从菜单中,选择图形,然后单击主机图形选项卡。
  4. 主机图形选项卡上,单击编辑

    图 6. 共享默认图形类型

    configure-host-graphics-tab-shared-mode-vmware-vsphere.png

  5. 在打开的“编辑主机图形设置”对话框中,选择共享直通,然后单击确定

    图 7. vGPU 的主机图形设置

    shared-to-shared-direct-mode-vmware-vsphere.png

    注意

    在此对话框中,您还可以更改启用 vGPU 的 VM 的分配方案。有关更多信息,请参阅在 VMware vSphere 上修改 GPU 分配策略

    单击“确定”后,默认图形类型将更改为“共享直通”。

  6. 单击图形设备选项卡,以验证您要配置 vGPU 的每个物理 GPU 的配置类型。每个物理 GPU 的配置类型必须为“共享直通”。对于配置类型为“共享”的任何物理 GPU,请按如下方式更改配置类型
    1. 图形设备选项卡上,选择物理 GPU,然后单击编辑图标

      图 8. 共享图形类型

      graphics-devices-shared-vmware-vsphere.png

    2. 在打开的编辑图形设备设置对话框中,选择共享直通,然后单击确定

      图 9. 物理 GPU 的图形设备设置

      shared-to-shared-direct-mode-pgpu-vmware-vsphere.png

  7. 重启 ESXi 主机根据需要停止并重启 ESXi 主机上的 Xorg 服务和 nv-hostengine。

    要停止并重启 Xorg 服务和 nv-hostengine,请执行以下步骤

    1. 仅限 VMware vSphere 7.0 Update 1 之前的版本:停止 Xorg 服务。

      NVIDIA vGPU 模式下的图形设备不需要 Xorg 服务。

    2. 停止 nv-hostengine。
      复制
      已复制!
                  

      [root@esxi:~] nv-hostengine -t

    3. 等待 1 秒钟以允许 nv-hostengine 停止。
    4. 启动 nv-hostengine。
      复制
      已复制!
                  

      [root@esxi:~] nv-hostengine -d

    5. 仅限 VMware vSphere 7.0 Update 1 之前的版本:启动 Xorg 服务。

      NVIDIA vGPU 模式下的图形设备不需要 Xorg 服务。

      复制
      已复制!
                  

      [root@esxi:~] /etc/init.d/xorg start

  8. 在 VMware vCenter Web UI 的图形设备选项卡中,确认每个物理 GPU 的活动类型和配置类型均为“共享直通”。

    图 10. 共享直通图形类型

    graphics-devices-shared-direct-vmware-vsphere.png

更改默认图形类型后,按照配置带有 NVIDIA vGPU 的 vSphere VM中的说明配置 vGPU。

另请参阅 VMware vSphere 文档中的以下主题

2.9.4. 配置带有 NVIDIA vGPU 的 vSphere VM

为了支持计算或图形密集型应用程序和工作负载,您可以向单个 VM 添加多个 vGPU。

有关哪些 VMware vSphere 版本和 NVIDIA vGPU 支持为 VM 分配多个 vGPU 的详细信息,请参阅VMware vSphere 虚拟 GPU 软件发行说明

注意

对于运行 vGPU 的 VM,VMware vSphere Web Client 中 VM 控制台的输出不可用。在配置 vGPU 之前,请确保您已安装访问 VM 的其他方法(例如 Omnissa Horizon 或 VNC 服务器)。

从 VM 配置中移除 vGPU 参数后,vSphere Web Client 中的 VM 控制台将再次变为活动状态。
如何配置带有 vGPU 的 vSphere VM 取决于您的 VMware vSphere 版本,如下列主题所述

配置带有 vGPU 的 vSphere VM 后,启动 VM。此 vGPU 版本不支持 vSphere Web Client 中的 VM 控制台。因此,请使用 Omnissa Horizon 或 VNC 访问 VM 的桌面。

VM 启动后,安装 NVIDIA vGPU 软件图形驱动程序,如 安装 NVIDIA vGPU 软件图形驱动程序 中所述。

2.9.4.1. 配置带有 NVIDIA vGPU 的 vSphere 8 VM

  1. 打开 vCenter Web UI。
  2. 在 vCenter Web UI 中,右键单击 VM,然后选择编辑设置
  3. 在打开的“编辑设置”窗口中,配置要添加到 VM 的 vGPU。按如下方式添加要添加到 VM 的每个 vGPU
    1. 添加新设备菜单中,选择 PCI 设备

      图 11. 添加 PCI 设备的命令

      edit-settings-vmware-8.png

    2. 在打开的“设备选择”窗口中,选择您要配置的 vGPU 类型,然后单击选择
      注意

      NVIDIA vGPU 软件支持 VMware vSphere 上的 vCS。因此,C 系列 vGPU 类型在“设备选择”窗口中不可用。

      图 12. vGPU 的 VM 设备选择

      vgpu-device-selection-vmware-8.png

  4. 返回“编辑设置”窗口,单击确定

2.9.4.2. 配置带有 NVIDIA vGPU 的 vSphere 7 VM

如果您要向单个 VM 添加多个 vGPU,请为要添加到 VM 的每个 vGPU 执行此任务。

  1. 打开 vCenter Web UI。
  2. 在 vCenter Web UI 中,右键单击 VM,然后选择编辑设置
  3. 单击虚拟硬件选项卡。
  4. 新设备列表中,选择共享 PCI 设备,然后单击添加PCI 设备字段应自动填充 NVIDIA GRID vGPU

    图 13. vGPU 的 VM 设置

    vgpu-settings-vmware-vsphere.png

  5. GPU 配置文件下拉菜单中,选择您要配置的 vGPU 类型,然后单击确定
    注意

    NVIDIA vGPU 软件支持 VMware vSphere 上的 vCS。因此,C 系列 vGPU 类型在GPU 配置文件下拉菜单中不可用。

  6. 确保运行 vGPU 的 VM 已预留所有内存
    1. 从 vCenter Web UI 中选择编辑虚拟机设置
    2. 展开内存部分,然后单击预留所有客户机内存(全部锁定)

2.9.5. 在 VMware vSphere 上设置 vGPU 插件参数

vGPU 的插件参数控制 vGPU 的行为,例如每秒帧数 (FPS) 的帧率限制器 (FRL) 配置,或者是否启用 vGPU 的控制台虚拟网络计算 (VNC)。分配了 vGPU 的 VM 将使用这些参数启动。如果为分配给同一 VM 的多个 vGPU 设置了参数,则 VM 将使用分配给每个 vGPU 的参数启动。

确保分配了 vGPU 的 VM 已关闭电源。
对于要设置插件参数的每个 vGPU,请在 vSphere Client 中执行此任务。vGPU 插件参数是高级 VM 属性中的 PCI 直通配置参数。

  1. 在 vSphere Client 中,浏览到分配了 vGPU 的 VM。
  2. 右键单击 VM,然后选择编辑设置
  3. 在“编辑设置”窗口中,单击VM 选项选项卡。
  4. 高级下拉列表中,选择编辑配置
  5. 在“配置参数”对话框中,单击添加行
  6. 名称字段中,键入参数名称 pciPassthruvgpu-id.cfg.parameter,在字段中键入参数值,然后单击确定
    vgpu-id
    一个正整数,用于标识分配给 VM 的 vGPU。对于分配给 VM 的第一个 vGPU,vgpu-id0。例如,如果为 VM 分配了两个 vGPU,并且您要为这两个 vGPU 设置插件参数,请设置以下参数
    • pciPassthru0.cfg.parameter
    • pciPassthru1.cfg.parameter
    parameter
    您要设置的 vGPU 插件参数的名称。例如,用于启用统一内存的 vGPU 插件参数的名称为 enable_uvm

    要为分配给 VM 的两个 vGPU 启用统一内存,请将 pciPassthru0.cfg.enable_uvmpciPassthru1.cfg.enable_uvm 设置为 1。

2.10. 为具有 KVM Hypervisor 的 Linux 配置 vGPU Manager

NVIDIA vGPU 软件支持以下具有 KVM hypervisor 的 Linux:Red Hat Enterprise Linux with KVM 和 Ubuntu。

如果您要配置需要 UEFI VM 上大型 BAR 地址空间的 NVIDIA vGPU,请参阅基于 KVM 的 hypervsiors 上的 NVIDIA vGPU 软件图形驱动程序加载失败,了解确保将 BAR 资源映射到 VM 中的解决方法。

注意

此解决方法涉及设置实验性 QEMU 参数。

2.10.1. 在具有 KVM Hypervisor 的 Linux 上获取 GPU 的 BDF 和域

有时,在配置物理 GPU 以与 NVIDIA vGPU 软件一起使用时,您必须找出 sysfs 文件系统中哪个目录代表 GPU。此目录由 GPU 的域、总线、插槽和功能标识。

有关 sysfs 文件系统中代表物理 GPU 的目录的更多信息,请参阅sysfs 文件系统中的 NVIDIA vGPU 信息

  1. 获取物理 GPU 的 PCI 设备总线/设备/功能 (BDF)。
    复制
    已复制!
                

    # lspci | grep NVIDIA

    此示例中列出的 NVIDIA GPU 的 PCI 设备 BDF 为 06:00.007:00.0

    复制
    已复制!
                

    # lspci | grep NVIDIA 06:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M10] (rev a1) 07:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M10] (rev a1)

  2. 从 GPU 的 PCI 设备 BDF 获取 GPU 的完整标识符。
    复制
    已复制!
                

    # virsh nodedev-list --cap pci| grep transformed-bdf

    transformed-bdf
    GPU 的 PCI 设备 BDF,其中冒号和句点替换为下划线,例如,06_00_0

    此示例获取 PCI 设备 BDF 为 06:00.0 的 GPU 的完整标识符。

    复制
    已复制!
                

    # virsh nodedev-list --cap pci| grep 06_00_0 pci_0000_06_00_0

  3. 从 GPU 的完整标识符中获取 GPU 的域、总线、插槽和功能。
    复制
    已复制!
                

    virsh nodedev-dumpxml full-identifier| egrep 'domain|bus|slot|function'

    full-identifier
    您在上一步中获得的 GPU 的完整标识符,例如,pci_0000_06_00_0

    此示例获取 PCI 设备 BDF 为 06:00.0 的 GPU 的域、总线、插槽和功能。

    复制
    已复制!
                

    # virsh nodedev-dumpxml pci_0000_06_00_0| egrep 'domain|bus|slot|function' <domain>0x0000</domain> <bus>0x06</bus> <slot>0x00</slot> <function>0x0</function> <address domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>

2.10.2. 为支持 SR-IOV 的 NVIDIA vGPU 准备 Linux KVM Hypervisor 上的虚拟功能

支持 SR-IOV 的 NVIDIA vGPU 驻留在支持 SR-IOV 的物理 GPU 上,例如基于 NVIDIA Ampere 架构的 GPU。在支持 SR-IOV 的 GPU 上创建 NVIDIA vGPU 之前,您必须启用 GPU 的虚拟功能,并获取您要在其上创建 vGPU 的特定虚拟功能的域、总线、插槽和功能。

在执行此任务之前,请确保 GPU 未被任何其他进程使用,例如 CUDA 应用程序、监控应用程序或 nvidia-smi 命令。

  1. 在 sysfs 文件系统中启用物理 GPU 的虚拟功能。
    注意

    在虚拟机监控程序主机重启后,或者如果驱动程序重新加载或升级,sysfs 文件系统中物理 GPU 的虚拟功能将被禁用。

    使用 NVIDIA vGPU 软件提供的自定义脚本 sriov-manage 用于此目的。不要尝试通过任何其他方式启用 GPU 的虚拟功能。

    复制
    已复制!
                

    # /usr/lib/nvidia/sriov-manage -e domain:bus:slot.function

    domain
    bus
    slot
    function
    GPU 的域、总线、插槽和功能,不带 0x 前缀。
    注意

    只能在虚拟功能上创建一个 mdev 设备文件。

    此示例为域 00、总线 41、插槽 0000 和功能 0 的 GPU 启用虚拟功能。

    复制
    已复制!
                

    # /usr/lib/nvidia/sriov-manage -e 00:41:0000.0

  2. 获取 GPU 上可用虚拟功能的域、总线、插槽和功能。
    复制
    已复制!
                

    # ls -l /sys/bus/pci/devices/domain\:bus\:slot.function/ | grep virtfn

    domain
    bus
    slot
    function
    GPU 的域、总线、插槽和功能,不带 0x 前缀。

    此示例显示了插槽 00、总线 41、域 0000 和功能 0 的物理 GPU 的此命令的输出。

    复制
    已复制!
                

    # ls -l /sys/bus/pci/devices/0000:41:00.0/ | grep virtfn lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn0 -> ../0000:41:00.4 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn1 -> ../0000:41:00.5 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn10 -> ../0000:41:01.6 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn11 -> ../0000:41:01.7 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn12 -> ../0000:41:02.0 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn13 -> ../0000:41:02.1 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn14 -> ../0000:41:02.2 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn15 -> ../0000:41:02.3 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn16 -> ../0000:41:02.4 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn17 -> ../0000:41:02.5 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn18 -> ../0000:41:02.6 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn19 -> ../0000:41:02.7 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn2 -> ../0000:41:00.6 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn20 -> ../0000:41:03.0 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn21 -> ../0000:41:03.1 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn22 -> ../0000:41:03.2 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn23 -> ../0000:41:03.3 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn24 -> ../0000:41:03.4 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn25 -> ../0000:41:03.5 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn26 -> ../0000:41:03.6 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn27 -> ../0000:41:03.7 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn28 -> ../0000:41:04.0 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn29 -> ../0000:41:04.1 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn3 -> ../0000:41:00.7 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn30 -> ../0000:41:04.2 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn31 -> ../0000:41:04.3 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn4 -> ../0000:41:01.0 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn5 -> ../0000:41:01.1 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn6 -> ../0000:41:01.2 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn7 -> ../0000:41:01.3 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn8 -> ../0000:41:01.4 lrwxrwxrwx. 1 root root 0 Jul 16 04:42 virtfn9 -> ../0000:41:01.5

  3. 选择您要在其上创建 vGPU 的可用虚拟功能,并记下其域、总线、插槽和功能。

自 17.4 起:在配置了 NVLink 的系统上,sriov-manage 脚本可能无法启用物理 GPU 的虚拟功能,因为 Virtual GPU Manager 的初始化尚未完成。在这种情况下,sriov-manage 脚本会将以下错误消息写入虚拟机监控程序主机上的日志文件

复制
已复制!
            

NVRM: Timeout occurred in event processing by vgpu_mgr daemon


如果日志文件中出现此错误消息,请稍后重试运行 sriov-manage 脚本以启用物理 GPU 的虚拟功能。

2.10.3. 在 Linux KVM Hypervisor 上创建 NVIDIA vGPU

对于要创建的每个 vGPU,请在 Linux KVM hypervisor 主机上的 Linux 命令行 shell 中执行此任务。

在开始之前,请确保您拥有要在其上创建 vGPU 的 GPU 的域、总线、插槽和功能。有关说明,请参阅在 Linux KVM Hypervisor 上获取 GPU 的 BDF 和域
如何在 Linux KVM hypervisor 上创建 NVIDIA vGPU 取决于以下因素

  • NVIDIA vGPU 是否支持单根 I/O 虚拟化 (SR-IOV)
  • hypervisor 是否对支持 SR-IOV 的 NVIDIA vGPU 使用供应商特定的虚拟功能 I/O (VFIO) 框架
    注意

    使用供应商特定 VFIO 框架的 hypervisor 将其用于支持 SR-IOV 的 NVIDIA vGPU。对于旧版 NVIDIA vGPU,hypervisor 仍然使用中介 VFIO mdev 驱动程序框架。

    供应商特定的 VFIO 框架不支持中介 VFIO mdev 驱动程序框架。

对于支持 SR-IOV 的 GPU,Ubuntu 24.04 版本中引入了供应商特定 VFIO 框架的使用。

要确定要为正在创建的 NVIDIA vGPU 遵循哪些说明,请参阅下表。


自 17.4 起:在配置了 NVLink 的系统上,vGPU 可能无法创建,因为 Virtual GPU Manager 的初始化尚未完成。在这种情况下,以下错误消息将写入虚拟机监控程序主机上的日志文件

复制
已复制!
            

NVRM: kvgpumgrCreateRequestVgpu: GPU is not initialized yet


如果日志文件中出现此错误消息,请稍后重试创建 vGPU。

2.10.3.1. 在 Linux KVM Hypervisor 上创建旧版 NVIDIA vGPU

旧版 NVIDIA vGPU 不支持 SR-IOV。

  1. 更改为物理 GPU 的 mdev_supported_types 目录。
    复制
    已复制!
                

    # cd /sys/class/mdev_bus/domain\:bus\:slot.function/mdev_supported_types/

    domain
    bus
    slot
    function
    GPU 的域、总线、插槽和功能,不带 0x 前缀。

    此示例更改为域 0000 和 PCI 设备 BDF 06:00.0 的 GPU 的 mdev_supported_types 目录。

    复制
    已复制!
                

    # cd /sys/bus/pci/devices/0000\:06\:00.0/mdev_supported_types/

  2. 找出 mdev_supported_types 的哪个子目录包含您要创建的 vGPU 类型的注册信息。
    复制
    已复制!
                

    # grep -l "vgpu-type" nvidia-*/name

    vgpu-type
    vGPU 类型,例如,M10-2Q

    此示例显示 M10-2Q vGPU 类型的注册信息包含在 mdev_supported_types 的 nvidia-41 子目录中。

    复制
    已复制!
                

    # grep -l "M10-2Q" nvidia-*/name nvidia-41/name

  3. 确认您可以在物理 GPU 上创建 vGPU 类型的实例。
    复制
    已复制!
                

    # cat subdirectory/available_instances

    subdirectory
    您在上一步中找到的子目录,例如,nvidia-41

    可用实例数必须至少为 1。如果数字为 0,则物理 GPU 上已存在另一个 vGPU 类型的实例,或者已创建允许的最大实例数。

    此示例显示可以在物理 GPU 上创建 M10-2Q vGPU 类型的另外四个实例。

    复制
    已复制!
                

    # cat nvidia-41/available_instances 4

  4. 为 vGPU 生成格式正确的通用唯一标识符 (UUID)。
    复制
    已复制!
                

    # uuidgen aa618089-8b16-4d01-a136-25a0f3c73123

  5. 将您在上一步中获得的 UUID 写入您要创建的 vGPU 类型的注册信息目录中的 create 文件。
    复制
    已复制!
                

    # echo "uuid"> subdirectory/create

    uuid
    您在上一步中生成的 UUID,它将成为您要创建的 vGPU 的 UUID。
    subdirectory
    您要创建的 vGPU 类型的注册信息目录,例如,nvidia-41

    此示例创建 UUID 为 aa618089-8b16-4d01-a136-25a0f3c73123 的 M10-2Q vGPU 类型的实例。

    复制
    已复制!
                

    # echo "aa618089-8b16-4d01-a136-25a0f3c73123" > nvidia-41/create

    vGPU 的 mdev 设备文件已添加到 vGPU 的父物理设备目录中。vGPU 由其 UUID 标识。

    /sys/bus/mdev/devices/ 目录包含指向 mdev 设备文件的符号链接。

  6. 使您创建的 mdev 设备文件保持持久性以表示 vGPU。
    复制
    已复制!
                

    # mdevctl define --auto --uuid uuid

    uuid
    您在上一步中为要创建的 vGPU 指定的 UUID。
    注意

    并非所有 Linux KVM hypervisor 版本都包含 mdevctl 命令。如果您的版本不包含 mdevctl 命令,您可以使用操作系统的标准功能来自动重新创建此设备文件,当主机启动时。例如,您可以编写一个自定义脚本,在主机重启时执行。

  7. 确认 vGPU 已创建。
    1. 确认 /sys/bus/mdev/devices/ 目录包含 vGPU 的 mdev 设备文件。
      复制
      已复制!
                  

      # ls -l /sys/bus/mdev/devices/ total 0 lrwxrwxrwx. 1 root root 0 Nov 24 13:33 aa618089-8b16-4d01-a136-25a0f3c73123 -> ../../../devices/pci0000:00/0000:00:03.0/0000:03:00.0/0000:04:09.0/0000:06:00.0/aa618089-8b16-4d01-a136-25a0f3c73123

    2. 如果您的版本包含 mdevctl 命令,请列出 hypervisor 主机上的活动中介设备。
      复制
      已复制!
                  

      # mdevctl list aa618089-8b16-4d01-a136-25a0f3c73123 0000:06:00.0 nvidia-41

2.10.3.2. 创建支持 SR-IOV 的 Linux KVM Hypervisor 上的 NVIDIA vGPU

支持 SR-IOV 的 NVIDIA vGPU 驻留在支持 SR-IOV 的物理 GPU 上,例如基于 NVIDIA Ampere 架构的 GPU。

在执行此任务之前,请确保已按照为支持 SR-IOV 的 NVIDIA vGPU 准备 Linux KVM Hypervisor 上的虚拟功能中的说明准备了要创建 vGPU 的虚拟功能。

如果您要支持具有不同帧缓冲区大小的 vGPU,还要确保 GPU 已置于混合大小模式,如为支持 SR-IOV 的 NVIDIA vGPU 准备 Linux KVM Hypervisor 上的虚拟功能中所述。

  1. 更改为要在其上创建 vGPU 的虚拟功能的 mdev_supported_types 目录。
    复制
    已复制!
                

    # cd /sys/class/mdev_bus/domain\:bus\:vf-slot.v-function/mdev_supported_types/

    domain
    bus
    GPU 的域和总线,不带 0x 前缀。
    vf-slot
    v-function
    您在为支持 SR-IOV 的 NVIDIA vGPU 在带有 KVM 虚拟机监控程序的 Linux 上准备虚拟功能中记录的虚拟功能的插槽和功能。

    此示例更改为域为 0000 且总线为 41 的 GPU 的第一个虚拟功能 (virtfn0) 的 mdev_supported_types 目录。第一个虚拟功能 (virtfn0) 的插槽为 00,功能为 4

    复制
    已复制!
                

    # cd /sys/class/mdev_bus/0000\:41\:00.4/mdev_supported_types

  2. 找出 mdev_supported_types 的哪个子目录包含您要创建的 vGPU 类型的注册信息。
    复制
    已复制!
                

    # grep -l "vgpu-type" nvidia-*/name

    vgpu-type
    vGPU 类型,例如 A40-2Q

    此示例显示 A40-2Q vGPU 类型的注册信息包含在 mdev_supported_types 的 nvidia-558 子目录中。

    复制
    已复制!
                

    # grep -l "A40-2Q" nvidia-*/name nvidia-558/name

  3. 确认您可以在虚拟功能上创建 vGPU 类型的实例。
    复制
    已复制!
                

    # cat subdirectory/available_instances

    subdirectory
    您在上一步中找到的子目录,例如 nvidia-558

    可用实例数必须为 1。如果数字为 0,则已在虚拟功能上创建了 vGPU。在虚拟功能上只能创建一个任何 vGPU 类型的实例。

    此示例显示可以在虚拟功能上创建 A40-2Q vGPU 类型的实例。

    复制
    已复制!
                

    # cat nvidia-558/available_instances 1

  4. 为 vGPU 生成格式正确的通用唯一标识符 (UUID)。
    复制
    已复制!
                

    # uuidgen aa618089-8b16-4d01-a136-25a0f3c73123

  5. 将您在上一步中获得的 UUID 写入您要创建的 vGPU 类型的注册信息目录中的 create 文件。
    复制
    已复制!
                

    # echo "uuid"> subdirectory/create

    uuid
    您在上一步中生成的 UUID,它将成为您要创建的 vGPU 的 UUID。
    subdirectory
    您要创建的 vGPU 类型的注册信息目录,例如 nvidia-558

    此示例创建 UUID 为 aa618089-8b16-4d01-a136-25a0f3c73123 的 A40-2Q vGPU 类型的实例。

    复制
    已复制!
                

    # echo "aa618089-8b16-4d01-a136-25a0f3c73123" > nvidia-558/create

    vGPU 的 mdev 设备文件被添加到 vGPU 的父虚拟功能目录中。vGPU 由其 UUID 标识。

  6. 仅限分时 vGPU:使您创建的表示 vGPU 的 mdev 设备文件持久化。
    复制
    已复制!
                

    # mdevctl define --auto --uuid uuid

    uuid
    您在上一步中为要创建的 vGPU 指定的 UUID。
    注意
    • 如果您使用的是支持 SR-IOV 的 GPU,则只有在您按照为支持 SR-IOV 的 NVIDIA vGPU 在带有 KVM 虚拟机监控程序的 Linux 上准备虚拟功能中的说明启用 GPU 的虚拟功能后,mdev 设备文件才会在主机重启后持久存在,然后再重启任何配置了 GPU 上 vGPU 的 VM。
    • 不能使用 mdevctl 命令使 MIG 支持的 vGPU 的 mdev 设备文件持久化。MIG 支持的 vGPU 的 mdev 设备文件在主机重启后不会保留,因为 MIG 实例不再可用。
    • 并非所有 Linux KVM hypervisor 版本都包含 mdevctl 命令。如果您的版本不包含 mdevctl 命令,您可以使用操作系统的标准功能来自动重新创建此设备文件,当主机启动时。例如,您可以编写一个自定义脚本,在主机重启时执行。

  7. 确认 vGPU 已创建。
    1. 确认 /sys/bus/mdev/devices/ 目录包含指向 mdev 设备文件的符号链接。
      复制
      已复制!
                  

      # ls -l /sys/bus/mdev/devices/ total 0 lrwxrwxrwx. 1 root root 0 Jul 16 05:57 aa618089-8b16-4d01-a136-25a0f3c73123 -> ../../../devices/pci0000:40/0000:40:01.1/0000:41:00.4/aa618089-8b16-4d01-a136-25a0f3c73123

    2. 如果您的版本包含 mdevctl 命令,请列出 hypervisor 主机上的活动中介设备。
      复制
      已复制!
                  

      # mdevctl list aa618089-8b16-4d01-a136-25a0f3c73123 0000:06:00.0 nvidia-558

2.10.3.3. 在 Linux 和 KVM 虚拟机监控程序上使用厂商特定的 VFIO 框架创建 NVIDIA vGPU

虚拟机监控程序将厂商特定的 VFIO 框架用于支持 SR-IOV 的 NVIDIA vGPU。对于旧版 NVIDIA vGPU,虚拟机监控程序使用标准 VFIO 框架。厂商特定的 VFIO 框架不支持中介 VFIO mdev 驱动程序框架。

对于支持 SR-IOV 的 GPU,Ubuntu 24.04 版本中引入了供应商特定 VFIO 框架的使用。

在执行此任务之前,请确保已按照为支持 SR-IOV 的 NVIDIA vGPU 准备 Linux KVM Hypervisor 上的虚拟功能中的说明准备了要创建 vGPU 的虚拟功能。

如果您要支持具有不同帧缓冲区大小的 vGPU,还要确保 GPU 已置于混合大小模式,如为支持 SR-IOV 的 NVIDIA vGPU 准备 Linux KVM Hypervisor 上的虚拟功能中所述。

  1. 更改到 sysfs 文件系统中的目录,该目录包含您要在其上创建 vGPU 的虚拟功能上的 vGPU 管理文件。
    复制
    已复制!
                

    # cd /sys/bus/pci/devices/domain\:bus\:vf-slot.v-function/nvidia

    domain
    bus
    GPU 的域和总线,不带 0x 前缀。
    vf-slot
    v-function
    您在为支持 SR-IOV 的 NVIDIA vGPU 在带有 KVM 虚拟机监控程序的 Linux 上准备虚拟功能中记录的虚拟功能的插槽和功能。

    此示例更改为域为 0000 且总线为 3d 的 GPU 的第一个虚拟功能 (virtfn0) 的 nvidia 目录。第一个虚拟功能 (virtfn0) 的插槽为 00,功能为 4

    复制
    已复制!
                

    # cd /sys/bus/pci/devices/0000\:3d\:00.4/nvidia

  2. 确认该目录包含虚拟功能上的 vGPU 管理文件,即 creatable_vgpu_types 和 current_vgpu_type。
    复制
    已复制!
                

    # ll -r--r--r-- 1 root root 4096 Aug 3 00:39 creatable_vgpu_types -rw-r--r-- 1 root root 4096 Aug 3 00:39 current_vgpu_type ...

  3. 确认尚未在虚拟功能上创建 vGPU。
    复制
    已复制!
                

    # cat current_vgpu_type 0

    如果当前 vGPU 类型为 0,则尚未在虚拟功能上创建 vGPU。

    注意

    如果当前 vGPU 类型不为 0,则不能在虚拟功能上创建 vGPU,因为已在其上创建了 vGPU,并且在虚拟功能上只能创建一个 vGPU。

  4. 确定可以在虚拟功能上创建的 NVIDIA vGPU 类型以及表示 sysfs 文件系统中每种 vGPU 类型的整数 ID。
    复制
    已复制!
                

    # cat creatable_vgpu_types NVIDIA A40-1Q 557 NVIDIA A40-2Q 558 NVIDIA A40-3Q 559 NVIDIA A40-4Q 560 NVIDIA A40-6Q 561

  5. 将表示您要创建的 NVIDIA vGPU 类型的 ID 写入 current_vgpu_type 文件。
    复制
    已复制!
                

    # echo vgpu-type-id > current_vgpu_type

    vgpu-type-id
    表示您要在 sysfs 文件系统中创建的 NVIDIA vGPU 类型的 ID。
    注意

    您必须指定有效的 ID。如果您指定无效的 ID,则写入操作将失败,并且 current vGPU 类型将设置为 0

    此示例创建 A40-4Q vGPU 类型的实例。

    复制
    已复制!
                

    # echo 560 > current_vgpu_type

  6. 确认虚拟功能上的当前 vGPU 类型与您在上一步中创建的 vGPU 类型匹配。
    复制
    已复制!
                

    # cat current_vgpu_type 560

  7. 确认 creatable_vgpu_types 文件为空,表示无法在虚拟功能上创建 vGPU。
    复制
    已复制!
                

    # cat creatable_vgpu_types

要重新配置虚拟功能上的 vGPU,必须首先删除现有 vGPU,如在 Linux 和 KVM 虚拟机监控程序上使用厂商特定的 VFIO 框架删除 vGPU中所述。

2.10.4. 向带有 KVM 虚拟机监控程序的 Linux VM 添加一个或多个 vGPU

为了支持计算或图形密集型应用程序和工作负载,您可以向单个 VM 添加多个 vGPU。

有关哪些虚拟机监控程序版本和 NVIDIA vGPU 支持将多个 vGPU 分配给 VM 的详细信息,请参阅Red Hat Enterprise Linux with KVM 版虚拟 GPU 软件发行说明Ubuntu 版虚拟 GPU 软件发行说明
确保满足以下先决条件

您可以使用以下任何工具向带有 KVM 虚拟机监控程序的 Linux 虚拟机添加 vGPU

  • virsh 命令
  • QEMU 命令行

向带有 KVM 虚拟机监控程序的 Linux VM 添加 vGPU 后,启动 VM。

复制
已复制!
            

# virsh start vm-name

vm-name
您向其添加 vGPU 的 VM 的名称。

VM 启动后,安装 NVIDIA vGPU 软件图形驱动程序,如 安装 NVIDIA vGPU 软件图形驱动程序 中所述。

2.10.4.1. 使用 virsh 向带有 KVM 虚拟机监控程序的 Linux VM 添加一个或多个 vGPU

  1. 在 virsh 中,打开要向其添加 vGPU 的 VM 的 XML 文件进行编辑。
    复制
    已复制!
                

    # virsh edit vm-name

    vm-name
    您要向其添加 vGPU 的 VM 的名称。
  2. 对于要添加到 VM 的每个 vGPU,在 source 元素内以 address 元素的形式添加设备条目,以将 vGPU 添加到客户机 VM。

    设备条目的内容取决于虚拟机监控程序是否将厂商特定的 VFIO 框架用于支持 SR-IOV 的 NVIDIA vGPU。

    对于支持 SR-IOV 的 GPU,Ubuntu 24.04 版本中引入了供应商特定 VFIO 框架的使用。

    • 对于使用mdev VFIO 框架的虚拟机监控程序,添加一个设备条目,通过其 UUID 标识 vGPU,如下所示

      复制
      已复制!
                  

      <device> ... <hostdev mode='subsystem' type='mdev' model='vfio-pci'> <source> <address uuid='uuid'/> </source> </hostdev> </device>

      uuid
      在创建 vGPU 时分配给 vGPU 的 UUID。

      此示例添加 UUID 为 a618089-8b16-4d01-a136-25a0f3c73123 的 vGPU 的设备条目。

      复制
      已复制!
                  

      <device> ... <hostdev mode='subsystem' type='mdev' model='vfio-pci'> <source> <address uuid='a618089-8b16-4d01-a136-25a0f3c73123'/> </source> </hostdev> </device>

      此示例添加了以下 UUID 的两个 vGPU 的设备条目

      • c73f1fa6-489e-4834-9476-d70dabd98c40
      • 3b356d38-854e-48be-b376-00c72c7d119c
      复制
      已复制!
                  

      <device> ... <hostdev mode='subsystem' type='mdev' model='vfio-pci'> <source> <address uuid='c73f1fa6-489e-4834-9476-d70dabd98c40'/> </source> </hostdev> <hostdev mode='subsystem' type='mdev' model='vfio-pci'> <source> <address uuid='3b356d38-854e-48be-b376-00c72c7d119c'/> </source> </hostdev> </device>

    • 对于使用厂商特定的 VFIO 框架的虚拟机监控程序,添加一个设备条目,通过在其上创建 vGPU 的虚拟功能来标识 vGPU,如下所示

      复制
      已复制!
                  

      <hostdev mode='subsystem' type='pci' managed='no'> <source> <address domain='domain' bus='bus' slot='vf-slot' function='v-function'/> </source> </hostdev>

      domain
      bus
      GPU 的域和总线,包括 0x 前缀。
      vf-slot
      v-function
      您在为支持 SR-IOV 的 NVIDIA vGPU 在带有 KVM 虚拟机监控程序的 Linux 上准备虚拟功能中记录的虚拟功能的插槽和功能。
      注意

      仅在非托管 libvirt 模式下支持 vGPU。因此,请确保在 hostdev 元素中,managed 属性设置为 no

      此示例为在虚拟功能 0000:3d:00.4 上创建的 vGPU 添加设备条目。

      复制
      已复制!
                  

      <device> ... <hostdev mode='subsystem' type='pci' managed='no'> <source> <address domain='0x0000' bus='0x3d' slot='0x00' function='0x4'/> </source> </hostdev> </device>

      此示例为在以下虚拟功能上创建的两个 vGPU 添加设备条目

      • 0000:3d:00.4
      • 0000:3d:00.5
      复制
      已复制!
                  

      <device> ... <hostdev mode='subsystem' type='pci' managed='no'> <source> <address domain='0x0000' bus='0x3d' slot='0x00' function='0x4'/> </source> </hostdev> <hostdev mode='subsystem' type='pci' managed='no'> <source> <address domain='0x0000' bus='0x3d' slot='0x00' function='0x5'/> </source> </hostdev> </device>

  3. 可选:添加一个 video 元素,其中包含一个 model 元素,在该元素中,type 属性设置为 none
    复制
    已复制!
                

    <video> <model type='none'/> </video>

    添加此 video 元素可防止将 libvirt 添加的默认视频设备加载到 VM 中。如果您不添加此 video 元素,则必须配置 Xorg 服务器或您的远程解决方案,以仅加载您添加的 vGPU 设备,而不加载默认视频设备。

2.10.4.2. 使用 QEMU 命令行向带有 KVM 虚拟机监控程序的 Linux VM 添加一个或多个 vGPU

此任务涉及向 QEMU 命令行添加选项,以标识您要添加的 vGPU 以及您要向其添加它们的 VM。

  1. 对于要添加到 VM 的每个 vGPU,添加一个 -device 选项,以标识 vGPU。

    每个 -device 选项的格式取决于虚拟机监控程序是否将厂商特定的 VFIO 框架用于支持 SR-IOV 的 NVIDIA vGPU。

    对于支持 SR-IOV 的 GPU,Ubuntu 24.04 版本中引入了供应商特定 VFIO 框架的使用。

    • 对于使用mdev VFIO 框架的虚拟机监控程序上的每个 vGPU,添加一个 -device 选项,通过其 UUID 标识 vGPU。

      复制
      已复制!
                  

      -device vfio-pci,sysfsdev=/sys/bus/mdev/devices/vgpu-uuid

      vgpu-uuid
      在创建 vGPU 时分配给 vGPU 的 UUID。
    • 对于使用厂商特定的 VFIO 框架的虚拟机监控程序上的每个 vGPU,添加一个 -device 选项,通过在其上创建 vGPU 的虚拟功能来标识 vGPU。

      复制
      已复制!
                  

      -device vfio-pci,sysfsdev=/sys/bus/pci/devices/domain\:bus\:vf-slot.v-function/

      domain
      bus
      GPU 的域和总线,不带 0x 前缀。
      vf-slot
      v-function
      您在为支持 SR-IOV 的 NVIDIA vGPU 在带有 KVM 虚拟机监控程序的 Linux 上准备虚拟功能中记录的虚拟功能的插槽和功能。
  2. 添加 -uuid 选项以指定您要向其添加 vGPU 的 VM。
    复制
    已复制!
                

    -uuid vm-uuid

    vm-uuid
    在创建 VM 时分配给 VM 的 UUID。
在使用 mdev VFIO 框架的虚拟机监控程序上的 VM 中添加一个 vGPU

此示例将 UUID 为 aa618089-8b16-4d01-a136-25a0f3c73123 的 vGPU 添加到 UUID 为 ebb10a6e-7ac9-49aa-af92-f56bb8c65893 的 VM。

复制
已复制!
            

-device vfio-pci,sysfsdev=/sys/bus/mdev/devices/aa618089-8b16-4d01-a136-25a0f3c73123 \ -uuid ebb10a6e-7ac9-49aa-af92-f56bb8c65893


在使用 mdev VFIO 框架的虚拟机监控程序上的 VM 中添加两个 vGPU

此示例添加了以下 UUID 的两个 vGPU 的设备条目

  • 676428a0-2445-499f-9bfd-65cd4a9bd18f
  • 6c5954b8-5bc1-4769-b820-8099fe50aaba

条目被添加到 UUID 为 ec5e8ee0-657c-4db6-8775-da70e332c67e 的 VM。

复制
已复制!
            

-device vfio-pci,sysfsdev=/sys/bus/mdev/devices/676428a0-2445-499f-9bfd-65cd4a9bd18f \ -device vfio-pci,sysfsdev=/sys/bus/mdev/devices/6c5954b8-5bc1-4769-b820-8099fe50aaba \ -uuid ec5e8ee0-657c-4db6-8775-da70e332c67e


在使用厂商特定的 VFIO 框架的虚拟机监控程序上的 VM 中添加一个 vGPU

此示例将虚拟功能 0000:3d:00.4 上创建的 vGPU 添加到 UUID 为 ebb10a6e-7ac9-49aa-af92-f56bb8c65893 的 VM。

复制
已复制!
            

-device vfio-pci,sysfsdev=/sys/bus/pci/devices/0000\:3d\:00.4 \ -uuid ebb10a6e-7ac9-49aa-af92-f56bb8c65893


在使用厂商特定的 VFIO 框架的虚拟机监控程序上的 VM 中添加两个 vGPU

此示例为在以下虚拟功能上创建的两个 vGPU 添加设备条目

  • 0000:3d:00.4
  • 0000:3d:00.5

条目被添加到 UUID 为 ec5e8ee0-657c-4db6-8775-da70e332c67e 的 VM。

复制
已复制!
            

-device vfio-pci,sysfsdev=/sys/bus/pci/devices/0000\:3d\:00.4 \ -device vfio-pci,sysfsdev=/sys/bus/pci/devices/0000\:3d\:00.5 \ -uuid ec5e8ee0-657c-4db6-8775-da70e332c67e

2.10.5. 在带有 KVM 虚拟机监控程序的 Linux 上设置 vGPU 插件参数

vGPU 的插件参数控制 vGPU 的行为,例如每秒帧数 (FPS) 的帧率限制器 (FRL) 配置,或者是否启用 vGPU 的控制台虚拟网络计算 (VNC)。分配了 vGPU 的 VM 将使用这些参数启动。如果为分配给同一 VM 的多个 vGPU 设置了参数,则 VM 将使用分配给每个 vGPU 的参数启动。

对于要设置插件参数的每个 vGPU,请在带有 KVM 虚拟机监控程序的主机上的 Linux 命令 shell 中执行此任务。

  1. 更改到 sysfs 文件系统中的目录,该目录包含您要为其设置 vGPU 插件参数的 vGPU 的 vgpu_params 文件。

    目录取决于虚拟机监控程序是否将厂商特定的 VFIO 框架用于支持 SR-IOV 的 NVIDIA vGPU。

    对于支持 SR-IOV 的 GPU,Ubuntu 24.04 版本中引入了供应商特定 VFIO 框架的使用。

    • 对于使用mdev VFIO 框架的虚拟机监控程序,更改到表示 vGPU 的 mdev 设备目录的 nvidia 子目录。

      复制
      已复制!
                  

      # cd /sys/bus/mdev/devices/uuid/nvidia

      uuid
      vGPU 的 UUID,例如 aa618089-8b16-4d01-a136-25a0f3c73123
    • 对于使用厂商特定的 VFIO 框架的虚拟机监控程序,更改到 sysfs 文件系统中的目录,该目录包含在其上创建 vGPU 的虚拟功能上的 vGPU 管理文件。

      复制
      已复制!
                  

      # cd /sys/bus/pci/devices/domain\:bus\:vf-slot.v-function/nvidia

      domain
      bus
      GPU 的域和总线,不带 0x 前缀。
      vf-slot
      v-function
      您在为支持 SR-IOV 的 NVIDIA vGPU 在带有 KVM 虚拟机监控程序的 Linux 上准备虚拟功能中记录的虚拟功能的插槽和功能。

      此示例更改为域为 0000 且总线为 3d 的 GPU 的第一个虚拟功能 (virtfn0) 的 nvidia 目录。第一个虚拟功能 (virtfn0) 的插槽为 00,功能为 4

      复制
      已复制!
                  

      # cd /sys/bus/pci/devices/0000\:3d\:00.4/nvidia

  2. 将您要设置的插件参数写入您在上一步中更改到的目录中的 vgpu_params 文件。
    复制
    已复制!
                

    # echo "plugin-config-params" > vgpu_params

    plugin-config-params
    逗号分隔的参数值对列表,其中每对的格式为 parameter-name=value

    此示例禁用 vGPU 的帧速率限制和控制台 VNC。

    复制
    已复制!
                

    # echo "frame_rate_limiter=0, disable_vnc=1" > vgpu_params

    此示例为 vGPU 启用统一内存。

    复制
    已复制!
                

    # echo "enable_uvm=1" > vgpu_params

    此示例为 vGPU 启用 NVIDIA CUDA Toolkit 调试器。

    复制
    已复制!
                

    # echo "enable_debugging=1" > vgpu_params

    此示例为 vGPU 启用 NVIDIA CUDA Toolkit 分析器。

    复制
    已复制!
                

    # echo "enable_profiling=1" > vgpu_params

要清除先前设置的任何 vGPU 插件参数,请向 vGPU 的 vgpu_params 文件写入一个空格。

复制
已复制!
            

# echo " " > vgpu_params

2.10.6. 在带有 KVM 虚拟机监控程序的 Linux 上删除 vGPU

如何在带有 KVM 虚拟机监控程序的 Linux 上删除 vGPU 取决于虚拟机监控程序是否将厂商特定的 VFIO 框架用于支持 SR-IOV 的 NVIDIA vGPU。

注意

虚拟机监控程序使用厂商特定的 VFIO 框架用于支持 SR-IOV 的 NVIDIA vGPU。虚拟机监控程序仍然将中介 VFIO mdev 驱动程序框架用于旧版 NVIDIA vGPU。

对于支持 SR-IOV 的 GPU,Ubuntu 24.04 版本中引入了供应商特定 VFIO 框架的使用。

要确定要删除的 NVIDIA vGPU 应遵循哪些说明,请参阅下表。

NVIDIA vGPU 类型 VFIO 框架 说明
旧版:不支持 SR-IOV mdev 在使用 mdev VFIO 框架的 Linux 和 KVM 虚拟机监控程序上删除 vGPU
支持 SR-IOV mdev
支持 SR-IOV 供应商特定 在使用厂商特定的 VFIO 框架的 Linux 和 KVM 虚拟机监控程序上删除 vGPU

2.10.6.1. 在使用 mdev VFIO 框架的 Linux 和 KVM 虚拟机监控程序上删除 vGPU

对于要删除的每个 vGPU,请在带有 KVM 虚拟机监控程序的主机上的 Linux 命令 shell 中执行此任务。
在开始之前,请确保满足以下先决条件

  1. 更改为物理 GPU 的 mdev_supported_types 目录。
    复制
    已复制!
                

    # cd /sys/class/mdev_bus/domain\:bus\:slot.function/mdev_supported_types/

    domain
    bus
    slot
    function
    GPU 的域、总线、插槽和功能,不带 0x 前缀。

    此示例更改为 PCI 设备 BDF 为 06:00.0 的 GPU 的 mdev_supported_types 目录。

    复制
    已复制!
                

    # cd /sys/bus/pci/devices/0000\:06\:00.0/mdev_supported_types/

  2. 更改为 mdev_supported_types 的子目录,该子目录包含 vGPU 的注册信息。
    复制
    已复制!
                

    # cd `find . -type d -name uuid`

    uuid
    vGPU 的 UUID,例如 aa618089-8b16-4d01-a136-25a0f3c73123
  3. 将值 1 写入您要删除的 vGPU 的注册信息目录中的 remove 文件。
    复制
    已复制!
                

    # echo "1" > remove

2.10.6.2. 在使用厂商特定的 VFIO 框架的 Linux 和 KVM 虚拟机监控程序上删除 vGPU

虚拟机监控程序将厂商特定的 VFIO 框架用于支持 SR-IOV 的 NVIDIA vGPU。对于旧版 NVIDIA vGPU,虚拟机监控程序使用 mdev VFIO 框架。厂商特定的 VFIO 框架不支持中介 VFIO mdev 驱动程序框架。

对于支持 SR-IOV 的 GPU,Ubuntu 24.04 版本中引入了供应商特定 VFIO 框架的使用。
在开始之前,请确保满足以下先决条件

  1. 更改到 sysfs 文件系统中的目录,该目录包含在其上创建 vGPU 的虚拟功能上的 vGPU 管理文件。
    复制
    已复制!
                

    # cd /sys/bus/pci/devices/domain\:bus\:vf-slot.v-function/nvidia

    domain
    bus
    GPU 的域和总线,不带 0x 前缀。
    vf-slot
    v-function
    您在为支持 SR-IOV 的 NVIDIA vGPU 在带有 KVM 虚拟机监控程序的 Linux 上准备虚拟功能中记录的虚拟功能的插槽和功能。

    此示例更改为域为 0000 且总线为 3d 的 GPU 的第一个虚拟功能 (virtfn0) 的 nvidia 目录。第一个虚拟功能 (virtfn0) 的插槽为 00,功能为 4

    复制
    已复制!
                

    # cd /sys/bus/pci/devices/0000\:3d\:00.4/nvidia

  2. 确认该目录包含虚拟功能上的 vGPU 管理文件,即 creatable_vgpu_types 和 current_vgpu_type。
    复制
    已复制!
                

    # ll -r--r--r-- 1 root root 4096 Aug 3 00:39 creatable_vgpu_types -rw-r--r-- 1 root root 4096 Aug 3 00:39 current_vgpu_type ...

  3. 确认虚拟功能上的当前 vGPU 类型是表示您要删除的 vGPU 类型的 ID。
    复制
    已复制!
                

    # cat current_vgpu_type 560

  4. 0 写入 current_vgpu_type 文件。
    复制
    已复制!
                

    # echo 0 > current_vgpu_type

  5. 确认虚拟功能上的当前 vGPU 类型为 0,表示 vGPU 已被删除。
    复制
    已复制!
                

    # cat current_vgpu_type 0

  6. 确认 creatable_vgpu_types 文件不再为空,表示 vGPU 已被删除,并且可以在虚拟功能上再次创建 vGPU。
    复制
    已复制!
                

    # cat creatable_vgpu_types NVIDIA A40-1Q 557 NVIDIA A40-2Q 558 NVIDIA A40-3Q 559 NVIDIA A40-4Q 560 NVIDIA A40-6Q 561

2.10.7. 准备配置为直通的 GPU 以用于 vGPU

物理 GPU 使用的模式决定了 GPU 绑定的 Linux 内核模块。如果要切换 GPU 使用的模式,则必须从其当前内核模块取消绑定 GPU,并将其绑定到新模式的内核模块。将 GPU 绑定到正确的内核模块后,您可以将其配置为 vGPU。

直通到 VM 的物理 GPU 绑定到 vfio-pci 内核模块。绑定到 vfio-pci 内核模块的物理 GPU 只能用于直通。要使 GPU 能够用于 vGPU,必须从 vfio-pci 内核模块取消绑定 GPU,并将其绑定到 nvidia 内核模块。
在开始之前,请确保您拥有要准备用于 vGPU 的 GPU 的域、总线、插槽和功能。有关说明,请参阅在带有 KVM 虚拟机监控程序的 Linux 上获取 GPU 的 BDF 和域

  1. 通过在主机上的 NVIDIA GPU 上运行带有 -k 选项的 lspci 命令,确定 GPU 绑定的内核模块。
    复制
    已复制!
                

    # lspci -d 10de: -k

    Kernel driver in use: 字段指示 GPU 绑定的内核模块。

    以下示例显示 BDF 为 06:00.0 的 NVIDIA Tesla M60 GPU 绑定到 vfio-pci 内核模块,并且正在用于 GPU 直通。

    复制
    已复制!
                

    06:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1) Subsystem: NVIDIA Corporation Device 115e Kernel driver in use: vfio-pci

  2. vfio-pci 内核模块取消绑定 GPU。
    1. 更改为表示 vfio-pci 内核模块的 sysfs 目录。
      复制
      已复制!
                  

      # cd /sys/bus/pci/drivers/vfio-pci

    2. 将 GPU 的域、总线、插槽和功能写入此目录中的 unbind 文件。
      复制
      已复制!
                  

      # echo domain:bus:slot.function > unbind

      domain
      bus
      slot
      function
      GPU 的域、总线、插槽和功能,不带 0x 前缀。

      此示例写入域为 0000 且 PCI 设备 BDF 为 06:00.0 的 GPU 的域、总线、插槽和功能。

      复制
      已复制!
                  

      # echo 0000:06:00.0 > unbind

  3. 将 GPU 绑定到 nvidia 内核模块。
    1. 更改为包含物理 GPU 的 PCI 设备信息的 sysfs 目录。
      复制
      已复制!
                  

      # cd /sys/bus/pci/devices/domain\:bus\:slot.function

      domain
      bus
      slot
      function
      GPU 的域、总线、插槽和功能,不带 0x 前缀。

      此示例更改为包含域为 0000 且 PCI 设备 BDF 为 06:00.0 的 GPU 的 PCI 设备信息的 sysfs 目录。

      复制
      已复制!
                  

      # cd /sys/bus/pci/devices/0000\:06\:00.0

    2. 将内核模块名称 nvidia 写入此目录中的 driver_override 文件。
      复制
      已复制!
                  

      # echo nvidia > driver_override

    3. 更改为表示 nvidia 内核模块的 sysfs 目录。
      复制
      已复制!
                  

      # cd /sys/bus/pci/drivers/nvidia

    4. 将 GPU 的域、总线、插槽和功能写入此目录中的 bind 文件。
      复制
      已复制!
                  

      # echo domain:bus:slot.function > bind

      domain
      bus
      slot
      function
      GPU 的域、总线、插槽和功能,不带 0x 前缀。

      此示例写入域为 0000 且 PCI 设备 BDF 为 06:00.0 的 GPU 的域、总线、插槽和功能。

      复制
      已复制!
                  

      # echo 0000:06:00.0 > bind

您现在可以按照安装和配置 Red Hat Enterprise Linux KVM 版 NVIDIA 虚拟 GPU 管理器中的说明配置带有 vGPU 的 GPU。

2.10.8. sysfs 文件系统中的 NVIDIA vGPU 信息

有关带有 KVM 虚拟机监控程序的主机中每个物理 GPU 支持的 NVIDIA vGPU 类型的信息存储在 sysfs 文件系统中。

NVIDIA vGPU 信息在 sysfs 文件系统中的存储方式取决于虚拟机监控程序是否将厂商特定的 VFIO 框架用于支持 SR-IOV 的 NVIDIA vGPU。

注意

使用厂商特定的 VFIO 框架的虚拟机监控程序用于支持 SR-IOV 的 NVIDIA vGPU,而对于旧版 NVIDIA vGPU,则使用 mdev VFIO 框架。

对于支持 SR-IOV 的 GPU,厂商特定的 VFIO 框架的使用在 Ubuntu 24.04 版本中引入。有关 NVIDIA vGPU 信息如何在 sysfs 文件系统中存储的更多详细信息,请参阅以下主题

2.10.8.1.  NVIDIA vGPU 使用 sysfs 文件系统的虚拟机监控程序的信息,这些虚拟机监控程序使用 mdev VFIO 框架

主机上的所有物理 GPU 都在 mdev 内核模块中注册。有关物理 GPU 以及可以在每个物理 GPU 上创建的 vGPU 类型的信息存储在 /sys/class/mdev_bus/ 目录下的目录和文件中。

每个物理 GPU 的 sysfs 目录位于以下位置

  • /sys/bus/pci/devices/
  • /sys/class/mdev_bus/

这两个目录都是指向 sysfs 文件系统中 PCI 设备的真实目录的符号链接。

每个物理 GPU 的 sysfs 目录的组织结构如下

复制
已复制!
            

/sys/class/mdev_bus/ |-parent-physical-device |-mdev_supported_types |-nvidia-vgputype-id |-available_instances |-create |-description |-device_api |-devices |-name


父物理设备

主机上的每个物理 GPU 都由 /sys/class/mdev_bus/ 目录的子目录表示。

每个子目录的名称如下

\:总线\:插槽.功能

总线插槽功能 是 GPU 的域、总线、插槽和功能,例如 0000\:06\:00.0

每个目录都是指向 sysfs 文件系统中 PCI 设备的真实目录的符号链接。例如

复制
已复制!
            

# ll /sys/class/mdev_bus/ total 0 lrwxrwxrwx. 1 root root 0 Dec 12 03:20 0000:05:00.0 -> ../../devices/pci0000:00/0000:00:03.0/0000:03:00.0/0000:04:08.0/0000:05:00.0 lrwxrwxrwx. 1 root root 0 Dec 12 03:20 0000:06:00.0 -> ../../devices/pci0000:00/0000:00:03.0/0000:03:00.0/0000:04:09.0/0000:06:00.0 lrwxrwxrwx. 1 root root 0 Dec 12 03:20 0000:07:00.0 -> ../../devices/pci0000:00/0000:00:03.0/0000:03:00.0/0000:04:10.0/0000:07:00.0 lrwxrwxrwx. 1 root root 0 Dec 12 03:20 0000:08:00.0 -> ../../devices/pci0000:00/0000:00:03.0/0000:03:00.0/0000:04:11.0/0000:08:00.0

mdev_supported_types
在将配置 NVIDIA vGPU 的每个物理 GPU 的 sysfs 目录下,都需要一个名为 mdev_supported_types 的目录。为 GPU 创建此目录的方式取决于 GPU 是否支持 SR-IOV。
  • 对于不支持 SR-IOV 的 GPU,在主机上安装虚拟 GPU 管理器并重启主机后,会自动创建此目录。
  • 对于支持 SR-IOV 的 GPU,例如基于 NVIDIA Ampere 架构的 GPU,您必须通过启用 GPU 的虚拟功能来创建此目录,如在 Linux 和 KVM 虚拟机监控程序上创建 NVIDIA vGPU中所述。mdev_supported_types 目录本身在物理功能上永远不可见。

mdev_supported_types 目录包含物理 GPU 支持的每种 vGPU 类型的子目录。每个子目录的名称为 nvidia-vgputype-id,其中 vgputype-id 是一个无符号整数序列号。例如

复制
已复制!
            

# ll mdev_supported_types/ total 0 drwxr-xr-x 3 root root 0 Dec 6 01:37 nvidia-35 drwxr-xr-x 3 root root 0 Dec 5 10:43 nvidia-36 drwxr-xr-x 3 root root 0 Dec 5 10:43 nvidia-37 drwxr-xr-x 3 root root 0 Dec 5 10:43 nvidia-38 drwxr-xr-x 3 root root 0 Dec 5 10:43 nvidia-39 drwxr-xr-x 3 root root 0 Dec 5 10:43 nvidia-40 drwxr-xr-x 3 root root 0 Dec 5 10:43 nvidia-41 drwxr-xr-x 3 root root 0 Dec 5 10:43 nvidia-42 drwxr-xr-x 3 root root 0 Dec 5 10:43 nvidia-43 drwxr-xr-x 3 root root 0 Dec 5 10:43 nvidia-44 drwxr-xr-x 3 root root 0 Dec 5 10:43 nvidia-45

nvidia-vgputype-id
每个目录代表一个单独的 vGPU 类型,并包含以下文件和目录
available_instances
此文件包含仍可创建的此 vGPU 类型实例的数量。每当在此物理 GPU 上创建或删除此类型的 vGPU 时,此文件都会更新。
注意

创建分时 vGPU 时,物理 GPU 上所有其他分时 vGPU 类型的 available_instances 的内容都设置为 0。此行为强制要求物理 GPU 上的所有分时 vGPU 都必须是同一类型。但是,此要求不适用于 MIG 支持的 vGPU。因此,当创建 MIG 支持的 vGPU 时,物理 GPU 上所有其他 MIG 支持的 vGPU 类型的 available_instances 不会设置为 0

create
此文件用于创建 vGPU 实例。通过将 vGPU 的 UUID 写入此文件来创建 vGPU 实例。该文件为只写文件。
description
此文件包含 vGPU 类型的以下详细信息
  • vGPU 类型支持的最大虚拟显示头数
  • 帧速率限制器 (FRL) 配置,以帧/秒为单位
  • 帧缓冲区大小,以 Mbytes 为单位
  • 每个显示头的最大分辨率
  • 每个物理 GPU 的最大 vGPU 实例数

例如

复制
已复制!
            

# cat description num_heads=4, frl_config=60, framebuffer=2048M, max_resolution=4096x2160, max_instance=4

device_api
本文档包含字符串 vfio_pci,用于指示 vGPU 是 PCI 设备。
devices
此目录包含为 vGPU 类型创建的所有 mdev 设备。例如
复制
已复制!
            

# ll devices total 0 lrwxrwxrwx 1 root root 0 Dec 6 01:52 aa618089-8b16-4d01-a136-25a0f3c73123 -> ../../../aa618089-8b16-4d01-a136-25a0f3c73123

name
此文件包含 vGPU 类型的名称。例如
复制
已复制!
            

# cat name GRID M10-2Q

2.10.8.2. 在 sysfs 文件系统中用于使用特定于供应商的 VFIO 框架的虚拟机监控程序的 NVIDIA vGPU 信息

特定于供应商的 VFIO 框架不支持中介 VFIO mdev 驱动程序框架。有关物理 GPU 以及可在每个物理 GPU 上创建的 vGPU 类型的信息存储在 /sys/bus/pci/devices/ 目录下的目录和文件中。

每个物理 GPU 上的每个虚拟功能的 sysfs 目录的组织结构如下

复制
已复制!
            

/sys/bus/pci/devices/ |-virtual-function |-nvidia |-creatable_vgpu_types |-current_vgpu_type |-vgpu_params


virtual-function

/sys/bus/pci/devices/ 目录的子目录表示主机上每个物理 GPU 上的每个虚拟功能。

每个子目录的名称如下

domain\:bus\:vf-slot.v-function

domainbus 是 GPU 的域和总线。vf-slotv-function 是虚拟功能的插槽和功能。例如:0000\:3d\:00.4

您必须通过启用 GPU 的虚拟功能来创建此目录,如在具有 KVM Hypervisor 的 Linux 上创建 NVIDIA vGPU中所述。此目录不会自动创建。

nvidia
nvidia 目录包含虚拟功能上 vGPU 管理的文件。这些文件如下所示
creatable_vgpu_types
此文件包含可在虚拟功能上创建的 NVIDIA vGPU 类型以及表示 sysfs 文件系统中每个 vGPU 类型的整数 ID。例如
复制
已复制!
            

# cat creatable_vgpu_types NVIDIA A40-1Q 557 NVIDIA A40-2Q 558 NVIDIA A40-3Q 559 NVIDIA A40-4Q 560 NVIDIA A40-6Q 561

此文件不是 GPU 支持的所有 NVIDIA vGPU 类型的静态列表。它会动态更新,以响应此虚拟功能以及同一 GPU 上其他虚拟功能的 current_vgpu_type 文件的更改。
  • 如果在此虚拟功能上创建了 vGPU,则此文件为空。
  • 如果在同一 GPU 上的另一个虚拟功能上创建了 vGPU,则此文件仅包含可以与现有 vGPU 驻留在同一 GPU 上的 vGPU 类型。
  • 如果 GPU 支持的最大 vGPU 数量已在 GPU 的其他虚拟功能上创建,则此文件为空。
注意

当在等大小模式下在 GPU 上创建时间分片 vGPU 时,物理 GPU 上所有虚拟功能的 creatable_vgpu_types 的内容都设置为仅与创建的 vGPU 具有相同帧缓冲区大小的 vGPU 类型。此行为强制要求物理 GPU 上的所有时间分片 vGPU 都必须具有相同的帧缓冲区大小。但是,此要求不适用于在混合大小模式下在 GPU 上创建的时间分片 vGPU 或 MIG 支持的 vGPU。

current_vgpu_type
此文件包含表示在此虚拟功能上创建的 vGPU 的 sysfs 文件系统中 vGPU 类型的整数 ID。例如,如果在该虚拟功能上创建了 NVIDIA A40-4Q vGPU,则此文件包含整数 560
复制
已复制!
            

# cat current_vgpu_type 560

如果在虚拟功能上未创建 vGPU,则此文件包含整数 0。创建此文件时,其内容将设置为默认值 0。

此文件用于在虚拟功能上创建和删除 vGPU。

  • 通过将表示 sysfs 文件系统中 vGPU 类型的整数 ID 写入此文件来创建 vGPU。
  • 通过将 0 写入此文件来删除 vGPU。
vgpu_params
此文件用于为虚拟功能上的 vGPU 设置插件参数,以控制其行为。插件参数通过将参数-值对列表写入此文件来设置。有关更多信息,请参阅在具有 KVM Hypervisor 的 Linux 上设置 vGPU 插件参数

2.11. 将 GPU 置于混合大小模式

默认情况下,GPU 仅支持具有相同帧缓冲区大小的 vGPU,因此处于等大小模式。要支持具有不同帧缓冲区大小的 vGPU,必须将 GPU 置于混合大小模式。当 GPU 处于混合大小模式时,GPU 上允许的某些类型的 vGPU 的最大数量少于 GPU 处于等大小模式时的数量。

注意
  • 如果虚拟机监控程序主机重新启动、NVIDIA Virtual GPU Manager 重新加载或 GPU 重置,则处于混合大小模式的 GPU 的行为取决于虚拟机监控程序
    • 在具有 KVM 虚拟机监控程序的 Linux 上,处于混合大小模式的 GPU 将恢复为其默认模式。
    • 在 VMware vSphere 上,处于混合大小模式的 GPU 保持混合大小模式。GPU 不会恢复为其默认模式
  • 当 GPU 处于混合大小模式时,仅支持尽力而为和均等共享调度程序。支持固定共享调度程序。


在执行此任务之前,请确保 GPU 上没有正在运行的 vGPU,并且 GPU 未被任何其他进程使用,例如 CUDA 应用程序、监控应用程序或 nvidia-smi 命令。
如何将 GPU 置于混合大小模式取决于您使用的虚拟机监控程序,如下列主题中所述

2.11.1. 在具有 KVM Hypervisor 的 Linux 上将 GPU 置于混合大小模式

如果您使用的是支持 SR-IOV 的 GPU,请确保 sysfs 文件系统中物理 GPU 的虚拟功能已启用,如在具有 KVM Hypervisor 的 Linux 上为支持 SR-IOV 的 NVIDIA vGPU 准备虚拟功能中所述。

  1. 使用 nvidia-smi 列出所有物理 GPU 的状态,并检查是否已将异构时间分片 vGPU 大小注明为受支持。
    复制
    已复制!
                

    # nvidia-smi -q ... Attached GPUs : 1 GPU 00000000:41:00.0 ... Heterogeneous Time-Slice Sizes : Supported ...

  2. 将您要支持具有不同帧缓冲区大小的 vGPU 的每个 GPU 置于混合大小模式。
    复制
    已复制!
                

    # nvidia-smi vgpu -i id -shm 1

    id
    nvidia-smi 报告的 GPU 索引。

    此示例将索引为 00000000:41:00.0 的 GPU 置于混合大小模式。

    复制
    已复制!
                

    # nvidia-smi vgpu -i 0 -shm 1 Enabled vGPU heterogeneous mode for GPU 00000000:41:00.0

  3. 通过使用 nvidia-smi 检查 vGPU 异构模式是否已启用,确认 GPU 现在处于混合大小模式。
    复制
    已复制!
                

    # nvidia-smi -q ... vGPU Heterogeneous Mode : Enabled ...

2.11.2. 在 VMware vSphere 上将 GPU 置于混合大小模式

在 VMware vSphere 上,您可以使用 vCenter Server 或 esxcli 命令将 GPU 置于混合大小模式。

有关说明,请参阅以下主题

2.11.2.1. 通过使用 vCenter Server 在 VMware vSphere 上将 GPU 置于混合大小模式

  1. 使用 vSphere Web Client 登录到 vCenter Server。
  2. 在导航树中,选择您的 ESXi 主机,然后单击配置选项卡。
  3. 配置选项卡的导航树中,选择硬件 > 图形
  4. 选择 GPU,然后单击编辑
  5. 在打开的弹出窗口中,将 vGPU 模式设置为 混合大小
    注意

    不要将选项设置为重新启动 Xorg 服务器。仅当设备类型更改时才需要此选项,当 GPU 的 vGPU 模式更改时不需要此选项。

2.11.2.2. 通过使用 esxcli 命令在 VMware vSphere 上将 GPU 置于混合大小模式

从虚拟机监控程序主机上的 ESXi Shell 执行此任务。

  1. 运行 esxcli 命令以将 GPU 的 vGPU 模式更改为混合大小。
    复制
    已复制!
                

    $ esxcli graphics device set --device-id=slot:bus:domain.function --type SharedPassthru --vgpu-mode=MixedSize

    slot
    bus
    domain
    function
    GPU 的域、总线、插槽和功能,不带 0x 前缀。
    注意

    要将 GPU 置于等大小模式,请使用 --vgpu-mode=SameSize 选项运行此命令。

  2. 刷新主机并重建可分配的硬件树。
    复制
    已复制!
                

    $ esxcli graphics host refresh

  3. 确认 GPU 的 vGPU 模式已更改。
    复制
    已复制!
                

    $ esxcli graphics device list

2.12. 在具有 KVM Hypervisor 的 Linux 上将 vGPU 放置在混合大小模式下的物理 GPU 上

默认情况下,Virtual GPU Manager 确定 vGPU 在 GPU 上的放置位置。在具有 KVM 虚拟机监控程序的 Linux 上,您可以控制 vGPU 在混合大小模式下的 GPU 上的放置,以便在 GPU 上尽可能多地容纳 vGPU。通过控制 vGPU 在 GPU 上的放置,您可以确保 GPU 上放置区域中没有可以被 vGPU 占据的间隙。

混合大小模式下的 GPU 支持的 vGPU 放置取决于 GPU 拥有的帧缓冲区总量。有关详细信息,请参阅混合大小模式下的 GPU 的 vGPU 放置

注意
  • 在具有 KVM 虚拟机监控程序的 Linux 上,此任务是可选的。如果您希望 Virtual GPU Manager 确定 vGPU 在 GPU 上的放置位置,请忽略此任务。
  • 在 VMware vSphere 上,您无法控制 vGPU 在混合大小模式下的 GPU 上的放置。VMware vSphere 软件确定 vGPU 在 GPU 上的放置位置。


在执行此任务之前,请确保满足以下先决条件

在虚拟机监控程序主机上的命令 shell 中执行此任务。

  1. 使用 nvidia-smi 列出 vGPU 类型的放置大小和可用放置 ID。
    复制
    已复制!
                

    # nvidia-smi vgpu -c -v ... vGPU Type ID : 0x392 Name : NVIDIA L4-6Q ... Placement Size : 6 Creatable Placement IDs : 6 18 ...

    注意

    vGPU 类型的某些受支持的放置 ID 可能不可用,因为它们已被另一个 vGPU 使用。要列出 vGPU 类型的放置大小和所有受支持的放置 ID,请运行以下命令

    复制
    已复制!
                

    # nvidia-smi vgpu -s -v ... vGPU Type ID : 0x392 Name : NVIDIA L4-6Q ... Placement Size : 6 Supported Placement IDs : 0 6 12 18 ...

    受支持的放置 ID 的数量是在混合大小模式下 GPU 上允许的该类型的 vGPU 的最大数量。

  2. 将 vGPU 的 vgpu-placement-id vGPU 插件参数设置为您想要的放置 ID。

    对于具有 KVM 虚拟机监控程序的 Linux,将参数写入表示 vGPU 的 mdev 设备目录的 nvidia 子目录中的 vgpu_params 文件。

    复制
    已复制!
                

    # echo "vgpu-placement-id=placement-id" > /sys/bus/mdev/devices/uuid/nvidia/vgpu_params

    placement-id
    您要为 vGPU 设置的放置 ID。
    uuid
    vGPU 的 UUID,例如 aa618089-8b16-4d01-a136-25a0f3c73123

    此示例将 UUID 为 aa618089-8b16-4d01-a136-25a0f3c73123 的 vGPU 的放置 ID 设置为 6。

    复制
    已复制!
                

    # echo "vgpu-placement-id=6" > \ /sys/bus/mdev/devices/aa618089-8b16-4d01-a136-25a0f3c73123/nvidia/vgpu_params

当分配了 vGPU 的 VM 重新启动时,Virtual GPU Manager 会验证您分配给 vGPU 的放置 ID。如果放置 ID 无效或不可用,则 VM 无法启动。

在分配了 vGPU 的 VM 重新启动后,您可以确认 vGPU 已分配了正确的放置 ID。

复制
已复制!
            

# nvidia-smi vgpu -q GPU 00000000:41:00.0 Active vGPUs : 1 vGPU ID : 3251719533 VM ID : 2150987 ... Placement ID : 6 ...

2.13. 禁用和启用 ECC 内存

某些支持 NVIDIA vGPU 软件的 GPU 支持带有 NVIDIA vGPU 的纠错码 (ECC) 内存。ECC 内存通过检测和处理双位错误来提高数据完整性。但是,并非所有 GPU、vGPU 类型和虚拟机监控程序软件版本都支持带有 NVIDIA vGPU 的 ECC 内存。

在支持带有 NVIDIA vGPU 的 ECC 内存的 GPU 上,C 系列和 Q 系列 vGPU 支持 ECC 内存,但 A 系列和 B 系列 vGPU 不支持。尽管 A 系列和 B 系列 vGPU 在启用了 ECC 内存的物理 GPU 上启动,但对不支持 ECC 的 vGPU 启用 ECC 可能会产生一些成本。

在没有 HBM2 内存的物理 GPU 上,vGPU 可用的帧缓冲区量会减少。所有类型的 vGPU 都会受到影响,而不仅仅是支持 ECC 内存的 vGPU。

在物理 GPU 上启用 ECC 内存的效果如下

  • ECC 内存作为物理 GPU 上所有受支持的 vGPU 的一项功能公开。
  • 在支持 ECC 内存的 VM 中,ECC 内存已启用,可以选择在 VM 中禁用 ECC。
  • 可以为单个 VM 启用或禁用 ECC 内存。在 VM 中启用或禁用 ECC 内存不会影响 vGPU 可用的帧缓冲区量。

基于 Pascal GPU 架构和更高版本 GPU 架构的 GPU 支持带有 NVIDIA vGPU 的 ECC 内存。要确定是否为 GPU 启用了 ECC 内存,请为 GPU 运行 nvidia-smi -q

Tesla M60 和 M6 GPU 在不使用 GPU 虚拟化的情况下支持 ECC 内存,但 NVIDIA vGPU 不支持带有这些 GPU 的 ECC 内存。在图形模式下,这些 GPU 在出厂时默认禁用 ECC 内存。

某些虚拟机监控程序软件版本不支持带有 NVIDIA vGPU 的 ECC 内存。

如果您使用的虚拟机监控程序软件版本或 GPU 不支持带有 NVIDIA vGPU 的 ECC 内存,并且启用了 ECC 内存,则 NVIDIA vGPU 无法启动。在这种情况下,如果您使用 NVIDIA vGPU,则必须确保在所有 GPU 上禁用 ECC 内存。

2.13.1. 禁用 ECC 内存

如果 ECC 内存不适合您的工作负载,但在您的 GPU 上已启用,请禁用它。如果您将 NVIDIA vGPU 与不支持带有 NVIDIA vGPU 的 ECC 内存的虚拟机监控程序软件版本或 GPU 一起使用,则还必须确保在所有 GPU 上禁用 ECC 内存。如果您的虚拟机监控程序软件版本或 GPU 不支持 ECC 内存,并且启用了 ECC 内存,则 NVIDIA vGPU 无法启动。

在何处执行此任务取决于您是要更改物理 GPU 还是 vGPU 的 ECC 内存设置。

  • 对于物理 GPU,请从虚拟机监控程序主机执行此任务。
  • 对于 vGPU,请从分配了 vGPU 的 VM 执行此任务。
    注意

    必须在 vGPU 所在的物理 GPU 上启用 ECC 内存。

在开始之前,请确保您的虚拟机监控程序上安装了 NVIDIA Virtual GPU Manager。如果您要更改 vGPU 的 ECC 内存设置,还要确保已在分配了 vGPU 的 VM 中安装了 NVIDIA vGPU 软件图形驱动程序。

  1. 使用 nvidia-smi 列出所有物理 GPU 或 vGPU 的状态,并检查是否已将 ECC 标记为已启用。
    复制
    已复制!
                

    # nvidia-smi -q ==============NVSMI LOG============== Timestamp : Mon Jan 20 18:36:45 2025 Driver Version : 550.144.02 Attached GPUs : 1 GPU 0000:02:00.0 [...] Ecc Mode Current : Enabled Pending : Enabled [...]

  2. 将已启用 ECC 的每个 GPU 的 ECC 状态更改为关闭。
    • 如果要将主机或分配给 VM 的 vGPU 上的所有 GPU 的 ECC 状态更改为关闭,请运行此命令
      复制
      已复制!
                  

      # nvidia-smi -e 0

    • 如果要将特定 GPU 或 vGPU 的 ECC 状态更改为关闭,请运行此命令
      复制
      已复制!
                  

      # nvidia-smi -i id -e 0

      id 是 nvidia-smi 报告的 GPU 或 vGPU 的索引。

      此示例禁用索引为 0000:02:00.0 的 GPU 的 ECC。

      复制
      已复制!
                  

      # nvidia-smi -i 0000:02:00.0 -e 0

  3. 重新启动主机或重新启动 VM。
  4. 确认 GPU 或 vGPU 的 ECC 现在已禁用。
    复制
    已复制!
                

    # nvidia—smi —q ==============NVSMI LOG============== Timestamp : Mon Jan 20 18:37:53 2025 Driver Version : 550.144.02 Attached GPUs : 1 GPU 0000:02:00.0 [...] Ecc Mode Current : Disabled Pending : Disabled [...]

如果您以后需要启用 GPU 或 vGPU 上的 ECC,请按照启用 ECC 内存中的说明进行操作。

2.13.2. 启用 ECC 内存

如果 ECC 内存适合您的工作负载并且您的虚拟机监控程序软件和 GPU 支持 ECC 内存,但在您的 GPU 或 vGPU 上已禁用,请启用它。

在何处执行此任务取决于您是要更改物理 GPU 还是 vGPU 的 ECC 内存设置。

  • 对于物理 GPU,请从虚拟机监控程序主机执行此任务。
  • 对于 vGPU,请从分配了 vGPU 的 VM 执行此任务。
    注意

    必须在 vGPU 所在的物理 GPU 上启用 ECC 内存。

在开始之前,请确保您的虚拟机监控程序上安装了 NVIDIA Virtual GPU Manager。如果您要更改 vGPU 的 ECC 内存设置,还要确保已在分配了 vGPU 的 VM 中安装了 NVIDIA vGPU 软件图形驱动程序。

  1. 使用 nvidia-smi 列出所有物理 GPU 或 vGPU 的状态,并检查是否已将 ECC 标记为已禁用。
    复制
    已复制!
                

    # nvidia-smi -q ==============NVSMI LOG============== Timestamp : Mon Jan 20 18:36:45 2025 Driver Version : 550.144.02 Attached GPUs : 1 GPU 0000:02:00.0 [...] Ecc Mode Current : Disabled Pending : Disabled [...]

  2. 将已启用 ECC 的每个 GPU 或 vGPU 的 ECC 状态更改为开启。
    • 如果要将主机或分配给 VM 的 vGPU 上的所有 GPU 的 ECC 状态更改为开启,请运行此命令
      复制
      已复制!
                  

      # nvidia-smi -e 1

    • 如果要将特定 GPU 或 vGPU 的 ECC 状态更改为开启,请运行此命令
      复制
      已复制!
                  

      # nvidia-smi -i id -e 1

      id 是 nvidia-smi 报告的 GPU 或 vGPU 的索引。

      此示例为索引为 0000:02:00.0 的 GPU 启用 ECC。

      复制
      已复制!
                  

      # nvidia-smi -i 0000:02:00.0 -e 1

  3. 重新启动主机或重新启动 VM。
  4. 确认 GPU 或 vGPU 的 ECC 现在已启用。
    复制
    已复制!
                

    # nvidia—smi —q ==============NVSMI LOG============== Timestamp : Mon Jan 20 18:37:53 2025 Driver Version : 550.144.02 Attached GPUs : 1 GPU 0000:02:00.0 [...] Ecc Mode Current : Enabled Pending : Enabled [...]

如果您以后需要禁用 GPU 或 vGPU 上的 ECC,请按照禁用 ECC 内存中的说明进行操作。

2.14. 配置 vGPU VM 以与 NVIDIA GPUDirect Storage 技术一起使用

要将 NVIDIA® GPUDirect Storage® 技术与 NVIDIA vGPU 一起使用,您必须在配置了 NVIDIA vGPU 的 VM 中安装所有必需的软件。

确保满足使用 NVIDIA vGPU 的先决条件中的先决条件。

  1. 安装和配置 NVIDIA Virtual GPU Manager,如安装和配置 Red Hat Enterprise Linux KVM 的 NVIDIA Virtual GPU Manager中所述。
  2. 以 root 用户身份登录到您在上一步中配置了 NVIDIA vGPU 的 VM。
  3. 按照 Installing Mellanox OFED 中的 Installation Procedure 中的说明,在 VM 中安装 Mellanox OpenFabrics Enterprise Distribution for Linux (MLNX_OFED)。

    在运行安装脚本的命令中,指定以下选项

    • --with-nvmf
    • --with-nfsrdma
    • --enable-gds
    • --add-kernel-support
  4. 从特定于发行版的软件包中在 VM 中安装适用于 Linux 的 NVIDIA vGPU 软件图形驱动程序。
    注意

    GPUDirect Storage 技术支持从 .run 文件安装适用于 Linux 的 NVIDIA vGPU 软件图形驱动程序。

    按照 VM 中安装的 Linux 发行版的说明进行操作

  5. 从 .run 文件安装 NVIDIA CUDA Toolkit,在选择要安装的 CUDA 组件时取消选择 CUDA 驱动程序。
    注意

    为避免覆盖您在上一步中安装的 NVIDIA vGPU 软件图形驱动程序,不要从特定于发行版的软件包安装 NVIDIA CUDA Toolkit。

    有关说明,请参阅 NVIDIA CUDA Installation Guide for Linux 中的 Runfile Installation

  6. 使用 VM 中安装的 Linux 发行版的软件包管理器安装 GPUDirect Storage 技术软件包,省略 NVIDIA CUDA Toolkit 软件包的安装。

    按照 NVIDIA CUDA Installation Guide for Linux 中有关 VM 中安装的 Linux 发行版的说明进行操作

    • RHEL8/Rocky 8

      在安装 CUDA 的步骤中,执行包含所有 GPUDirect Storage 技术软件包的命令

      复制
      已复制!
                  

      sudo dnf install nvidia-gds


    • Ubuntu 在安装 CUDA 的步骤中,执行包含所有 GPUDirect Storage 技术软件包的命令
      复制
      已复制!
                  

      sudo apt-get install nvidia-gds


在为与 NVIDIA GPUDirect Storage 技术一起使用配置 vGPU VM 后,您可以许可您正在使用的 NVIDIA vGPU 软件许可产品。有关说明,请参阅 Virtual GPU Client Licensing User Guide

GPU 直通用于将整个物理 GPU 直接分配给一个 VM,绕过 NVIDIA Virtual GPU Manager。在这种操作模式下,GPU 由 VM 中运行的 NVIDIA 驱动程序独占访问;GPU 不在 VM 之间共享。

在直通模式下,基于 Maxwell 架构之后的 NVIDIA GPU 架构的 GPU 支持纠错码 (ECC)。

GPU 直通可以与 NVIDIA vGPU 一起在服务器平台上使用,但有一些限制

  • 物理 GPU 可以托管 NVIDIA vGPU,也可以用于直通,但不能同时执行这两者。某些虚拟机监控程序(例如 VMware vSphere ESXi)需要重新启动主机才能将 GPU 从直通模式更改为 vGPU 模式。
  • 单个 VM 不能同时配置 vGPU 和 GPU 直通。
  • 直通到 VM 的物理 GPU 的性能只能从 VM 内部进行监控。此类 GPU 无法通过虚拟机监控程序(例如 XenCenter 或 nvidia-smi)运行的工具进行监控(请参阅监控 GPU 性能)。
  • 必须在您的服务器平台上启用以下 BIOS 设置

    • VT-D/IOMMU
    • 高级选项中的 SR-IOV
  • 所有通过 NVLink 相互直接连接的 GPU 都必须分配给同一 VM。

您可以将多个物理 GPU 分配给一个 VM。您可以分配给 VM 的物理 GPU 的最大数量取决于您选择的虚拟机监控程序可以支持的每个 VM 的最大 PCIe 直通设备数量。有关更多信息,请参阅您的虚拟机监控程序的文档,例如

注意

如果您打算将服务器平台中的所有 GPU 配置为直通,则无需安装 NVIDIA Virtual GPU Manager。


3.1. 物理 GPU 的显示分辨率

物理 GPU 支持的显示分辨率取决于 NVIDIA GPU 架构和应用于 GPU 的 NVIDIA vGPU 软件许可证。

vWS 物理 GPU 分辨率

使用 vWS 许可证许可的 GPU 支持基于可用像素数的最大组合分辨率,该像素数由 NVIDIA GPU 架构确定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 GPU 一起使用。

下表列出了在所有显示器都具有相同分辨率的配置中,每个 GPU 在每个支持的显示分辨率下的最大显示器数量。

NVIDIA GPU 架构 可用像素数 显示分辨率 每个 GPU 的显示器数量
Pascal 及更高版本 66355200 7680×4320 2
5120×2880 或更低 4
Maxwell 35389440 5120×2880 2
4096×2160 或更低 4

下表提供混合显示分辨率配置的示例。

NVIDIA GPU 架构 可用像素数 可用像素数基础 最大显示器数量 混合显示器配置示例
Pascal 及更高版本 66355200 2 个 7680×4320 显示器 4 1 个 7680×4320 显示器加 2 个 5120×2880 显示器
1 个 7680×4320 显示器加 3 个 4096×2160 显示器
Maxwell 35389440 4 个 4096×2160 显示器 4 1 个 5120×2880 显示器加 2 个 4096×2160 显示器

注意

即使显示器的组合分辨率小于 GPU 的可用像素数,您也不能使用超过四个显示器。例如,即使显示器的组合分辨率 (44236800) 小于 GPU 的可用像素数 (66355200),您也不能将五个 4096×2160 显示器与基于 NVIDIA Pascal 架构的 GPU 一起使用。


vApps 或 vCS 物理 GPU 分辨率

使用 vApps 或 vCS 许可证许可的 GPU 支持具有固定最大分辨率的单个显示器。最大分辨率取决于以下因素

  • NVIDIA GPU 架构
  • 应用于 GPU 的 NVIDIA vGPU 软件许可证
  • 在分配了 GPU 的系统上运行的操作系统

许可证 NVIDIA GPU 架构 操作系统 最大显示分辨率 每个 GPU 的显示器数量
vApps Pascal 或更高版本 Linux 2560×1600 1
Pascal 或更高版本 Windows 1280×1024 1
Maxwell Windows 和 Linux 2560×1600 1

3.2. 在 XenServer 上使用 GPU 直通

您可以使用 XenCenter 或 xe 命令在 XenServer 上配置 GPU 以进行直通。

以下附加限制在服务器平台中与 NVIDIA vGPU 一起使用 GPU 直通时适用

  • 通过 XenCenter 无法监控传递到虚拟机的物理 GPU 的性能。
  • dom0 中的 nvidia-smi 不再有权访问 GPU。
  • 直通 GPU 不通过 XenCenter 的 VM 控制台选项卡提供控制台输出。直接使用远程图形连接到 VM 以访问 VM 的操作系统。

3.2.1. 使用 XenCenter 配置用于 GPU 直通的 VM

在 VM 的“属性”中,选择 直通整个 GPU 选项作为 GPU 类型:

图 14. 使用 XenCenter 配置直通 GPU

using-gpu-pass-through-citrix-xenserver-xencenter-screen.png

为 XenServer VM 配置 GPU 直通后,在 VM 上的客户机操作系统中安装 NVIDIA 显卡驱动程序,如安装 NVIDIA vGPU 软件图形驱动程序中所述。

3.2.2. 使用 xe 配置用于 GPU 直通的 VM

使用 passthrough vGPU 类型创建 vgpu 对象

复制
已复制!
            

[root@xenserver ~]# xe vgpu-type-list model-name="passthrough" uuid ( RO) : fa50b0f0-9705-6c59-689e-ea62a3d35237 vendor-name ( RO): model-name ( RO): passthrough framebuffer-size ( RO): 0 [root@xenserver ~]# xe vgpu-create vm-uuid=753e77a9-e10d-7679-f674-65c078abb2eb vgpu-type-uuid=fa50b0f0-9705-6c59-689e-ea62a3d35237 gpu-group-uuid=585877ef-5a6c-66af-fc56-7bd525bdc2f6 6aa530ec-8f27-86bd-b8e4-fe4fde8f08f9 [root@xenserver ~]#

注意

请勿使用旧版 other-config:pci 参数设置分配直通 GPU。此机制与 XenCenter UI 和 xe vgpu 机制不兼容,尝试使用它可能会导致未定义的后果。


为 XenServer VM 配置 GPU 直通后,在 VM 上的客户机操作系统中安装 NVIDIA 显卡驱动程序,如安装 NVIDIA vGPU 软件图形驱动程序中所述。

3.3. 在带有 KVM 虚拟机监控程序的 Linux 上使用 GPU 直通

NVIDIA vGPU 软件支持以下具有 KVM hypervisor 的 Linux:Red Hat Enterprise Linux with KVM 和 Ubuntu。

您可以使用以下任何工具在带有 KVM 虚拟机监控程序的 Linux 上配置 GPU 以进行直通

  • 虚拟机管理器 (virt-manager) 图形工具
  • virsh 命令
  • QEMU 命令行

在 Red Hat Enterprise Linux KVM 或 Ubuntu 上配置 GPU 以进行直通之前,请确保满足以下先决条件

  • 已安装 Red Hat Enterprise Linux KVM 或 Ubuntu。
  • 已创建虚拟磁盘。
    注意

    请勿在 /root 中创建任何虚拟磁盘。

  • 已创建虚拟机。

如果您要配置需要 UEFI VM 上大 BAR 地址空间的直通 GPU,请参阅 NVIDIA vGPU 软件图形驱动程序无法在基于 KVM 的虚拟机监控程序上加载,以获取确保 BAR 资源映射到 VM 中的解决方法。

注意

此解决方法涉及设置实验性 QEMU 参数。

3.3.1. 使用虚拟机管理器 (virt-manager) 配置用于 GPU 直通的 VM

有关使用虚拟机管理器的更多信息,请参阅 Red Hat Enterprise Linux 7 文档中的以下主题

  1. 启动 virt-manager。
  2. 在 virt-manager 主窗口中,选择要配置为直通的 VM。
  3. 编辑 菜单中,选择 虚拟机详细信息
  4. 在打开的虚拟机硬件信息窗口中,单击 添加硬件
  5. 在打开的“添加新虚拟硬件”对话框中,在左侧的硬件列表中,选择 PCI 主机设备
  6. 从出现的 主机设备 列表中,选择要分配给 VM 的 GPU,然后单击 完成

如果要从已分配 GPU 的 VM 中移除 GPU,请在虚拟机硬件信息窗口中,选择 GPU,然后单击 移除

为 VM 配置 GPU 直通后,在 VM 上的客户机操作系统中安装 NVIDIA 显卡驱动程序,如安装 NVIDIA vGPU 软件图形驱动程序中所述。

3.3.2. 使用 virsh 配置用于 GPU 直通的 VM

有关使用 virsh 的更多信息,请参阅 Red Hat Enterprise Linux 7 文档中的以下主题

  1. 验证是否已加载 vfio-pci 模块。
    复制
    已复制!
                

    # lsmod | grep vfio-pci

  2. 获取要以直通模式分配给 VM 的 GPU 的 PCI 设备总线/设备/功能 (BDF)。
    复制
    已复制!
                

    # lspci | grep NVIDIA

    此示例中列出的 NVIDIA GPU 的 PCI 设备 BDF 为 85:00.086:00.0

    复制
    已复制!
                

    # lspci | grep NVIDIA 85:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1) 86:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1)

  3. 从 GPU 的 PCI 设备 BDF 获取 GPU 的完整标识符。
    复制
    已复制!
                

    # virsh nodedev-list --cap pci| grep transformed-bdf

    transformed-bdf
    GPU 的 PCI 设备 BDF,其中冒号和句点替换为下划线,例如,85_00_0

    此示例获取 PCI 设备 BDF 为 85:00.0 的 GPU 的完整标识符。

    复制
    已复制!
                

    # virsh nodedev-list --cap pci| grep 85_00_0 pci_0000_85_00_0

  4. 获取 GPU 的域、总线、插槽和功能。
    复制
    已复制!
                

    virsh nodedev-dumpxml full-identifier| egrep 'domain|bus|slot|function'

    full-identifier
    在上一步中获取的 GPU 的完整标识符,例如,pci_0000_85_00_0

    此示例获取 PCI 设备 BDF 为 85:00.0 的 GPU 的域、总线、插槽和功能。

    复制
    已复制!
                

    # virsh nodedev-dumpxml pci_0000_85_00_0| egrep 'domain|bus|slot|function' <domain>0x0000</domain> <bus>0x85</bus> <slot>0x00</slot> <function>0x0</function> <address domain='0x0000' bus='0x85' slot='0x00' function='0x0'/>

  5. 在 virsh 中,打开要将 GPU 分配到的 VM 的 XML 文件进行编辑。
    复制
    已复制!
                

    # virsh edit vm-name

    vm-name
    要将 GPU 分配到的 VM 的名称。
  6. source 元素内以 address 元素的形式添加设备条目,以将 GPU 分配给客户机 VM。您可以选择在 source 元素之后添加第二个地址元素,以在客户机操作系统中为 GPU 设置固定的 PCI 设备 BDF。
    复制
    已复制!
                

    <hostdev mode='subsystem' type='pci' managed='yes'> <source> <address domain='domain' bus='bus' slot='slot' function='function'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </hostdev>

    domain
    bus
    slot
    function
    GPU 的域、总线、插槽和功能,您在上一步中获取了这些信息。

    此示例为 PCI 设备 BDF 为 85:00.0 的 GPU 添加设备条目,并在客户机操作系统中为 GPU 固定 BDF。

    复制
    已复制!
                

    <hostdev mode='subsystem' type='pci' managed='yes'> <source> <address domain='0x0000' bus='0x85' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </hostdev>

  7. 启动您分配了 GPU 的 VM。
    复制
    已复制!
                

    # virsh start vm-name

    vm-name
    您分配了 GPU 的 VM 的名称。

为 VM 配置 GPU 直通后,在 VM 上的客户机操作系统中安装 NVIDIA 显卡驱动程序,如安装 NVIDIA vGPU 软件图形驱动程序中所述。

3.3.3. 使用 QEMU 命令行配置用于 GPU 直通的 VM

  1. 获取要以直通模式分配给 VM 的 GPU 的 PCI 设备总线/设备/功能 (BDF)。
    复制
    已复制!
                

    # lspci | grep NVIDIA

    此示例中列出的 NVIDIA GPU 的 PCI 设备 BDF 为 85:00.086:00.0

    复制
    已复制!
                

    # lspci | grep NVIDIA 85:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1) 86:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1)

  2. 将以下选项添加到 QEMU 命令行
    复制
    已复制!
                

    -device vfio-pci,host=bdf

    bdf
    要以直通模式分配给 VM 的 GPU 的 PCI 设备 BDF,例如,85:00.0

    此示例以直通模式将 PCI 设备 BDF 为 85:00.0 的 GPU 分配给 VM。

    复制
    已复制!
                

    -device vfio-pci,host=85:00.0

为 VM 配置 GPU 直通后,在 VM 上的客户机操作系统中安装 NVIDIA 显卡驱动程序,如安装 NVIDIA vGPU 软件图形驱动程序中所述。

3.3.4. 准备配置为 vGPU 的 GPU 以用于直通模式

物理 GPU 使用的模式决定了 GPU 绑定的 Linux 内核模块。如果要切换 GPU 使用的模式,则必须从其当前内核模块中解除绑定 GPU,并将其绑定到新模式的内核模块。将 GPU 绑定到正确的内核模块后,您可以将其配置为直通。

当 Virtual GPU Manager 安装在 Red Hat Enterprise Linux KVM 或 Ubuntu 主机上时,主机上的物理 GPU 将绑定到 nvidia 内核模块。绑定到 nvidia 内核模块的物理 GPU 只能用于 vGPU。要使 GPU 能够传递到 VM,必须从 nvidia 内核模块解除绑定 GPU,并将其绑定到 vfio-pci 内核模块。
在开始之前,请确保您拥有要准备用于直通模式的 GPU 的域、总线、插槽和功能。有关说明,请参阅在带有 KVM 虚拟机监控程序的 Linux 上获取 GPU 的 BDF 和域

  1. 如果您使用的是支持 SR-IOV 的 GPU,例如基于 NVIDIA Ampere 架构的 GPU,请禁用 sysfs 文件系统中 GPU 的虚拟功能。

    如果您的 GPU 不支持 SR-IOV,请忽略此步骤。

    注意

    在执行此步骤之前,请确保 GPU 未被任何其他进程使用,例如 CUDA 应用程序、监控应用程序或 nvidia-smi 命令。

    为此目的,请使用 NVIDIA vGPU 软件提供的自定义脚本 sriov-manage。

    复制
    已复制!
                

    # /usr/lib/nvidia/sriov-manage -d domain:bus:slot.function

    domain
    bus
    slot
    function
    GPU 的域、总线、插槽和功能,不带 0x 前缀。

    此示例禁用域为 00、总线为 06、插槽为 0000 和功能为 0 的 GPU 的虚拟功能。

    复制
    已复制!
                

    # /usr/lib/nvidia/sriov-manage -d 00:06:0000.0

  2. 通过在主机上的 NVIDIA GPU 上运行带有 -k 选项的 lspci 命令,确定 GPU 绑定的内核模块。
    复制
    已复制!
                

    # lspci -d 10de: -k

    Kernel driver in use: 字段指示 GPU 绑定的内核模块。

    以下示例显示了 BDF 为 06:00.0 的 NVIDIA Tesla M60 GPU 已绑定到 nvidia 内核模块,并且正在用于 vGPU。

    复制
    已复制!
                

    06:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1) Subsystem: NVIDIA Corporation Device 115e Kernel driver in use: nvidia

  3. 为确保没有客户端正在使用 GPU,请获取 GPU 的解除绑定锁。
    1. 确保没有运行任何已为其分配物理 GPU 上 vGPU 的 VM,并且主机上没有运行任何进程正在使用该 GPU。主机上使用 GPU 的进程包括 nvidia-smi 命令和所有基于 NVIDIA Management Library (NVML) 的进程。
    2. 更改为 proc 文件系统中表示 GPU 的目录。
      复制
      已复制!
                  

      # cd /proc/driver/nvidia/gpus/domain\:bus\:slot.function

      domain
      bus
      slot
      function
      GPU 的域、总线、插槽和功能,不带 0x 前缀。

      此示例更改为 proc 文件系统中表示域为 0000 和 PCI 设备 BDF 为 06:00.0 的 GPU 的目录。

      复制
      已复制!
                  

      # cd /proc/driver/nvidia/gpus/0000\:06\:00.0

    3. 将值 1 写入此目录中的 unbindLock 文件。
      复制
      已复制!
                  

      # echo 1 > unbindLock

    4. 确认 unbindLock 文件现在包含值 1
      复制
      已复制!
                  

      # cat unbindLock 1

      如果 unbindLock 文件包含值 0,则无法获取解除绑定锁,因为进程或客户端正在使用 GPU。

  4. nvidia 内核模块解除绑定 GPU。
    1. 更改为表示 nvidia 内核模块的 sysfs 目录。
      复制
      已复制!
                  

      # cd /sys/bus/pci/drivers/nvidia

    2. 将 GPU 的域、总线、插槽和功能写入此目录中的 unbind 文件。
      复制
      已复制!
                  

      # echo domain:bus:slot.function > unbind

      domain
      bus
      slot
      function
      GPU 的域、总线、插槽和功能,不带 0x 前缀。

      此示例写入域为 0000 且 PCI 设备 BDF 为 06:00.0 的 GPU 的域、总线、插槽和功能。

      复制
      已复制!
                  

      # echo 0000:06:00.0 > unbind

  5. 将 GPU 绑定到 vfio-pci 内核模块。
    1. 更改为包含物理 GPU 的 PCI 设备信息的 sysfs 目录。
      复制
      已复制!
                  

      # cd /sys/bus/pci/devices/domain\:bus\:slot.function

      domain
      bus
      slot
      function
      GPU 的域、总线、插槽和功能,不带 0x 前缀。

      此示例更改为包含域为 0000 且 PCI 设备 BDF 为 06:00.0 的 GPU 的 PCI 设备信息的 sysfs 目录。

      复制
      已复制!
                  

      # cd /sys/bus/pci/devices/0000\:06\:00.0

    2. 将内核模块名称 vfio-pci 写入此目录中的 driver_override 文件。
      复制
      已复制!
                  

      # echo vfio-pci > driver_override

    3. 更改为表示 nvidia 内核模块的 sysfs 目录。
      复制
      已复制!
                  

      # cd /sys/bus/pci/drivers/vfio-pci

    4. 将 GPU 的域、总线、插槽和功能写入此目录中的 bind 文件。
      复制
      已复制!
                  

      # echo domain:bus:slot.function > bind

      domain
      bus
      slot
      function
      GPU 的域、总线、插槽和功能,不带 0x 前缀。

      此示例写入域为 0000 且 PCI 设备 BDF 为 06:00.0 的 GPU 的域、总线、插槽和功能。

      复制
      已复制!
                  

      # echo 0000:06:00.0 > bind

    5. 更改回包含物理 GPU 的 PCI 设备信息的 sysfs 目录。
      复制
      已复制!
                  

      # cd /sys/bus/pci/devices/domain\:bus\:slot.function

    6. 清除此目录中 driver_override 文件的内容。
      复制
      已复制!
                  

      # echo > driver_override

现在,您可以按照在带有 KVM 虚拟机监控程序的 Linux 上使用 GPU 直通中所述,配置 GPU 以用于直通模式。

3.4. 在 Microsoft Windows Server 上使用 GPU 直通

在支持的带有 Hyper-V 角色的 Microsoft Windows Server 版本上,您可以使用离散设备分配 (DDA) 使 VM 直接访问 GPU。

3.4.1. 在带有 Hyper-V 的 Microsoft Windows Server 上将 GPU 分配给 VM

在 Windows PowerShell 中执行此任务。如果您不知道要分配给 VM 的 GPU 的位置路径,请使用设备管理器获取它。

如果您使用的是主动散热的 NVIDIA Quadro 显卡(如 RTX 8000 或 RTX 6000),则还必须直通显卡上的音频设备。

确保满足以下先决条件

  1. 获取要分配给 VM 的 GPU 的位置路径。
    1. 在设备管理器中,右键单击 GPU,然后从弹出的菜单中选择 属性
    2. 在打开的“属性”窗口中,单击 详细信息 选项卡,然后在 属性 下拉列表中,选择 位置路径

    位置路径示例如下

    复制
    已复制!
                

    PCIROOT(80)#PCI(0200)#PCI(0000)#PCI(1000)#PCI(0000)

  2. 如果您使用的是主动散热的 NVIDIA Quadro 显卡,请获取显卡上音频设备的位置路径,并禁用该设备。
    1. 在设备管理器中,从 查看 菜单中,选择 按连接列出设备
    2. 导航到 ACPI x64-based PC > Microsoft ACPI-Compliant System > PCI Express Root Complex > PCI-to-PCI Bridge
    3. 右键单击 High Definition Audio Controller,然后从弹出的菜单中选择 属性
    4. 在打开的“属性”窗口中,单击 详细信息 选项卡,然后在 属性 下拉列表中,选择 位置路径
    5. 再次右键单击 High Definition Audio Controller,然后从弹出的菜单中选择 禁用设备
  3. 从主机卸载 GPU 以及(如果存在)音频设备,使其对主机不可用,以便它们只能由 VM 使用。

    对于要卸载的每个设备,键入以下命令

    复制
    已复制!
                

    Dismount-VMHostAssignableDevice -LocationPath gpu-device-location -force

    gpu-device-location
    先前获取的 GPU 或音频设备的位置路径。

    此示例卸载位置路径为 PCIROOT(80)#PCI(0200)#PCI(0000)#PCI(1000)#PCI(0000) 的 GPU。

    复制
    已复制!
                

    Dismount-VMHostAssignableDevice -LocationPath "PCIROOT(80)#PCI(0200)#PCI(0000)#PCI(1000)#PCI(0000)" -force

  4. 将 GPU 以及(如果存在)在上一步中卸载的音频设备分配给 VM。

    对于要分配的每个设备,键入以下命令

    复制
    已复制!
                

    Add-VMAssignableDevice -LocationPath gpu-device-location -VMName vm-name

    gpu-device-location
    在上一步中卸载的 GPU 或音频设备的位置路径。
    vm-name
    要将 GPU 或音频设备附加到的 VM 的名称。
    注意

    您可以一次将直通 GPU 以及(如果存在)其音频设备分配给 仅一台 虚拟机。

    此示例将位置路径为 PCIROOT(80)#PCI(0200)#PCI(0000)#PCI(1000)#PCI(0000) 的 GPU 分配给 VM VM1

    复制
    已复制!
                

    Add-VMAssignableDevice -LocationPath "PCIROOT(80)#PCI(0200)#PCI(0000)#PCI(1000)#PCI(0000)" -VMName VM1

  5. 开启 VM 电源。客户机操作系统现在应该能够使用 GPU 以及(如果存在)音频设备。

将 GPU 分配给 VM 后,在 VM 上的客户机操作系统中安装 NVIDIA 显卡驱动程序,如安装 NVIDIA vGPU 软件图形驱动程序中所述。

3.4.2. 在带有 Hyper-V 的 Windows Server 上从 VM 返回 GPU 到主机操作系统

在 Windows PowerShell 中执行此任务。

如果您使用的是主动散热的 NVIDIA Quadro 显卡(如 RTX 8000 或 RTX 6000),则还必须返回显卡上的音频设备。

  1. 列出当前分配给虚拟机 (VM) 的 GPU 以及(如果存在)音频设备。
    复制
    已复制!
                

    Get-VMAssignableDevice -VMName vm-name

    vm-name
    要列出已分配的 GPU 和音频设备的 VM 的名称。
  2. 关闭已分配 GPU 和任何音频设备的 VM。
  3. 从已分配 GPU 和音频设备的 VM 中移除它们。

    对于要移除的每个设备,键入以下命令

    复制
    已复制!
                

    Remove-VMAssignableDevice –LocationPath gpu-device-location -VMName vm-name

    gpu-device-location
    先前获取的要移除的 GPU 或音频设备的位置路径。
    vm-name
    要从中移除 GPU 或音频设备的 VM 的名称。

    此示例从 VM VM1 中移除位置路径为 PCIROOT(80)#PCI(0200)#PCI(0000)#PCI(1000)#PCI(0000) 的 GPU。

    复制
    已复制!
                

    Remove-VMAssignableDevice –LocationPath "PCIROOT(80)#PCI(0200)#PCI(0000)#PCI(1000)#PCI(0000)" -VMName VM1

    从 VM 移除 GPU 以及(如果存在)其音频设备后,它们对主机操作系统 (OS) 不可用,直到您将它们重新挂载到主机操作系统上。

  4. 将 GPU 以及(如果存在)其音频设备重新挂载到主机操作系统上。

    对于要重新挂载的每个设备,键入以下命令

    复制
    已复制!
                

    Mount-VMHostAssignableDevice –LocationPath gpu-device-location

    gpu-device-location
    要重新挂载的 GPU 或音频设备的位置路径,您在上一步中指定了该路径以从 VM 中移除 GPU 或音频设备。

    此示例将位置路径为 PCIROOT(80)#PCI(0200)#PCI(0000)#PCI(1000)#PCI(0000) 的 GPU 重新挂载到主机操作系统上。

    复制
    已复制!
                

    Mount-VMHostAssignableDevice -LocationPath "PCIROOT(80)#PCI(0200)#PCI(0000)#PCI(1000)#PCI(0000)"

    主机操作系统现在应该能够使用 GPU 以及(如果存在)音频设备。

3.5. 在 VMware vSphere 上使用 GPU 直通

在 VMware vSphere 上,您可以使用虚拟专用图形加速 (vDGA) 使 VM 直接访问 GPU。vDGA 是 VMware vSphere 的一项功能,它将 ESXi 主机上的单个物理 GPU 专用于单个虚拟机。
在配置带有 vDGA 的 vSphere VM 之前,请确保满足以下先决条件

  • VM 和 ESXi 主机的配置如 VMware Horizon 文档中的 准备 vDGA 功能中所述。
  • VM 已关闭电源。
  1. 打开 vCenter Web UI。
  2. 在 vCenter Web UI 中,右键单击 ESXi 主机,然后选择 配置
  3. 硬件 菜单中,选择 PCI 设备
  4. 在打开的“PCI 设备”页面上,单击 所有 PCI 设备,然后在设备表中,选择 GPU。
    注意

    选择要直通的 GPU 时,您必须仅选择物理设备。要仅列出 NVIDIA 物理设备,请将 供应商名称 字段上的过滤器设置为 NVIDIA,并通过将 ID 字段上的过滤器设置为 00.0 来过滤掉 GPU 的任何虚拟功能设备。

    vmware-vcenter-filter-physical-pci-device.png

  5. 单击 切换直通
  6. 重启 ESXi 主机。
  7. 在 ESXi 主机启动后,右键单击 VM,然后选择 编辑设置
  8. 新设备 菜单中,选择 PCI 设备,然后单击 添加
  9. 在打开的页面上,从 新设备 下拉列表中,选择 GPU。
  10. 单击 预留所有内存,然后单击 确定
  11. 启动 VM。

有关 vDGA 的更多信息,请参阅 VMware Horizon 文档中的以下主题

配置带有 vDGA 的 vSphere VM 后,在 VM 上的客户机操作系统中安装 NVIDIA 显卡驱动程序,如安装 NVIDIA vGPU 软件图形驱动程序中所述。

安装 NVIDIA vGPU 软件图形驱动程序的过程取决于您正在使用的操作系统。但是,对于任何操作系统,在配置了 vGPU 的 VM 中、在运行直通 GPU 的 VM 中或在裸机部署中的物理主机上,安装驱动程序的过程都是相同的。

安装 NVIDIA vGPU 软件图形驱动程序后,您可以许可您正在使用的任何 NVIDIA vGPU 软件许可产品。

4.1. 在 Windows 上安装 NVIDIA vGPU 软件图形驱动程序和 NVIDIA 控制面板

要完全启用 VM 或裸机主机中的 GPU 操作,必须安装 NVIDIA vGPU 软件图形驱动程序。如果在安装图形驱动程序时未安装 NVIDIA 控制面板应用程序,则可以从图形驱动程序单独安装它。

4.1.1. 在 Windows 上安装 NVIDIA vGPU 软件图形驱动程序

在 VM 中安装:在虚拟机监控程序上创建 Windows VM 并启动 VM 后,VM 应启动到 VGA 模式下分辨率为 800×600 的标准 Windows 桌面。您可以使用 Windows 屏幕分辨率控制面板将分辨率增加到其他标准分辨率,但要完全启用 GPU 操作,必须安装 NVIDIA vGPU 软件图形驱动程序。所有 NVIDIA vGPU 类型(即:Q 系列、B 系列和 A 系列 NVIDIA vGPU 类型)都支持 Windows 客户机 VM。

裸机安装:在安装 NVIDIA vGPU 软件图形驱动程序之前启动物理主机时,启动和主显示器由板载图形适配器处理。要安装 NVIDIA vGPU 软件图形驱动程序,请使用通过板载图形适配器连接的显示器访问主机上的 Windows 桌面。

在虚拟机和裸机上安装驱动程序的步骤相同。

  1. 将 NVIDIA Windows 驱动程序包复制到您要安装驱动程序的客户机虚拟机或物理主机。
  2. 执行该软件包以解压缩并运行驱动程序安装程序。

    图 15. NVIDIA 驱动程序安装

    install-nvidia-windows-guest-driver.png

  3. 点击浏览许可协议。
  4. 选择快速安装,然后点击下一步。驱动程序安装完成后,安装程序可能会提示您重启平台。
  5. 如果提示重启平台,请执行以下操作之一
    • 选择立即重启以重启虚拟机或物理主机。
    • 退出安装程序,并在准备就绪时重启虚拟机或物理主机。

    虚拟机或物理主机重启后,将启动到 Windows 桌面。

  6. 验证 NVIDIA 驱动程序是否正在运行。
    1. 右键单击桌面。
    2. 从打开的菜单中,选择 NVIDIA 控制面板
    3. 在 NVIDIA 控制面板中,从帮助菜单中,选择系统信息

      NVIDIA 控制面板会报告正在使用的 vGPU 或物理 GPU、其功能以及已加载的 NVIDIA 驱动程序版本。

      图 16. 使用 NVIDIA 控制面板验证 NVIDIA 驱动程序操作

      verify-nvidia-driver-nvcp.png

虚拟机安装:安装 NVIDIA vGPU 软件图形驱动程序后,您可以许可您正在使用的任何 NVIDIA vGPU 软件许可产品。有关说明,请参阅虚拟 GPU 客户端许可用户指南

注意

此版本的 NVIDIA vGPU 软件中用于 Windows 的图形驱动程序以符合 DCH 标准的软件包分发。符合 DCH 标准的软件包与不符合 DCH 标准的驱动程序软件包的不同之处在于以下几点

  • 符合 DCH 标准的软件包的许可证设置的 Windows 注册表项与不符合 DCH 标准的驱动程序软件包的注册表项不同。如果您是从先前已许可的虚拟机中不符合 DCH 标准的驱动程序软件包升级,则必须重新配置虚拟机的许可证设置。现有许可证设置不会传播到符合 DCH 标准的软件包的新 Windows 注册表项。
  • NVIDIA 系统管理界面 nvidia-smi 安装在默认可执行路径下的文件夹中。
  • NVWMI 二进制文件安装在 Windows 驱动程序存储库的 %SystemDrive%:\Windows\System32\DriverStore\FileRepository\ 下。
  • Windows 帮助格式的 NVWMI 帮助信息未与 Windows 客户机操作系统的图形驱动程序一起安装。

裸机安装:安装 NVIDIA vGPU 软件图形驱动程序后,按照裸机部署中的说明完成裸机部署。

4.1.2. 安装独立的 NVIDIA 控制面板应用程序

NVIDIA 控制面板应用程序现在通过 Microsoft Store 分发。如果您的系统不允许从 Microsoft Store 安装应用程序,则在安装适用于 Windows 的 NVIDIA vGPU 软件图形驱动程序时,不会安装 NVIDIA 控制面板应用程序。
由于以下任何原因,您的系统可能不允许从 Microsoft Store 安装应用程序

  • Microsoft Store 应用程序已禁用。
  • 您的系统未连接到互联网
  • 您的系统设置阻止从 Microsoft Store 安装应用程序。

您可以从 NVIDIA 许可门户下载并运行独立的 NVIDIA 控制面板安装程序,从而将 NVIDIA 控制面板应用程序与图形驱动程序分开安装。

  1. 从 NVIDIA 许可门户下载并提取独立的 NVIDIA 控制面板安装程序。
  2. 将提取的独立 NVIDIA 控制面板安装程序复制到您要安装 NVIDIA 控制面板应用程序的客户机虚拟机或物理主机。
  3. 双击安装程序可执行文件以启动安装程序。
  4. 当询问您是否要允许安装程序应用程序更改您的设备时,点击
  5. 接受 NVIDIA 软件许可协议。
  6. 选择快速安装选项,然后点击下一步
  7. 安装完成后,点击关闭以关闭安装程序。NVIDIA 控制面板应用程序将打开。

4.2. 在 Linux 上安装 NVIDIA vGPU 软件图形驱动程序

适用于 Linux 的 NVIDIA vGPU 软件图形驱动程序以 .run 文件的形式分发,该文件可以安装在所有受支持的 Linux 发行版上。该驱动程序也以 Debian 软件包的形式分发给 Ubuntu 发行版,并以 RPM 软件包的形式分发给 Red Hat 发行版。

虚拟机安装:在虚拟机管理程序上创建 Linux 虚拟机并启动虚拟机后,在虚拟机中安装 NVIDIA vGPU 软件图形驱动程序以完全启用 GPU 操作。所有 NVIDIA vGPU 类型(即:Q 系列、B 系列和 A 系列 NVIDIA vGPU 类型)均支持 Linux 客户机虚拟机。

裸机安装:在安装 NVIDIA vGPU 软件图形驱动程序之前启动物理主机时,vesa Xorg 驱动程序将启动 X 服务器。如果主显示设备连接到主机,请使用该设备访问桌面。否则,请使用安全外壳 (SSH) 从远程主机登录到主机。除了 NVIDIA vGPU 软件图形驱动程序的专有版本外,还提供基于 NVIDIA Linux 开源 GPU 内核模块的版本。基于 NVIDIA Linux 开源 GPU 内核模块的版本与以下 NVIDIA vGPU 软件部署兼容

  • 基于 NVIDIA Ada Lovelace GPU 架构或更高架构的 GPU 上的 NVIDIA vGPU 部署
  • 基于 NVIDIA Turing GPU 架构或更高架构的 GPU 上的裸机部署

基于 NVIDIA Linux 开源 GPU 内核模块的版本只能从 .run 文件安装,不能从 Debian 软件包或 RPM 软件包安装。

在虚拟机和裸机上安装驱动程序的步骤相同。
在安装 NVIDIA vGPU 软件图形驱动程序之前,请确保满足以下先决条件

  • 虚拟机中已安装 OpenSSL。如果未安装 OpenSSL,虚拟机将无法获取 NVIDIA vGPU 软件许可证。
  • NVIDIA 直接渲染管理器内核模式设置 (DRM KMS) 已禁用。默认情况下,DRM KMS 已禁用。但是,如果已启用,请从内核命令行选项中删除 nvidia-drm.modeset=1
  • 如果虚拟机使用 UEFI 启动,请确保安全启动处于禁用状态。
  • 如果 Nouveau NVIDIA 显卡驱动程序存在,请禁用它。有关说明,请参阅禁用 Nouveau NVIDIA 显卡驱动程序中的说明。
  • 如果您使用的 Linux 操作系统默认启用 Wayland 显示服务器协议,请按照为 Red Hat Enterprise Linux 禁用 Wayland 显示服务器协议中的说明禁用它。

如何在 Linux 上安装 NVIDIA vGPU 软件图形驱动程序取决于您从中安装驱动程序的分发格式。有关详细说明,请参阅

虚拟机安装:安装 NVIDIA vGPU 软件图形驱动程序后,您可以许可您正在使用的任何 NVIDIA vGPU 软件许可产品。有关说明,请参阅虚拟 GPU 客户端许可用户指南

裸机安装:安装 NVIDIA vGPU 软件图形驱动程序后,按照裸机部署中的说明完成裸机部署。

4.2.1. 从 .run 文件在 Linux 上安装 NVIDIA vGPU 软件图形驱动程序

您可以使用 .run 文件在任何受支持的 Linux 发行版上安装 NVIDIA vGPU 软件图形驱动程序。

从 .run 文件安装适用于 Linux 的 NVIDIA vGPU 软件图形驱动程序需要

  • 编译器工具链
  • 内核头文件

如果先前已从 Debian 软件包或 RPM 软件包在客户机虚拟机或物理主机上安装了驱动程序,请先卸载该驱动程序,然后再从 .run 文件安装驱动程序。

如果启用了动态内核模块支持 (DKMS),请确保已安装 dkms 软件包。

  1. 将 NVIDIA vGPU 软件 Linux 驱动程序包(例如 NVIDIA-Linux_x86_64-550.144.03-grid.run)复制到您要安装驱动程序的客户机虚拟机或物理主机。
  2. 在尝试运行驱动程序安装程序之前,退出 X 服务器并终止所有 OpenGL 应用程序。
    • 在 Red Hat Enterprise Linux 和 CentOS 系统上,通过转换为运行级别 3 来退出 X 服务器
      复制
      已复制!
                  

      [nvidia@localhost ~]$ sudo init 3

    • 在 Ubuntu 平台上,执行以下操作
      1. 切换到控制台登录提示符。
        • 如果您可以访问终端的功能键,请按 CTRL-ALT-F1
        • 如果您通过 VNC 或 Web 浏览器访问客户机虚拟机或物理主机,并且无法访问终端的功能键,请以 root 用户身份运行操作系统的 chvt 命令。
          复制
          已复制!
                      

          [nvidia@localhost ~]$ sudo chvt 3

      2. 登录并关闭显示管理器
        • 对于 Ubuntu 18 及更高版本,停止 gdm 服务。

          复制
          已复制!
                      

          [nvidia@localhost ~]$ sudo service gdm stop

        • 对于早于 Ubuntu 18 的版本,停止 lightdm 服务。

          复制
          已复制!
                      

          [nvidia@localhost ~]$ sudo service lightdm stop

  3. 从控制台 shell 中,以 root 用户身份运行驱动程序安装程序。
    • 要安装驱动程序的专有版本,请在不使用任何其他选项的情况下运行驱动程序安装程序。
      复制
      已复制!
                  

      sudo sh ./NVIDIA-Linux_x86_64-550.144.03-grid.run

    • 要安装基于 NVIDIA Linux 开源 GPU 内核模块的版本,请使用 -m=kernel-open 选项运行驱动程序安装程序。
      复制
      已复制!
                  

      sudo sh ./NVIDIA-Linux_x86_64-550.144.03-grid.run -m=kernel-open

    如果启用了 DKMS,请设置 -dkms 选项。此选项要求安装 dkms 软件包。

    复制
    已复制!
                

    sudo sh ./NVIDIA-Linux_x86_64-550.144.03-grid.run -dkms

    在某些情况下,安装程序可能无法检测到已安装的内核头文件和源文件。在这种情况下,请重新运行安装程序,并使用 --kernel-source-path 选项指定内核源路径。

    复制
    已复制!
                

    sudo sh ./NVIDIA-Linux_x86_64-550.144.03-grid.run \ –kernel-source-path=/usr/src/kernels/3.10.0-229.11.1.el7.x86_64

  4. 出现提示时,接受更新 X 配置文件 (xorg.conf) 的选项。

    图 17. 更新 xorg.conf 设置

    update-xorg-conf-linux-driver-installer.png

  5. 安装完成后,选择确定退出安装程序。
  6. 验证 NVIDIA 驱动程序是否正常运行。
    1. 重启系统并登录。
    2. 运行 nvidia-settings。
      复制
      已复制!
                  

      [nvidia@localhost ~]$ nvidia-settings

      NVIDIA X Server Settings 对话框打开,显示 NVIDIA 驱动程序正常运行。

4.2.2. 从 Debian 软件包在 Ubuntu 上安装 NVIDIA vGPU 软件图形驱动程序

适用于 Ubuntu 的 NVIDIA vGPU 软件图形驱动程序以 Debian 软件包文件的形式分发。

此任务需要 sudo 权限。

  1. 将 NVIDIA vGPU 软件 Linux 驱动程序包(例如 nvidia-linux-grid-550_550.144.03_amd64.deb)复制到您要安装驱动程序的客户机虚拟机。
  2. 以具有 sudo 权限的用户身份登录客户机虚拟机。
  3. 打开命令 shell 并切换到包含 NVIDIA vGPU 软件 Linux 驱动程序包的目录。
  4. 从命令 shell 中,运行命令以安装软件包。
    复制
    已复制!
                

    $ sudo apt-get install ./nvidia-linux-grid-550_550.144.03_amd64.deb

  5. 验证 NVIDIA 驱动程序是否正常运行。
    1. 重启系统并登录。
    2. 系统重启后,确认您可以在 nvidia-smi 命令的输出中看到您的 NVIDIA vGPU 设备。
      复制
      已复制!
                  

      $ nvidia-smi

4.2.3. 从 RPM 软件包在 Red Hat 发行版上安装 NVIDIA vGPU 软件图形驱动程序

适用于 Red Hat 发行版的 NVIDIA vGPU 软件图形驱动程序以 RPM 软件包文件的形式分发。

此任务需要 root 用户权限。

  1. 将 NVIDIA vGPU 软件 Linux 驱动程序包(例如 nvidia-linux-grid-550_550.144.03_amd64.rpm)复制到您要安装驱动程序的客户机虚拟机。
  2. 以具有 root 用户权限的用户身份登录客户机虚拟机。
  3. 打开命令 shell 并切换到包含 NVIDIA vGPU 软件 Linux 驱动程序包的目录。
  4. 从命令 shell 中,运行命令以安装软件包。
    复制
    已复制!
                

    $ rpm -iv ./nvidia-linux-grid-550_550.144.03_amd64.rpm

  5. 验证 NVIDIA 驱动程序是否正常运行。
    1. 重启系统并登录。
    2. 系统重启后,确认您可以在 nvidia-smi 命令的输出中看到您的 NVIDIA vGPU 设备。
      复制
      已复制!
                  

      $ nvidia-smi

4.2.4. 禁用 Nouveau NVIDIA 显卡驱动程序

如果 Nouveau NVIDIA 显卡驱动程序存在,请在安装 NVIDIA vGPU 软件图形驱动程序之前禁用它。

注意

如果您使用的是 SUSE Linux Enterprise Server,则可以跳过此任务,因为 Nouveau 驱动程序在 SUSE Linux Enterprise Server 中不存在。


运行以下命令,如果该命令打印任何输出,则 Nouveau 驱动程序存在,必须禁用。

复制
已复制!
            

$ lsmod | grep nouveau


  1. 创建文件 /etc/modprobe.d/blacklist-nouveau.conf,内容如下
    复制
    已复制!
                

    blacklist nouveau options nouveau modeset=0

  2. 重新生成内核初始 RAM 文件系统 (initramfs)。重新生成内核 initramfs 的命令取决于您正在使用的 Linux 发行版。
    Linux 发行版 命令
    CentOS
    复制
    已复制!
                

    $ sudo dracut --force

    Debian
    复制
    已复制!
                

    $ sudo update-initramfs -u

    Red Hat Enterprise Linux
    复制
    已复制!
                

    $ sudo dracut --force

    Ubuntu
    复制
    已复制!
                

    $ sudo update-initramfs -u

  3. 重启主机或客户机虚拟机。

4.2.5. 为 Red Hat Enterprise Linux 禁用 Wayland 显示服务器协议

从 Red Hat Enterprise Linux Desktop 8.0 开始,在受支持的 GPU 和图形驱动程序配置上,默认使用 Wayland 显示服务器协议。但是,适用于 Linux 的 NVIDIA vGPU 软件图形驱动程序需要 X Window 系统。在安装驱动程序之前,您必须禁用 Wayland 显示服务器协议以恢复到 X Window 系统。

从运行 Red Hat Enterprise Linux Desktop 的主机或客户机虚拟机执行此任务。
此任务需要管理访问权限。

  1. 在纯文本编辑器中,编辑文件 /etc/gdm/custom.conf 并删除选项 WaylandEnable=false 中的注释。
  2. 将更改保存到 /etc/gdm/custom.conf。
  3. 重启主机或客户机虚拟机。

4.2.6. 禁用 GSP 固件

某些 GPU 包含 GPU 系统处理器 (GSP),可用于卸载 GPU 初始化和管理任务。在 Linux 上的 GPU 直通和裸机部署中,仅 vCS 支持 GSP。如果您在 Linux 上的 GPU 直通或裸机部署中使用任何其他产品,则必须禁用 GSP 固件。

注意

对于 Linux 上的 NVIDIA vGPU 部署以及 Windows 上的所有 NVIDIA vGPU 软件部署,请忽略此任务。

基于 NVIDIA Ada Lovelace GPU 架构的 GPU 上的 NVIDIA vGPU 部署支持 GSP 固件。对于基于早期 GPU 架构的 GPU 上的 Linux 上的 NVIDIA vGPU 部署以及 Windows 上的所有 NVIDIA vGPU 软件部署,也不支持 GSP,但 GSP 固件已禁用。


对于每种 NVIDIA vGPU 软件产品,下表列出了在可以启用 GSP 固件的部署中是否支持 GSP。该表还总结了当虚拟机或主机在启用 GSP 固件的情况下请求许可证时 NVIDIA vGPU 软件的行为。可以启用 GSP 固件的部署是在 Linux 上的 GPU 直通和裸机部署。

产品 GSP 许可证请求 错误消息
vCS 支持 允许 不适用
vApps 不支持 阻止 已打印
vWS 不支持 阻止 已打印

当许可证请求被阻止时,以下错误消息将写入到虚拟 GPU 客户端许可用户指南中给出的位置的许可事件日志文件中

复制
已复制!
            

Invalid feature requested for the underlying GSP firmware configuration. Disable GSP firmware to use this feature.

在 GPU 直通到的虚拟机或裸机主机上执行此任务。
确保虚拟机或裸机主机上已安装适用于 Linux 的 NVIDIA vGPU 软件图形驱动程序。

  1. 登录到虚拟机或裸机主机并打开命令 shell。
  2. 确定是否启用了 GSP 固件。
    复制
    已复制!
                

    $ nvidia-smi -q

    • 如果启用了 GSP 固件,则命令将显示 GSP 固件版本,例如
      复制
      已复制!
                  

      GSP Firmware Version : 550.144.03

    • 否则,该命令将显示 N/A 作为 GSP 固件版本。
  3. 如果启用了 GSP 固件,请通过将 NVIDIA 模块参数 NVreg_EnableGpuFirmware 设置为 0 来禁用它。

    通过将以下条目添加到 /etc/modprobe.d/nvidia.conf 文件来设置此参数

    复制
    已复制!
                

    options nvidia NVreg_EnableGpuFirmware=0

    如果 /etc/modprobe.d/nvidia.conf 文件尚不存在,请创建它。

  4. 重启虚拟机或裸机主机。

如果您稍后需要启用 GSP 固件,请将 NVIDIA 模块参数 NVreg_EnableGpuFirmware 设置为 1。

NVIDIA vGPU 是一种许可产品。在受支持的 GPU 上启动时,vGPU 最初以全部功能运行,但如果虚拟机未能获得许可证,其性能会随着时间的推移而降低。如果 vGPU 的性能已降低,则在获得许可证后,vGPU 的全部功能将恢复。有关未许可 vGPU 的性能如何降低的信息,请参阅虚拟 GPU 客户端许可用户指南

在您许可 NVIDIA vGPU 后,设置为使用 NVIDIA vGPU 的虚拟机能够运行全系列的 DirectX 和 OpenGL 图形应用程序。

如果配置了许可,则虚拟机 (VM) 在这些 GPU 上启动 vGPU 时,会从许可证服务器获取许可证。虚拟机保留许可证,直到它关闭。然后,它将许可证释放回许可证服务器。许可证设置在重启后仍然存在,只有在许可证服务器地址更改或虚拟机切换为运行 GPU 直通时才需要修改。

注意

有关配置和使用 NVIDIA vGPU 软件许可功能(包括 vGPU)的完整信息,请参阅虚拟 GPU 客户端许可用户指南


5.1. 配置 NVIDIA 许可证系统的许可客户端的先决条件

具有网络连接的客户端通过从 NVIDIA 许可证系统服务实例租用许可证来获取许可证。服务实例通过网络从 NVIDIA 许可门户获取的浮动许可证池向客户端提供许可证。当许可客户端不再需要许可证时,许可证将返回到服务实例。

在配置许可客户端之前,请确保满足以下先决条件

  • 客户端上已安装 NVIDIA vGPU 软件图形驱动程序。
  • 您要部署在客户端上的客户端配置令牌已从 NVIDIA 许可门户或 DLS 创建,如NVIDIA 许可证系统用户指南中的生成客户端配置令牌中所述。
  • 您的防火墙或代理中的端口 443 和 80 必须打开,以允许服务实例及其许可客户端之间的 HTTPS 流量。这些端口对于 CLS 实例和 DLS 实例都必须打开。
    注意

    对于 DLS 1.1 之前的 DLS 版本,端口 8081 和 8082 也需要打开,以允许 DLS 实例及其许可客户端之间的 HTTPS 流量。虽然不再需要这些端口,但为了向后兼容性,它们仍然受支持。

图形驱动程序创建了一个默认位置,用于在客户端上存储客户端配置令牌。

配置许可客户端的过程对于 CLS 实例和 DLS 实例是相同的,但取决于客户端上运行的操作系统。

5.2. 使用默认设置在 Windows 上配置许可客户端

从客户端执行此任务。

  1. 将客户端配置令牌复制到 %SystemDrive%:\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken 文件夹。
  2. 重启 NvDisplayContainer 服务。

客户端上的 NVIDIA 服务现在应自动从 CLS 或 DLS 实例获取许可证。

5.3. 使用默认设置在 Linux 上配置许可客户端

从客户端执行此任务。

  1. 以 root 用户身份,在纯文本编辑器(例如 vi)中打开文件 /etc/nvidia/gridd.conf。
    复制
    已复制!
                

    $ sudo vi /etc/nvidia/gridd.conf

    注意

    您可以通过复制提供的模板文件 /etc/nvidia/gridd.conf.template 来创建 /etc/nvidia/gridd.conf 文件。

  2. FeatureType 配置参数添加到文件 /etc/nvidia/gridd.conf 中的新行,格式为 FeatureType="<i>value</i>"

    value 取决于分配给您要配置的许可客户端的 GPU 类型。

    GPU 类型
    NVIDIA vGPU 1. NVIDIA vGPU 软件会根据 vGPU 类型自动选择正确的许可证类型。
    物理 GPU 直通模式或裸机部署中 GPU 的功能类型
    • 0:NVIDIA 虚拟应用程序
    • 2:NVIDIA RTX 虚拟工作站

    注意

    您也可以从 NVIDIA X Server Settings 执行此步骤。在使用 NVIDIA X Server Settings 执行此步骤之前,请确保已启用此选项,如虚拟 GPU 客户端许可用户指南中所述。

    此示例显示了如何为 NVIDIA RTX 虚拟工作站配置许可的 Linux 客户端。

    复制
    已复制!
                

    # /etc/nvidia/gridd.conf.template - Configuration file for NVIDIA Grid Daemon … # Description: Set Feature to be enabled # Data type: integer # Possible values: # 0 => for unlicensed state # 1 => for NVIDIA vGPU # 2 => for NVIDIA RTX Virtual Workstation # 4 => for NVIDIA Virtual Compute Server FeatureType=2 ...

  3. 将客户端配置令牌复制到 /etc/nvidia/ClientConfigToken 目录。
  4. 确保客户端配置令牌的文件访问模式允许所有者读取、写入和执行令牌,而组和其他人只能读取令牌。
    1. 确定客户端配置令牌的当前文件访问模式。
      复制
      已复制!
                  

      # ls -l client-configuration-token-directory

    2. 如有必要,将客户端配置令牌的模式更改为 744。
      复制
      已复制!
                  

      # chmod 744 client-configuration-token-directory/client_configuration_token_*.tok

    客户端配置令牌目录
    您在上一步中将客户端配置令牌复制到的目录。
  5. 将更改保存到 /etc/nvidia/gridd.conf 文件并关闭该文件。
  6. 重启 nvidia-gridd 服务。

客户端上的 NVIDIA 服务现在应自动从 CLS 或 DLS 实例获取许可证。

5.4. 验证许可客户端的 NVIDIA vGPU 软件许可证状态

使用 NVIDIA vGPU 软件许可证配置客户端后,通过显示许可产品名称和状态来验证许可证状态。

要验证许可客户端的许可证状态,请从许可客户端(而非虚拟机管理程序主机)运行带有 –q 或 --query 选项的 nvidia-smi。如果产品已许可,则许可证状态中会显示到期日期。

复制
已复制!
            

nvidia-smi -q ==============NVSMI LOG============== Timestamp : Wed Nov 23 10:52:59 2022 Driver Version : 525.60.06 CUDA Version : 12.0 Attached GPUs : 2 GPU 00000000:02:03.0 Product Name : NVIDIA A2-8Q Product Brand : NVIDIA RTX Virtual Workstation Product Architecture : Ampere Display Mode : Enabled Display Active : Disabled Persistence Mode : Enabled MIG Mode Current : Disabled Pending : Disabled Accounting Mode : Disabled Accounting Mode Buffer Size : 4000 Driver Model Current : N/A Pending : N/A Serial Number : N/A GPU UUID : GPU-ba5b1e9b-1dd3-11b2-be4f-98ef552f4216 Minor Number : 0 VBIOS Version : 00.00.00.00.00 MultiGPU Board : No Board ID : 0x203 Board Part Number : N/A GPU Part Number : 25B6-890-A1 Module ID : N/A Inforom Version Image Version : N/A OEM Object : N/A ECC Object : N/A Power Management Object : N/A GPU Operation Mode Current : N/A Pending : N/A GSP Firmware Version : N/A GPU Virtualization Mode Virtualization Mode : VGPU Host VGPU Mode : N/A vGPU Software Licensed Product Product Name : NVIDIA RTX Virtual Workstation License Status : Licensed (Expiry: 2022-11-23 10:41:16 GMT) … …

您可以通过从虚拟机中删除 NVIDIA vGPU 配置或修改 GPU 分配策略来修改虚拟机的 NVIDIA vGPU 配置。

6.1. 删除虚拟机的 NVIDIA vGPU 配置

当您不再需要虚拟机使用虚拟 GPU 时,请删除虚拟机的 NVIDIA vGPU 配置。

6.1.1. 删除 Citrix Virtual Apps and Desktops 虚拟机的 vGPU 配置

您可以使用 XenCenter 或 xe 命令从虚拟机中删除虚拟 GPU 分配,使其不再使用虚拟 GPU。

注意

虚拟机必须处于关闭状态,才能修改或删除其 vGPU 配置。


6.1.1.1. 使用 XenCenter 删除虚拟机的 vGPU 配置

  1. 在虚拟机的 GPU 属性中,将GPU 类型设置为,如图 图 18 所示。

    图 18. 使用 XenCenter 从虚拟机中删除 vGPU 配置

    remove-vgpu-configuration-citrix-xenserver-xencenter-screen.png

  2. 点击确定

6.1.1.2. 使用 xe 删除虚拟机的 vGPU 配置

  1. 使用 vgpu-list 发现与给定虚拟机关联的 vGPU 对象 UUID
    复制
    已复制!
                

    [root@xenserver ~]# xe vgpu-list vm-uuid=e71afda4-53f4-3a1b-6c92-a364a7f619c2 uuid ( RO) : c1c7c43d-4c99-af76-5051-119f1c2b4188 vm-uuid ( RO): e71afda4-53f4-3a1b-6c92-a364a7f619c2 gpu-group-uuid ( RO): d53526a9-3656-5c88-890b-5b24144c3d96

  2. 使用 vgpu-destroy 删除与虚拟机关联的虚拟 GPU 对象
    复制
    已复制!
                

    [root@xenserver ~]# xe vgpu-destroy uuid=c1c7c43d-4c99-af76-5051-119f1c2b4188 [root@xenserver ~]#

6.1.2. 删除 vSphere 虚拟机的 vGPU 配置

要从虚拟机中删除 vSphere vGPU 配置

  1. 在 vCenter Web UI 中右键单击虚拟机后,选择编辑设置
  2. 选择虚拟硬件选项卡。
  3. 将鼠标悬停在显示 NVIDIA GRID vGPUPCI 设备条目上,然后点击 (X) 图标以标记要删除的设备。
  4. 点击确定以删除设备并更新虚拟机设置。

6.2. 修改 GPU 分配策略

XenServer 和 VMware vSphere 都支持用于启用 vGPU 的虚拟机的广度优先深度优先 GPU 分配策略。

广度优先
广度优先分配策略尝试最大程度地减少每个物理 GPU 上运行的 vGPU 数量。新创建的 vGPU 将放置在可以支持新 vGPU 并且在其上已驻留的 vGPU 数量最少的物理 GPU 上。此策略通常会带来更高的性能,因为它试图最大程度地减少物理 GPU 的共享,但它可能会人为地限制可以运行的 vGPU 总数。
深度优先
深度优先分配策略尝试最大程度地增加每个物理 GPU 上运行的 vGPU 数量。新创建的 vGPU 将放置在可以支持新 vGPU 并且在其上已驻留的 vGPU 数量最多的物理 GPU 上。此策略通常会导致更高的 vGPU 密度,尤其是在运行不同类型的 vGPU 时,但可能会导致较低的性能,因为它试图最大程度地增加物理 GPU 的共享。

每个虚拟机管理程序默认使用不同的 GPU 分配策略。

  • XenServer 使用深度优先分配策略。
  • VMware vSphere ESXi 使用广度优先分配策略。

如果默认 GPU 分配策略不符合您对性能或 vGPU 密度的要求,您可以更改它。

6.2.1. 在 XenServer 上修改 GPU 分配策略

您可以使用 XenCenter 或 xe 命令在 XenServer 上修改 GPU 分配策略。

6.2.1.1. 使用 xe 修改 GPU 分配策略

GPU 组的分配策略存储在 gpu-group 对象的 allocation-algorithm 参数中。

要更改 GPU 组的分配策略,请使用 gpu-group-param-set

复制
已复制!
            

[root@xenserver ~]# xe gpu-group-param-get uuid=be825ba2-01d7-8d51-9780-f82cfaa64924 param-name=allocation-algorithmdepth-first [root@xenserver ~]# xe gpu-group-param-set uuid=be825ba2-01d7-8d51-9780-f82cfaa64924 allocation-algorithm=breadth-first [root@xenserver ~]#

6.2.1.2. 使用 XenCenter 修改 GPU 分配策略 GPU

您可以从 XenCenter 中的GPU选项卡修改 GPU 分配策略。

图 19. 在 XenCenter 中修改 GPU 放置策略

controlling-gpu-allocation-policy-citrix-xenserver-xencenter-screen.png

6.2.2. 在 VMware vSphere 上修改 GPU 分配策略

在使用 vSphere Web Client 更改分配方案之前,请确保 ESXi 主机正在运行,并且主机上的所有虚拟机都已关闭。

  1. 使用 vSphere Web Client 登录到 vCenter Server。
  2. 在导航树中,选择您的 ESXi 主机,然后单击配置选项卡。
  3. 从菜单中,选择图形,然后单击主机图形选项卡。
  4. 主机图形选项卡上,单击编辑

    图 20. 启用 vGPU 的虚拟机的广度优先分配方案设置

    configure-host-graphics-tab-shared-mode-vmware-vsphere.png

  5. 在打开的“编辑主机图形设置”对话框中,选择这些选项并点击确定
    1. 如果尚未选择,请选择共享直通
    2. 选择将虚拟机分组到 GPU 直至满

    图 21. vGPU 的主机图形设置

    shared-to-shared-direct-mode-depth-first-vmware-vsphere.png

    在您点击“确定”后,默认图形类型将更改为“共享直通”,并且启用 vGPU 的虚拟机的分配方案为广度优先。

    图 22. 启用 vGPU 的虚拟机的深度优先分配方案设置

    configure-host-graphics-tab-shared-direct-mode-depth-first-vmware-vsphere.png

  6. 重启 ESXi 主机或主机上的 Xorg 服务。

另请参阅 VMware vSphere 文档中的以下主题:

6.3. 迁移配置了 vGPU 的虚拟机

在某些虚拟机管理程序上,NVIDIA vGPU 软件支持迁移配置了 vGPU 的虚拟机。
在迁移配置了 vGPU 的虚拟机之前,请确保满足以下先决条件

  • 虚拟机配置了 vGPU。
  • 虚拟机正在运行。
  • 虚拟机在启动时获得了合适的 vGPU 许可证。
  • 目标主机具有与 vGPU 当前所在的 GPU 类型相同的物理 GPU。
  • 源主机和目标主机上的 ECC 内存配置(启用或禁用)必须相同。
  • 源主机和目标主机上的 GPU 拓扑(包括 NVLink 宽度)必须相同。
注意

对于启用以下任何 NVIDIA CUDA 工具包功能的虚拟机,vGPU 迁移将被禁用

  • 统一内存
  • 调试器
  • 分析器


如何迁移配置了 vGPU 的虚拟机取决于您正在使用的虚拟机管理程序。

迁移后,vGPU 的 vGPU 类型保持不变。

迁移所需的时间取决于 vGPU 拥有的帧缓冲区大小。具有大量帧缓冲区的 vGPU 的迁移速度比具有少量帧缓冲区的 vGPU 的迁移速度慢。

6.3.1. 在 XenServer 上迁移配置了 vGPU 的虚拟机

NVIDIA vGPU 软件支持 XenMotion 用于配置了 vGPU 的虚拟机。XenMotion 使您能够将正在运行的虚拟机从一台物理主机迁移到另一台主机,而几乎不会中断或停机。对于配置了 vGPU 的虚拟机,vGPU 将随虚拟机迁移到另一台主机上的 NVIDIA GPU。两台主机上的 NVIDIA GPU 必须是同一类型。

有关哪些 XenServer 版本、NVIDIA GPU 和客户机操作系统版本支持带有 vGPU 的 XenMotion 的详细信息,请参阅适用于 XenServer 的虚拟 GPU 软件发行说明

为了获得最佳性能,物理主机应配置为使用以下各项

  • 共享存储,例如 NFS、iSCSI 或光纤通道

    如果未使用共享存储,则迁移可能需要很长时间,因为 vDISK 也必须迁移。

  • 10 GB 网络。
  1. 在 Citrix XenCenter 中,右键单击虚拟机,然后从打开的菜单中选择迁移
  2. 从可用主机列表中,选择您要将虚拟机迁移到的目标主机。目标主机必须具有与 vGPU 当前所在的 GPU 类型相同的物理 GPU。此外,物理 GPU 必须能够托管 vGPU。如果这些要求未满足,则不会列出任何可用主机。

6.3.2. 自 17.2 起:在带有 KVM 虚拟机管理程序的 Linux 上迁移配置了 vGPU 的虚拟机

NVIDIA vGPU 软件支持为配置了 vGPU 的虚拟机进行 vGPU 迁移。vGPU 迁移使您能够将正在运行的虚拟机从一台物理主机迁移到另一台主机,而几乎不会中断或停机。对于配置了 vGPU 的虚拟机,vGPU 会随虚拟机一起迁移到另一台主机上的 NVIDIA GPU。两台主机上的 NVIDIA GPU 必须是相同类型的。

NVIDIA vGPU 软件支持以下带有 KVM 虚拟机监控程序的 Linux:带有 KVM 的 Red Hat Enterprise Linux 和 Ubuntu。有关哪些带有 KVM 虚拟机监控程序的 Linux 版本、NVIDIA GPU 和客户机操作系统版本支持 vGPU 迁移的详细信息,请参阅以下文档

在要迁移的虚拟机正在运行的带有 KVM 虚拟机监控程序的 Linux 主机上的 Linux 命令 shell 中执行此任务。

在 Linux 与 KVM 虚拟机监控程序上迁移配置了 vGPU 的虚拟机之前,请确保满足迁移配置了 vGPU 的虚拟机中列出的所有受支持虚拟机监控程序的先决条件。

  1. 将虚拟机的最大停机时间设置为大于完成迁移所需的时间长度。

    如果虚拟机负载过重,则可能无法在默认最大停机时间内完成迁移。为确保虚拟机迁移完成,请确保最大停机时间超过完成迁移所需的时间。

    复制
    已复制!
                

    # virsh migrate-setmaxdowntime --domain vm-name --downtime length

    vm-name
    要在本地主机上迁移的虚拟机的名称。
    length
    虚拟机的最大停机时间,以毫秒为单位。

    此示例将本地主机上名为 guestvm 的虚拟机的最大停机时间设置为 10 秒(10,000 毫秒)。

    复制
    已复制!
                

    # virsh migrate-setmaxdowntime --domain guestvm --downtime 10000

  2. 运行以下 virsh migrate 命令
    复制
    已复制!
                

    # virsh migrate --live vm-name destination-url --verbose

    vm-name
    要在本地主机上迁移的虚拟机的名称。
    destination-url
    要将虚拟机迁移到的远程主机的连接 URL。例如,要使用 SSH 隧道将虚拟机迁移到 IPv4 地址为 192.0.2.12 的远程主机的系统连接,请将destination-url指定为 qemu+ssh://root@192.0.2.12/system

    此示例使用 SSH 隧道将本地主机上名为 guestvm 的虚拟机迁移到 IPv4 地址为 192.0.2.12 的远程主机的系统连接。

    复制
    已复制!
                

    # virsh migrate --live guestvm qemu+ssh://root@192.0.2.12/system --verbose

有关更多信息,请参阅 Red Hat Enterprise Linux 9 产品文档中的迁移虚拟机

6.3.3. 自 17.2 版本起:在 Linux 与 KVM 虚拟机监控程序上挂起和恢复配置了 vGPU 的虚拟机

NVIDIA vGPU 软件支持为配置了 vGPU 的虚拟机进行挂起和恢复。

NVIDIA vGPU 软件支持以下带有 KVM 虚拟机监控程序的 Linux:带有 KVM 的 Red Hat Enterprise Linux 和 Ubuntu。有关哪些带有 KVM 虚拟机监控程序的 Linux 版本、NVIDIA GPU 和客户机操作系统版本支持挂起和恢复的详细信息,请参阅以下文档

在要挂起的虚拟机正在运行或要恢复的虚拟机将要运行的 Linux 与 KVM 虚拟机监控程序主机上的 Linux 命令 shell 中执行此任务。

  • 要挂起虚拟机,请使用 virsh save 命令将虚拟机的状态保存到文件中。
    复制
    已复制!
                

    # virsh save vm-name vm-state-file

    vm-name
    要在本地主机上挂起的虚拟机的名称。
    vm-state-file
    要将虚拟机状态保存到的文件的名称。

    此示例通过将其状态保存到文件 guestvm-state.save,来挂起本地主机上名为 guestvm 的虚拟机。

    复制
    已复制!
                

    # virsh save guestvm guestvm-state.save

  • 要恢复虚拟机,请使用 virsh restore 命令从先前保存虚拟机状态的文件中恢复虚拟机。
    复制
    已复制!
                

    # virsh restore vm-state-file

    vm-state-file
    先前保存虚拟机状态的文件的名称。

    此示例通过从文件 guestvm-state.save 恢复其状态,来恢复本地主机上名为 guestvm 的虚拟机。

    复制
    已复制!
                

    # virsh restore guestvm-state.save

6.3.4. 在 VMware vSphere 上迁移配置了 vGPU 的虚拟机

NVIDIA vGPU 软件支持为配置了 vGPU 的虚拟机进行 VMware vMotion。VMware vMotion 使您能够将正在运行的虚拟机从一台物理主机迁移到另一台主机,而几乎不会中断或停机。对于配置了 vGPU 的虚拟机,vGPU 会随虚拟机一起迁移到另一台主机上的 NVIDIA GPU。两台主机上的 NVIDIA GPU 必须是相同类型的。

有关哪些 VMware vSphere 版本、NVIDIA GPU 和客户机操作系统版本支持挂起和恢复的详细信息,请参阅Virtual GPU Software for VMware vSphere Release Notes

通过使用“迁移”向导在 VMware vSphere Web Client 中执行此任务。
在 VMware vSphere 上迁移配置了 vGPU 的虚拟机之前,请确保满足以下先决条件

  1. 右键单击虚拟机,然后从打开的菜单中选择迁移
  2. 对于迁移类型,选择仅更改计算资源,然后单击下一步。如果您选择同时更改计算资源和存储,则迁移所需的时间会增加。
  3. 选择目标主机,然后单击下一步。目标主机必须具有与 vGPU 当前所在的 GPU 相同类型的物理 GPU。此外,物理 GPU 必须能够托管 vGPU。如果未满足这些要求,则不会列出任何可用主机。
  4. 选择目标网络,然后单击下一步
  5. 选择迁移优先级,然后单击下一步
  6. 查看您的选择,然后单击完成

有关更多信息,请参阅 VMware 文档中的以下主题

如果未配置 NVIDIA vGPU 迁移,则任何迁移带有 NVIDIA vGPU 的虚拟机的尝试都会失败,并显示包含以下错误消息的窗口

复制
已复制!
            

Compatibility Issue/Host Migration was temporarily disabled due to another migration activity. vGPU hot migration is not enabled.

窗口显示如下

vgpu-hot-migration-not-enabled.jpg

如果您看到此错误,请按照为 VMware vSphere 配置带有 vGPU 的 VMware vMotion中所述配置 NVIDIA vGPU 迁移。

如果您的 VMware vSpehere ESXi 版本不支持为配置了 NVIDIA vGPU 的虚拟机进行 vMotion,则任何迁移带有 NVIDIA vGPU 的虚拟机的尝试都会失败,并显示包含以下错误消息的窗口

复制
已复制!
            

Compatibility Issues ... A required migration feature is not supported on the "Source" host 'host-name'. A warning or error occurred when migrating the virtual machine. Virtual machine relocation, or power on after relocation or cloning can fail if vGPU resources are not available on the destination host.

窗口显示如下

vgpu-migration-compatibility-issues.png

有关哪些 VMware vSphere 版本、NVIDIA GPU 和客户机操作系统版本支持挂起和恢复的详细信息,请参阅Virtual GPU Software for VMware vSphere Release Notes

6.3.5. 在 VMware vSphere 上挂起和恢复配置了 vGPU 的虚拟机

NVIDIA vGPU 软件支持为配置了 vGPU 的虚拟机进行挂起和恢复。

有关哪些 VMware vSphere 版本、NVIDIA GPU 和客户机操作系统版本支持挂起和恢复的详细信息,请参阅Virtual GPU Software for VMware vSphere Release Notes

在 VMware vSphere Web Client 中执行此任务。

  • 要挂起虚拟机,请右键单击要挂起的虚拟机,然后从弹出的上下文菜单中选择电源 > 挂起
  • 要恢复虚拟机,请右键单击要恢复的虚拟机,然后从弹出的上下文菜单中选择电源 > 开启电源

6.4. 为 vGPU 启用统一内存

默认情况下,统一内存处于禁用状态。如果使用统一内存,您必须通过设置 vGPU 插件参数为每个需要它的 vGPU 单独启用统一内存。如何为 vGPU 启用统一内存取决于您使用的虚拟机监控程序。

6.4.1. 在 XenServer 上为 vGPU 启用统一内存

在 XenServer 上,通过设置 enable_uvm vGPU 插件参数来启用统一内存。

使用 xe 命令为每个需要统一内存的 vGPU 执行此任务。

将 vGPU 的 enable_uvm vGPU 插件参数设置为 1,如在 XenServer 上设置 vGPU 插件参数中所述。

此示例为 UUID 为 d15083f8-5c59-7474-d0cb-fbc3f7284f1b 的 vGPU 启用统一内存。

复制
已复制!
            

[root@xenserver ~] xe vgpu-param-set uuid=d15083f8-5c59-7474-d0cb-fbc3f7284f1b extra_args='enable_uvm=1'

6.4.2. 在 Red Hat Enterprise Linux KVM 上为 vGPU 启用统一内存

在 Red Hat Enterprise Linux KVM 上,通过设置 enable_uvm vGPU 插件参数来启用统一内存。

确保已创建代表 vGPU 的 mdev 设备文件,如在 Linux 与 KVM 虚拟机监控程序上创建 NVIDIA vGPU中所述。
为每个需要统一内存的 vGPU 执行此任务。
将代表 vGPU 的 mdev 设备文件的 enable_uvm vGPU 插件参数设置为 1,如在 Linux 与 KVM 虚拟机监控程序上设置 vGPU 插件参数中所述。

6.4.3. 在 VMware vSphere 上为 vGPU 启用统一内存

在 VMware vSphere 上,通过在高级虚拟机属性中设置 pciPassthruvgpu-id.cfg.enable_uvm 配置参数来启用统一内存。

确保分配了 vGPU 的 VM 已关闭电源。
在 vSphere Client 中为每个需要统一内存的 vGPU 执行此任务。

在高级虚拟机属性中,将 vGPU 的 pciPassthruvgpu-id.cfg.enable_uvm vGPU 插件参数设置为 1,如在 VMware vSphere 上设置 vGPU 插件参数中所述。

vgpu-id
标识分配给虚拟机的 vGPU 的正整数。对于分配给虚拟机的第一个 vGPU,vgpu-id0。例如,如果为虚拟机分配了两个 vGPU,并且您要为这两个 vGPU 启用统一内存,请将 pciPassthru0.cfg.enable_uvmpciPassthru1.cfg.enable_uvm 设置为 1。

6.5. 为 NVIDIA vGPU 启用 NVIDIA CUDA 工具包开发工具

默认情况下,NVIDIA CUDA 工具包开发工具在 NVIDIA vGPU 上处于禁用状态。如果使用,您必须通过设置 vGPU 插件参数为每个需要它们的虚拟机单独启用 NVIDIA CUDA 工具包开发工具。必须设置一个参数以启用 NVIDIA CUDA 工具包调试器,并且必须设置另一个参数以启用 NVIDIA CUDA 工具包分析器。

6.5.1. 为 NVIDIA vGPU 启用 NVIDIA CUDA 工具包调试器

默认情况下,NVIDIA CUDA 工具包调试器处于禁用状态。如果使用,您必须通过设置 vGPU 插件参数为每个需要它们的 vGPU 虚拟机启用它们。为 vGPU 虚拟机设置参数以启用 NVIDIA CUDA 工具包调试器的方式取决于您使用的虚拟机监控程序。

您可以为同一 GPU 上配置了 vGPU 的任意数量的虚拟机启用 NVIDIA CUDA 工具包调试器。当为虚拟机启用 NVIDIA CUDA 工具包调试器时,无法迁移该虚拟机。

为您要启用 NVIDIA CUDA 工具包调试器的每个虚拟机执行此任务。

在 XenServer 上为 NVIDIA vGPU 启用 NVIDIA CUDA 工具包调试器

将分配给虚拟机的 vGPU 的 enable_debugging vGPU 插件参数设置为 1,如在 XenServer 上设置 vGPU 插件参数中所述。

此示例为 UUID 为 d15083f8-5c59-7474-d0cb-fbc3f7284f1b 的 vGPU 启用 NVIDIA CUDA 工具包调试器。

复制
已复制!
            

[root@xenserver ~] xe vgpu-param-set uuid=d15083f8-5c59-7474-d0cb-fbc3f7284f1b extra_args='enable_debugging=1'

在客户机虚拟机重启后以及虚拟机监控程序主机重启后,此参数的设置将保留。

在 Red Hat Enterprise Linux KVM 上为 NVIDIA vGPU 启用 NVIDIA CUDA 工具包调试器

将分配给虚拟机的 vGPU 的 mdev 设备文件的 enable_debugging vGPU 插件参数设置为 1,如在 Linux 与 KVM 虚拟机监控程序上设置 vGPU 插件参数中所述。

在客户机虚拟机重启后,此参数的设置将保留。但是,在虚拟机监控程序主机重启后,此参数将重置为其默认值。

在 VMware vSphere 上为 NVIDIA vGPU 启用 NVIDIA CUDA 工具包调试器

确保要为其启用 NVIDIA CUDA 工具包调试器的虚拟机已关闭电源。

在高级虚拟机属性中,将分配给虚拟机的 vGPU 的 pciPassthruvgpu-id.cfg.enable_debugging vGPU 插件参数设置为 1,如在 VMware vSphere 上设置 vGPU 插件参数中所述。

vgpu-id
标识分配给虚拟机的 vGPU 的正整数。对于分配给虚拟机的第一个 vGPU,vgpu-id0。例如,如果为虚拟机分配了两个 vGPU,并且您要为这两个 vGPU 启用调试器,请将 pciPassthru0.cfg.enable_debuggingpciPassthru1.cfg.enable_debugging 设置为 1。

在客户机虚拟机重启后,此参数的设置将保留。但是,在虚拟机监控程序主机重启后,此参数将重置为其默认值。

6.5.2. 为 NVIDIA vGPU 启用 NVIDIA CUDA 工具包分析器

默认情况下,仅启用 GPU 工作负载跟踪。如果您想使用 NVIDIA vGPU 支持的所有 NVIDIA CUDA 工具包分析器功能,则必须为每个需要它们的 vGPU 虚拟机启用它们。

注意

为虚拟机启用分析功能会使虚拟机能够访问 GPU 的全局性能计数器,其中可能包括在同一 GPU 上执行的其他虚拟机的活动。为虚拟机启用分析功能还允许虚拟机锁定 GPU 上的时钟,这会影响在同一 GPU 上执行的所有其他虚拟机。


6.5.2.1. 支持的 NVIDIA CUDA 工具包分析器功能

您可以为 vGPU 虚拟机启用以下 NVIDIA CUDA 工具包分析器功能

  • NVIDIA Nsight™ Compute
  • NVIDIA Nsight Systems
  • CUDA 分析工具接口 (CUPTI)

6.5.2.2. 为启用了 NVIDIA CUDA 工具包分析器的 vGPU 虚拟机进行时钟管理

时钟不会为周期性采样用例(例如 NVIDIA Nsight Systems 分析)锁定。

时钟会为多遍分析锁定,例如

  • NVIDIA Nsight Compute 内核分析
  • CUPTI 范围分析

分析开始时会自动锁定时钟,分析结束时会自动解锁时钟。

6.5.2.3. 将 NVIDIA CUDA 工具包分析器与 NVIDIA vGPU 一起使用的限制

为 NVIDIA vGPU 启用 NVIDIA CUDA 工具包分析器时,以下限制适用

  • NVIDIA CUDA 工具包分析器一次只能在一个虚拟机上使用。
  • 无法同时分析多个 CUDA 上下文。
  • 分析数据是为每个上下文单独收集的。
  • 无法迁移已启用 NVIDIA CUDA 工具包分析器的虚拟机。

由于 NVIDIA CUDA 工具包分析器一次只能在一个虚拟机上使用,因此您应该仅为一个分配了 GPU 上 vGPU 的虚拟机启用它们。但是,NVIDIA vGPU 软件无法强制执行此要求。如果在分配给 GPU 上 vGPU 的多个虚拟机上启用了 NVIDIA CUDA 工具包分析器,则仅为启动分析器的第一个虚拟机收集分析数据。

6.5.2.4. 为 vGPU 虚拟机启用 NVIDIA CUDA 工具包分析器

您可以通过设置 vGPU 插件参数来为 vGPU 虚拟机启用 NVIDIA CUDA 工具包分析器。为 vGPU 虚拟机设置参数以启用 NVIDIA CUDA 工具包分析器的方式取决于您使用的虚拟机监控程序。

为您要启用 NVIDIA CUDA 工具包分析器的虚拟机执行此任务。

在 XenServer 上为 NVIDIA vGPU 启用 NVIDIA CUDA 工具包分析器

将分配给虚拟机的 vGPU 的 enable_profiling vGPU 插件参数设置为 1,如在 XenServer 上设置 vGPU 插件参数中所述。

此示例为 UUID 为 d15083f8-5c59-7474-d0cb-fbc3f7284f1b 的 vGPU 启用 NVIDIA CUDA 工具包分析器。

复制
已复制!
            

[root@xenserver ~] xe vgpu-param-set uuid=d15083f8-5c59-7474-d0cb-fbc3f7284f1b extra_args='enable_profiling=1'

在客户机虚拟机重启后以及虚拟机监控程序主机重启后,此参数的设置将保留。

在 Red Hat Enterprise Linux KVM 上为 NVIDIA vGPU 启用 NVIDIA CUDA 工具包分析器

将分配给虚拟机的 vGPU 的 mdev 设备文件的 enable_profiling vGPU 插件参数设置为 1,如在 Linux 与 KVM 虚拟机监控程序上设置 vGPU 插件参数中所述。

在客户机虚拟机重启后,此参数的设置将保留。但是,在虚拟机监控程序主机重启后,此参数将重置为其默认值。

在 VMware vSphere 上为 NVIDIA vGPU 启用 NVIDIA CUDA 工具包分析器

确保要为其启用 NVIDIA CUDA 工具包分析器的虚拟机已关闭电源。

在高级虚拟机属性中,将分配给虚拟机的 vGPU 的 pciPassthruvgpu-id.cfg.enable_profiling vGPU 插件参数设置为 1,如在 VMware vSphere 上设置 vGPU 插件参数中所述。

vgpu-id
标识分配给虚拟机的 vGPU 的正整数。对于分配给虚拟机的第一个 vGPU,vgpu-id0。例如,如果为虚拟机分配了两个 vGPU,并且您要为第二个 vGPU 启用分析器,请将 pciPassthru1.cfg.enable_profiling 设置为 1。

在客户机虚拟机重启后,此参数的设置将保留。但是,在虚拟机监控程序主机重启后,此参数将重置为其默认值。

6.6. 为 vGPU 启用 TCC 驱动程序模型

Tesla 计算集群 (TCC) 驱动程序模型支持 CUDA C/C++ 应用程序。此模型针对计算应用程序进行了优化,并缩短了 Windows 上的内核启动时间。默认情况下,分配给 Windows 虚拟机的 vGPU 的驱动程序模型是 Windows 显示驱动程序模型 (WDDM)。如果您想使用 TCC 驱动程序模型,则必须显式启用它。

此任务需要管理员权限。
从分配了 vGPU 的虚拟机执行此任务。

注意

只有 Q 系列 vGPU 支持 TCC 驱动程序模型。


  1. 登录到分配了 vGPU 的虚拟机。
  2. 将 vGPU 的驱动程序模型设置为 TCC 驱动程序模型。
    复制
    已复制!
                

    nvidia-smi -g vgpu-id -dm 1

    vgpu-id
    要为其启用 TCC 驱动程序模型的 vGPU 的 ID。如果省略 -g,则为分配给虚拟机的全部 vGPU 启用 TCC 驱动程序模型。
  3. 重启虚拟机。

NVIDIA vGPU 软件使您能够从虚拟机监控程序和各个客户机虚拟机内部监控物理 GPU 和虚拟 GPU 的性能。您可以使用多种工具来监控 GPU 性能

  • 从任何受支持的虚拟机监控程序以及运行 64 位版本的 Windows 或 Linux 的客户机虚拟机,您可以使用 NVIDIA 系统管理界面 nvidia-smi。
  • 从 XenServer,您可以使用 Citrix XenCenter。
  • 从 Windows 客户机虚拟机,您可以使用以下工具
    • Windows 性能监视器
    • Windows Management Instrumentation (WMI)

7.1. NVIDIA 系统管理界面 nvidia-smi

NVIDIA 系统管理界面 nvidia-smi 是一种命令行工具,用于报告 NVIDIA GPU 的管理信息。

nvidia-smi 工具包含在以下软件包中:

  • 适用于每个受支持虚拟机监控程序的 NVIDIA Virtual GPU Manager 软件包
  • 适用于每个受支持客户机操作系统的 NVIDIA 驱动程序软件包

报告的管理信息的范围取决于您从何处运行 nvidia-smi:

  • 从虚拟机监控程序命令 shell(例如 XenServer dom0 shell 或 VMware ESXi 主机 shell),nvidia-smi 报告系统中存在的 NVIDIA 物理 GPU 和虚拟 GPU 的管理信息。

    注意

    从虚拟机监控程序命令 shell 运行时,nvidia-smi 不会列出当前为 GPU 直通分配的任何 GPU。

  • 从客户机虚拟机,nvidia-smi 检索分配给虚拟机的 vGPU 或直通 GPU 的使用统计信息。

    在 Windows 客户机虚拟机中,nvidia-smi 安装在默认可执行路径中的文件夹中。因此,您可以通过运行 nvidia-smi.exe 命令从任何文件夹的命令提示符运行 nvidia-smi。

7.2. 从虚拟机监控程序监控 GPU 性能

您可以使用 NVIDIA 系统管理界面 nvidia-smi 命令行实用程序从任何受支持的虚拟机监控程序监控 GPU 性能。在 XenServer 平台上,您还可以使用 Citrix XenCenter 监控 GPU 性能。

注意

不能从虚拟机监控程序监控用于 GPU 直通的 GPU 的性能。您只能从使用直通 GPU 的客户机虚拟机内部监控直通 GPU 的性能。


7.2.1. 使用 nvidia-smi 从虚拟机监控程序监控 GPU 性能

您可以通过从虚拟机监控程序命令 shell(例如 XenServer dom0 shell 或 VMware ESXi 主机 shell)运行 nvidia-smi,来获取系统中存在的 NVIDIA 物理 GPU 和虚拟 GPU 的管理信息。

在没有子命令的情况下,nvidia-smi 提供物理 GPU 的管理信息。要更详细地检查虚拟 GPU,请将 nvidia-smi 与 vgpu 子命令一起使用。

从命令行,您可以获取有关 nvidia-smi 工具和 vgpu 子命令的帮助信息。

帮助信息 命令
nvidia-smi 工具支持的子命令列表。请注意,并非所有子命令都适用于支持 NVIDIA vGPU 软件的 GPU。 nvidia-smi -h
vgpu 子命令支持的所有选项的列表。 nvidia-smi vgpu –h


7.2.1.1. 获取系统中所有物理 GPU 的摘要

要获取系统中所有物理 GPU 的摘要,以及 PCI 总线 ID、电源状态、温度、当前内存使用量等信息,请在不使用其他参数的情况下运行 nvidia-smi。

每个 vGPU 实例都在“计算进程”部分中报告,以及其物理 GPU 索引和分配给它的帧缓冲区内存量。

在以下示例中,系统中有三个 vGPU 正在运行:每个物理 GPU 0、1 和 2 上各运行一个 vGPU。

复制
已复制!
            

[root@vgpu ~]# nvidia-smi Fri Jan 17 09:26:18 2025 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 550.144.02 Driver Version: 550.144.02 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla M60 On | 0000:83:00.0 Off | Off | | N/A 31C P8 23W / 150W | 1889MiB / 8191MiB | 7% Default | +-------------------------------+----------------------+----------------------+ | 1 Tesla M60 On | 0000:84:00.0 Off | Off | | N/A 26C P8 23W / 150W | 926MiB / 8191MiB | 9% Default | +-------------------------------+----------------------+----------------------+ | 2 Tesla M10 On | 0000:8A:00.0 Off | N/A | | N/A 23C P8 10W / 53W | 1882MiB / 8191MiB | 12% Default | +-------------------------------+----------------------+----------------------+ | 3 Tesla M10 On | 0000:8B:00.0 Off | N/A | | N/A 26C P8 10W / 53W | 10MiB / 8191MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 4 Tesla M10 On | 0000:8C:00.0 Off | N/A | | N/A 34C P8 10W / 53W | 10MiB / 8191MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 5 Tesla M10 On | 0000:8D:00.0 Off | N/A | | N/A 32C P8 10W / 53W | 10MiB / 8191MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 11924 C+G /usr/lib64/xen/bin/vgpu 1856MiB | | 1 11903 C+G /usr/lib64/xen/bin/vgpu 896MiB | | 2 11908 C+G /usr/lib64/xen/bin/vgpu 1856MiB | +-----------------------------------------------------------------------------+ [root@vgpu ~]#

7.2.1.2. 获取系统中所有 vGPU 的摘要

要获取当前在系统中每个物理 GPU 上运行的 vGPU 的摘要,请在不使用其他参数的情况下运行 nvidia-smi vgpu。

复制
已复制!
            

[root@vgpu ~]# nvidia-smi vgpu Fri Jan 17 09:27:06 2025 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 550.144.02 Driver Version: 550.144.02 | |-------------------------------+--------------------------------+------------+ | GPU Name | Bus-Id | GPU-Util | | vGPU ID Name | VM ID VM Name | vGPU-Util | |===============================+================================+============| | 0 Tesla M60 | 0000:83:00.0 | 7% | | 11924 GRID M60-2Q | 3 Win7-64 GRID test 2 | 6% | +-------------------------------+--------------------------------+------------+ | 1 Tesla M60 | 0000:84:00.0 | 9% | | 11903 GRID M60-1B | 1 Win8.1-64 GRID test 3 | 8% | +-------------------------------+--------------------------------+------------+ | 2 Tesla M10 | 0000:8A:00.0 | 12% | | 11908 GRID M10-2Q | 2 Win7-64 GRID test 1 | 10% | +-------------------------------+--------------------------------+------------+ | 3 Tesla M10 | 0000:8B:00.0 | 0% | +-------------------------------+--------------------------------+------------+ | 4 Tesla M10 | 0000:8C:00.0 | 0% | +-------------------------------+--------------------------------+------------+ | 5 Tesla M10 | 0000:8D:00.0 | 0% | +-------------------------------+--------------------------------+------------+ [root@vgpu ~]#

7.2.1.3. 获取物理 GPU 详细信息

要获取有关平台上所有物理 GPU 的详细信息,请运行带有 –q 或 --query 选项的 nvidia-smi。

复制
已复制!
            

[root@vgpu ~]# nvidia-smi -q ==============NVSMI LOG============== Timestamp : Tue Nov 22 10:33:26 2022 Driver Version : 525.60.06 CUDA Version : Not Found vGPU Driver Capability Heterogenous Multi-vGPU : Supported Attached GPUs : 3 GPU 00000000:C1:00.0 Product Name : Tesla T4 Product Brand : NVIDIA Product Architecture : Turing Display Mode : Enabled Display Active : Disabled Persistence Mode : Enabled vGPU Device Capability Fractional Multi-vGPU : Supported Heterogeneous Time-Slice Profiles : Supported Heterogeneous Time-Slice Sizes : Not Supported MIG Mode Current : N/A Pending : N/A Accounting Mode : Enabled Accounting Mode Buffer Size : 4000 Driver Model Current : N/A Pending : N/A Serial Number : 1321120031291 GPU UUID : GPU-9084c1b2-624f-2267-4b66-345583fbd981 Minor Number : 1 VBIOS Version : 90.04.38.00.03 MultiGPU Board : No Board ID : 0xc100 Board Part Number : 900-2G183-0000-001 GPU Part Number : 1EB8-895-A1 Module ID : 0 Inforom Version Image Version : G183.0200.00.02 OEM Object : 1.1 ECC Object : 5.0 Power Management Object : N/A GPU Operation Mode Current : N/A Pending : N/A GSP Firmware Version : N/A GPU Virtualization Mode Virtualization Mode : Host VGPU Host VGPU Mode : Non SR-IOV IBMNPU Relaxed Ordering Mode : N/A PCI Bus : 0xC1 Device : 0x00 Domain : 0x0000 Device Id : 0x1EB810DE Bus Id : 00000000:C1:00.0 Sub System Id : 0x12A210DE GPU Link Info PCIe Generation Max : 3 Current : 1 Device Current : 1 Device Max : 3 Host Max : N/A Link Width Max : 16x Current : 16x Bridge Chip Type : N/A Firmware : N/A Replays Since Reset : 0 Replay Number Rollovers : 0 Tx Throughput : 0 KB/s Rx Throughput : 0 KB/s Atomic Caps Inbound : N/A Atomic Caps Outbound : N/A Fan Speed : N/A Performance State : P8 Clocks Throttle Reasons Idle : Active Applications Clocks Setting : Not Active SW Power Cap : Not Active HW Slowdown : Not Active HW Thermal Slowdown : Not Active HW Power Brake Slowdown : Not Active Sync Boost : Not Active SW Thermal Slowdown : Not Active Display Clock Setting : Not Active FB Memory Usage Total : 15360 MiB Reserved : 0 MiB Used : 3859 MiB Free : 11500 MiB BAR1 Memory Usage Total : 256 MiB Used : 17 MiB Free : 239 MiB Compute Mode : Default Utilization Gpu : 0 % Memory : 0 % Encoder : 0 % Decoder : 0 % Encoder Stats Active Sessions : 0 Average FPS : 0 Average Latency : 0 FBC Stats Active Sessions : 0 Average FPS : 0 Average Latency : 0 Ecc Mode Current : Enabled Pending : Enabled ECC Errors Volatile SRAM Correctable : 0 SRAM Uncorrectable : 0 DRAM Correctable : 0 DRAM Uncorrectable : 0 Aggregate SRAM Correctable : 0 SRAM Uncorrectable : 0 DRAM Correctable : 0 DRAM Uncorrectable : 0 Retired Pages Single Bit ECC : 0 Double Bit ECC : 0 Pending Page Blacklist : No Remapped Rows : N/A Temperature GPU Current Temp : 35 C GPU Shutdown Temp : 96 C GPU Slowdown Temp : 93 C GPU Max Operating Temp : 85 C GPU Target Temperature : N/A Memory Current Temp : N/A Memory Max Operating Temp : N/A Power Readings Power Management : Supported Power Draw : 16.57 W Power Limit : 70.00 W Default Power Limit : 70.00 W Enforced Power Limit : 70.00 W Min Power Limit : 60.00 W Max Power Limit : 70.00 W Clocks Graphics : 300 MHz SM : 300 MHz Memory : 405 MHz Video : 540 MHz Applications Clocks Graphics : 585 MHz Memory : 5001 MHz Default Applications Clocks Graphics : 585 MHz Memory : 5001 MHz Deferred Clocks Memory : N/A Max Clocks Graphics : 1590 MHz SM : 1590 MHz Memory : 5001 MHz Video : 1470 MHz Max Customer Boost Clocks Graphics : 1590 MHz Clock Policy Auto Boost : N/A Auto Boost Default : N/A Voltage Graphics : N/A Fabric State : N/A Status : N/A Processes GPU instance ID : N/A Compute instance ID : N/A Process ID : 2103065 Type : C+G Name : Win11SV2_View87 Used GPU Memory : 3810 MiB [root@vgpu ~]#

7.2.1.4. 获取 vGPU 详细信息

要获取有关平台上所有 vGPU 的详细信息,请运行带有 –q 或 --query 选项的 nvidia-smi vgpu。

要将检索的信息限制为平台上的 GPU 子集,请使用 –i 或 --id 选项选择一个或多个 GPU。

复制
已复制!
            

[root@vgpu ~]# nvidia-smi vgpu -q -i 1 GPU 00000000:C1:00.0 Active vGPUs : 1 vGPU ID : 3251634327 VM ID : 2103066 VM Name : Win11SV2_View87 vGPU Name : GRID T4-4Q vGPU Type : 232 vGPU UUID : afdcf724-1dd2-11b2-8534-624f22674b66 Guest Driver Version : 527.15 License Status : Licensed (Expiry: 2022-11-23 5:2:12 GMT) GPU Instance ID : N/A Accounting Mode : Disabled ECC Mode : Enabled Accounting Buffer Size : 4000 Frame Rate Limit : 60 FPS PCI Bus Id : 00000000:02:04.0 FB Memory Usage Total : 4096 MiB Used : 641 MiB Free : 3455 MiB Utilization Gpu : 0 % Memory : 0 % Encoder : 0 % Decoder : 0 % Encoder Stats Active Sessions : 0 Average FPS : 0 Average Latency : 0 FBC Stats Active Sessions : 0 Average FPS : 0 Average Latency : 0 [root@vgpu ~]#

7.2.1.5. 监控 vGPU 引擎使用率

要监控多个 vGPU 的 vGPU 引擎使用率,请运行带有 –u 或 --utilization 选项的 nvidia-smi vgpu。

对于每个 vGPU,下表中的使用率统计信息每秒报告一次。该表还显示了命令输出中报告每个统计信息的列的名称。

统计信息
3D/计算 sm
内存控制器带宽 mem
视频编码器 enc
视频解码器 dec

每个报告的百分比是 vGPU 正在使用的物理 GPU 容量的百分比。例如,使用 GPU 图形引擎容量 20% 的 vGPU 将报告 20%。

要修改报告频率,请使用 –l 或 --loop 选项。

要将监控限制为平台上的 GPU 子集,请使用 –i 或 --id 选项选择一个或多个 GPU。

复制
已复制!
            

[root@vgpu ~]# nvidia-smi vgpu -u # gpu vgpu sm mem enc dec # Idx Id % % % % 0 11924 6 3 0 0 1 11903 8 3 0 0 2 11908 10 4 0 0 3 - - - - - 4 - - - - - 5 - - - - - 0 11924 6 3 0 0 1 11903 9 3 0 0 2 11908 10 4 0 0 3 - - - - - 4 - - - - - 5 - - - - - 0 11924 6 3 0 0 1 11903 8 3 0 0 2 11908 10 4 0 0 3 - - - - - 4 - - - - - 5 - - - - - ^C[root@vgpu ~]#

7.2.1.6. 监控应用程序的 vGPU 引擎使用率

要监控多个 vGPU 的应用程序的 vGPU 引擎使用率,请运行带有 –p 选项的 nvidia-smi vgpu。

对于每个 vGPU 上的每个应用程序,下表中的使用统计信息每秒报告一次。每个应用程序都通过其进程 ID 和进程名称来标识。该表还显示了命令输出中报告每个统计信息的列的名称。

统计信息
3D/计算 sm
内存控制器带宽 mem
视频编码器 enc
视频解码器 dec

每个报告的百分比是物理 GPU 容量的百分比,该容量被运行在物理 GPU 上的 vGPU 上的应用程序使用。例如,使用 GPU 图形引擎 20% 容量的应用程序将报告 20%。

要修改报告频率,请使用 –l 或 --loop 选项。

要将监控限制为平台上的 GPU 子集,请使用 –i 或 --id 选项选择一个或多个 GPU。

复制
已复制!
            

[root@vgpu ~]# nvidia-smi vgpu -p # GPU vGPU process process sm mem enc dec # Idx Id Id name % % % % 0 38127 1528 dwm.exe 0 0 0 0 1 37408 4232 DolphinVS.exe 32 25 0 0 1 257869 4432 FurMark.exe 16 12 0 0 1 257969 4552 FurMark.exe 48 37 0 0 0 38127 1528 dwm.exe 0 0 0 0 1 37408 4232 DolphinVS.exe 16 12 0 0 1 257911 656 DolphinVS.exe 32 24 0 0 1 257969 4552 FurMark.exe 48 37 0 0 0 38127 1528 dwm.exe 0 0 0 0 1 257869 4432 FurMark.exe 38 30 0 0 1 257911 656 DolphinVS.exe 19 14 0 0 1 257969 4552 FurMark.exe 38 30 0 0 0 38127 1528 dwm.exe 0 0 0 0 1 257848 3220 Balls64.exe 16 12 0 0 1 257869 4432 FurMark.exe 16 12 0 0 1 257911 656 DolphinVS.exe 16 12 0 0 1 257969 4552 FurMark.exe 48 37 0 0 0 38127 1528 dwm.exe 0 0 0 0 1 257911 656 DolphinVS.exe 32 25 0 0 1 257969 4552 FurMark.exe 64 50 0 0 0 38127 1528 dwm.exe 0 0 0 0 1 37408 4232 DolphinVS.exe 16 12 0 0 1 257911 656 DolphinVS.exe 16 12 0 0 1 257969 4552 FurMark.exe 64 49 0 0 0 38127 1528 dwm.exe 0 0 0 0 1 37408 4232 DolphinVS.exe 16 12 0 0 1 257869 4432 FurMark.exe 16 12 0 0 1 257969 4552 FurMark.exe 64 49 0 0 [root@vgpu ~]#

7.2.1.7. 监控编码器会话

注意

编码器会话可为分配给 Windows 虚拟机的 vGPU 进行监控。分配给 Linux 虚拟机的 vGPU 不会报告编码器会话统计信息。


要监控在多个 vGPU 上运行的进程的编码器会话,请运行带有 –es 或 --encodersessions 选项的 nvidia-smi vgpu 命令。

对于每个编码器会话,以下统计信息每秒报告一次

  • GPU ID
  • vGPU ID
  • 编码器会话 ID
  • 虚拟机中创建编码器会话的进程的 PID
  • 编解码器类型,例如 H.264 或 H.265
  • 编码水平分辨率
  • 编码垂直分辨率
  • 一秒钟的尾随平均编码 FPS
  • 一秒钟的尾随平均编码延迟(以微秒为单位)

要修改报告频率,请使用 –l 或 --loop 选项。

要将监控限制为平台上的 GPU 子集,请使用 –i 或 --id 选项选择一个或多个 GPU。

复制
已复制!
            

[root@vgpu ~]# nvidia-smi vgpu -es # GPU vGPU Session Process Codec H V Average Average # Idx Id Id Id Type Res Res FPS Latency(us) 1 21211 2 2308 H.264 1920 1080 424 1977 1 21206 3 2424 H.264 1920 1080 0 0 1 22011 1 3676 H.264 1920 1080 374 1589 1 21211 2 2308 H.264 1920 1080 360 807 1 21206 3 2424 H.264 1920 1080 325 1474 1 22011 1 3676 H.264 1920 1080 313 1005 1 21211 2 2308 H.264 1920 1080 329 1732 1 21206 3 2424 H.264 1920 1080 352 1415 1 22011 1 3676 H.264 1920 1080 434 1894 1 21211 2 2308 H.264 1920 1080 362 1818 1 21206 3 2424 H.264 1920 1080 296 1072 1 22011 1 3676 H.264 1920 1080 416 1994 1 21211 2 2308 H.264 1920 1080 444 1912 1 21206 3 2424 H.264 1920 1080 330 1261 1 22011 1 3676 H.264 1920 1080 436 1644 1 21211 2 2308 H.264 1920 1080 344 1500 1 21206 3 2424 H.264 1920 1080 393 1727 1 22011 1 3676 H.264 1920 1080 364 1945 1 21211 2 2308 H.264 1920 1080 555 1653 1 21206 3 2424 H.264 1920 1080 295 925 1 22011 1 3676 H.264 1920 1080 372 1869 1 21211 2 2308 H.264 1920 1080 326 2206 1 21206 3 2424 H.264 1920 1080 318 1366 1 22011 1 3676 H.264 1920 1080 464 2015 1 21211 2 2308 H.264 1920 1080 305 1167 1 21206 3 2424 H.264 1920 1080 445 1892 1 22011 1 3676 H.264 1920 1080 361 906 1 21211 2 2308 H.264 1920 1080 353 1436 1 21206 3 2424 H.264 1920 1080 354 1798 1 22011 1 3676 H.264 1920 1080 373 1310 ^C[root@vgpu ~]#

7.2.1.8. 监控帧缓冲区捕获 (FBC) 会话

要监控在多个 vGPU 上运行的进程的 FBC 会话,请运行带有 -fs 或 --fbcsessions 选项的 nvidia-smi vgpu 命令。

对于每个 FBC 会话,以下统计信息每秒报告一次

  • GPU ID
  • vGPU ID
  • FBC 会话 ID
  • 虚拟机中创建 FBC 会话的进程的 PID
  • 与 FBC 会话关联的显示序号。
  • FBC 会话类型
  • FBC 会话标志
  • 捕获模式
  • 会话支持的最大水平分辨率
  • 会话支持的最大垂直分辨率
  • 调用者在捕获调用中请求的水平分辨率
  • 调用者在捕获调用中请求的垂直分辨率
  • 会话每秒捕获的新帧的移动平均值
  • 会话的新帧捕获延迟的移动平均值(以微秒为单位)

要修改报告频率,请使用 –l 或 --loop 选项。

要将监控限制为平台上的 GPU 子集,请使用 –i 或 --id 选项选择一个或多个 GPU。

复制
已复制!
            

[root@vgpu ~]# nvidia-smi vgpu -fs # GPU vGPU Session Process Display Session Diff. Map Class. Map Capture Max H Max V H V Average Average # Idx Id Id Id Ordinal Type State State Mode Res Res Res Res FPS Latency(us) 0 - - - - - - - - - - - - - - 1 3251634178 - - - - - - - - - - - - - 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 - - - - - - - - - - - - - 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 - - - - - - - - - - - - - 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 - - - - - - - - - - - - - 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 - - - - - - - - - - - - - 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Unknown 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Unknown 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - # GPU vGPU Session Process Display Session Diff. Map Class. Map Capture Max H Max V H V Average Average # Idx Id Id Id Ordinal Type State State Mode Res Res Res Res FPS Latency(us) 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Unknown 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Unknown 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Unknown 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Unknown 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Unknown 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Unknown 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Unknown 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 1600 900 25 39964 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 1600 900 25 39964 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - # GPU vGPU Session Process Display Session Diff. Map Class. Map Capture Max H Max V H V Average Average # Idx Id Id Id Ordinal Type State State Mode Res Res Res Res FPS Latency(us) 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 1600 900 135 7400 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 1600 900 227 4403 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 1600 900 227 4403 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - # GPU vGPU Session Process Display Session Diff. Map Class. Map Capture Max H Max V H V Average Average # Idx Id Id Id Ordinal Type State State Mode Res Res Res Res FPS Latency(us) 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 1 3251634178 1 3984 0 ToSys Disabled Disabled Blocking 4096 2160 0 0 0 0 2 - - - - - - - - - - - - - - ^C[root@vgpu ~]#

7.2.1.9. 列出支持的 vGPU 类型

要列出系统中的 GPU 支持的虚拟 GPU 类型,请运行带有 –s 或 --supported 选项的 nvidia-smi vgpu 命令。

要将检索的信息限制为平台上的 GPU 子集,请使用 –i 或 --id 选项选择一个或多个 GPU。

复制
已复制!
            

[root@vgpu ~]# nvidia-smi vgpu -s -i 0 GPU 0000:83:00.0 GRID M60-0B GRID M60-0Q GRID M60-1A GRID M60-1B GRID M60-1Q GRID M60-2A GRID M60-2Q GRID M60-4A GRID M60-4Q GRID M60-8A GRID M60-8Q [root@vgpu ~]#

要查看有关支持的 vGPU 类型的详细信息,请添加 –v 或 --verbose 选项

复制
已复制!
            

[root@vgpu ~]# nvidia-smi vgpu -s -i 0 -v | less GPU 00000000:40:00.0 vGPU Type ID : 0xc Name : GRID M60-0Q Class : Quadro GPU Instance Profile ID : N/A Max Instances : 16 Max Instances Per VM : 1 Multi vGPU Exclusive : False vGPU Exclusive Type : False vGPU Exclusive Size : False Device ID : 0x13f210de Sub System ID : 0x13f2114c FB Memory : 512 MiB Display Heads : 2 Maximum X Resolution : 2560 Maximum Y Resolution : 1600 Frame Rate Limit : 60 FPS GRID License : Quadro-Virtual-DWS,5.0;GRID-Virtual-WS,2.0;GRID-Virtual-WS-Ext,2.0 vGPU Type ID : 0xf Name : GRID M60-1Q Class : Quadro GPU Instance Profile ID : N/A Max Instances : 8 Max Instances Per VM : 1 Multi vGPU Exclusive : False vGPU Exclusive Type : False vGPU Exclusive Size : False Device ID : 0x13f210de Sub System ID : 0x13f2114d FB Memory : 1024 MiB Display Heads : 4 Maximum X Resolution : 5120 Maximum Y Resolution : 2880 Frame Rate Limit : 60 FPS GRID License : Quadro-Virtual-DWS,5.0;GRID-Virtual-WS,2.0;GRID-Virtual-WS-Ext,2.0 vGPU Type ID : 0x12 Name : GRID M60-2Q Class : Quadro GPU Instance Profile ID : N/A Max Instances : 4 Max Instances Per VM : 1 Multi vGPU Exclusive : False vGPU Exclusive Type : False vGPU Exclusive Size : False … [root@vgpu ~]#

7.2.1.10. 列出当前可以创建的 vGPU 类型

要列出当前可以在系统中的 GPU 上创建的虚拟 GPU 类型,请运行带有 –c 或 --creatable 选项的 nvidia-smi vgpu 命令。此属性是一个动态属性,它反映了 GPU 上已运行的 vGPU 的数量和类型。

  • 如果 GPU 上没有运行 vGPU,则会列出 GPU 支持的所有 vGPU 类型。
  • 如果 GPU 上正在运行一个或多个 vGPU,但 GPU 未完全加载,则仅列出已运行的 vGPU 的类型。
  • 如果 GPU 完全加载,则不会列出任何 vGPU 类型。

要将检索的信息限制为平台上的 GPU 子集,请使用 –i 或 --id 选项选择一个或多个 GPU。

复制
已复制!
            

[root@vgpu ~]# nvidia-smi vgpu -c -i 0 GPU 0000:83:00.0 GRID M60-2Q [root@vgpu ~]#

要查看有关当前可以创建的 vGPU 类型的详细信息,请添加 –v 或 --verbose 选项。

7.2.2. 使用 Citrix XenCenter 监控 GPU 性能

如果您正在使用 XenServer 作为您的 hypervisor,则可以在 XenCenter 中监控 GPU 性能。

  1. 单击服务器的性能选项卡。
  2. 右键单击图形窗口,然后选择操作新建图形
  3. 为图形提供一个名称。
  4. 在可用计数器资源列表中,选择一个或多个 GPU 计数器。

将列出每个当前未用于 GPU 直通的物理 GPU 的计数器。

图 23. 使用 Citrix XenCenter 监控 GPU 性能

vgu-performance-stats-in-citrix-xencenter.png

7.3. 从 Guest VM 监控 GPU 性能

您可以使用单个 Guest VM 中的监控工具来监控分配给 VM 的 vGPU 或直通 GPU 的性能。这些工具的范围仅限于您使用它们的 Guest VM 内部。您不能使用单个 Guest VM 中的监控工具来监控平台中的任何其他 GPU。

对于 vGPU,Guest VM 中仅报告以下指标

  • 3D/计算
  • 内存控制器
  • 视频编码器
  • 视频解码器
  • 帧缓冲区使用率

GPU 中通常存在的其他指标不适用于 vGPU,并且根据您使用的工具报告为零或 N/A。

7.3.1. 使用 nvidia-smi 从 Guest VM 监控 GPU 性能

在 Guest VM 中,您可以使用 nvidia-smi 命令来检索 VM 中运行的所有应用程序的总使用情况以及单个应用程序对以下资源的使用情况

  • GPU
  • 视频编码器
  • 视频解码器
  • 帧缓冲区

要使用 nvidia-smi 检索 VM 中运行的所有应用程序的总资源使用情况的统计信息,请运行以下命令

复制
已复制!
            

nvidia-smi dmon

以下示例显示了从 Windows Guest VM 中运行 nvidia-smi dmon 的结果。

图 24. 从 Windows Guest VM 中使用 nvidia-smi 获取所有应用程序的总资源使用情况

nvidia-smi-guest-vm-windows-command-prompt.png

要使用 nvidia-smi 检索 VM 中运行的单个应用程序的资源使用情况的统计信息,请运行以下命令

复制
已复制!
            

nvidia-smi pmon

图 25. 从 Windows Guest VM 中使用 nvidia-smi 获取单个应用程序的资源使用情况

nvidia-smi-guest-vm-by-application-windows-command-prompt.png

7.3.2. 使用 Windows 性能计数器监控 GPU 性能

在 Windows VM 中,GPU 指标可通过 NVIDIA GPU 对象作为 Windows 性能计数器 提供。

任何启用读取性能计数器的应用程序都可以访问这些指标。您可以直接通过 Windows 操作系统附带的 Windows 性能监视器 应用程序访问这些指标。

以下示例显示了性能监视器应用程序中的 GPU 指标。

图 26. 使用 Windows 性能监视器监控 GPU 性能

windows-performance-monitor-screen.png

在 vGPU 上,以下 GPU 性能计数器读数为 0,因为它们不适用于 vGPU:

  • % 总线使用率
  • % 散热器速率
  • 核心时钟 MHz
  • 风扇速度
  • 内存时钟 MHz
  • PCI-E 当前到 GPU 的速度 Mbps
  • PCI-E 当前到 GPU 的宽度
  • PCI-E 下游到 GPU 的宽度
  • 功耗 mW
  • 温度 C

7.3.3. 使用 NVWMI 监控 GPU 性能

在 Windows VM 中,Windows Management Instrumentation (WMI) 通过 NVWMI 在 ROOT\CIMV2\NV 命名空间中公开 GPU 指标。NVWMI 包含在 NVIDIA 驱动程序包中。Windows 帮助格式的 NVWMI API 参考 可从 NVIDIA 网站下载。

任何启用 WMI 的应用程序都可以访问这些指标。以下示例显示了第三方应用程序 WMI Explorer 中的 GPU 指标,该应用程序可从 CodePlex WMI Explorer 页面下载。

图 27. 使用 WMI Explorer 监控 GPU 性能

wmi-explorer-screen.png

在 vGPU 上,以下类的一些实例属性不适用于 vGPU

  • Gpu
  • PcieLink

不适用于 vGPU 的 Gpu 实例属性

Gpu 实例属性 在 vGPU 上报告的值
gpuCoreClockCurrent -1
memoryClockCurrent -1
pciDownstreamWidth 0
pcieGpu.curGen 0
pcieGpu.curSpeed 0
pcieGpu.curWidth 0
pcieGpu.maxGen 1
pcieGpu.maxSpeed 2500
pcieGpu.maxWidth 0
power -1
powerSampleCount -1
powerSamplingPeriod -1
verVBIOS.orderedValue 0
verVBIOS.strValue -
verVBIOS.value 0


不适用于 vGPU 的 PcieLink 实例属性

vGPU 不报告 PcieLink 的任何实例。

基于 NVIDIA Maxwell™ 图形架构的 NVIDIA GPU 实施了一种尽力而为的 vGPU 调度器,旨在平衡跨 vGPU 的性能。尽力而为调度器允许 vGPU 使用其他 vGPU 未使用的 GPU 处理周期。在某些情况下,运行图形密集型应用程序的 VM 可能会对在其他 VM 中运行的图形轻量级应用程序的性能产生不利影响。

基于 Maxwell 架构之后的 NVIDIA GPU 架构的 GPU 还支持均等共享和固定共享 vGPU 调度器。这些调度器限制了 vGPU 使用的 GPU 处理周期,从而防止在一个 VM 中运行的图形密集型应用程序影响在其他 VM 中运行的图形轻量级应用程序的性能。在支持多个 vGPU 调度器的 GPU 上,您可以选择要使用的 vGPU 调度器。您还可以设置均等共享和固定共享 vGPU 调度器的时间片长度。

注意

如果您使用均等共享或固定共享 vGPU 调度器,则帧速率限制器 (FRL) 将被禁用。

尽力而为调度器是所有支持的 GPU 架构的默认调度器。

如果您不确定您的 GPU 的 NVIDIA GPU 架构,请查阅您的 hypervisor 的发行说明,网址为 NVIDIA Virtual GPU Software Documentation

8.1. 时间分片 vGPU 的调度策略

除了默认的尽力而为调度器之外,基于 Maxwell 架构之后的 NVIDIA GPU 架构的 GPU 还支持均等共享和固定共享 vGPU 调度器。

均等共享调度器
物理 GPU 在驻留在其上的正在运行的 vGPU 之间平均共享。当 vGPU 添加到 GPU 或从 GPU 中移除时,分配给每个 vGPU 的 GPU 处理周期的份额也会相应更改。因此,当同一 GPU 上的其他 vGPU 停止时,vGPU 的性能可能会提高,或者当同一 GPU 上启动其他 vGPU 时,vGPU 的性能可能会降低。
固定共享调度器
每个 vGPU 都被赋予物理 GPU 处理周期的固定份额,份额量取决于 vGPU 类型,而 vGPU 类型又决定了每个物理 GPU 的最大 vGPU 数量。例如,每个物理 GPU 的最大 T4-4Q vGPU 数量为 4。当调度策略为固定共享时,每个 T4-4Q vGPU 被赋予四分之一或 25% 的物理 GPU 处理周期。当 vGPU 添加到 GPU 或从 GPU 中移除时,分配给每个 vGPU 的 GPU 处理周期的份额保持不变。因此,当同一 GPU 上的其他 vGPU 停止或启动时,vGPU 的性能保持不变。
注意

对于在同一物理 GPU 上具有不同帧缓冲区大小的时间分片 vGPU,仅支持尽力而为和均等共享调度器。 支持固定共享调度器。

默认情况下,这些调度器实施严格的轮询调度策略。当强制执行此策略时,调度器通过调整为配置了 NVIDIA vGPU 的每个 VM 的时间片来维护调度公平性。严格的轮询调度策略确保为配置了 NVIDIA vGPU 的 VM 更一致地调度工作,并限制在一个 VM 中运行的 GPU 密集型应用程序对在其他 VM 中运行的应用程序的影响。

您可以不使用严格的轮询调度策略,而是通过调度在计划状态下花费时间最少的 vGPU 的工作来确保调度公平性。此行为是 15.0 之前的 NVIDIA vGPU 软件版本中的默认调度行为。

当强制执行严格的轮询调度策略时,对时间片的调整基于调度频率平均因子

调度频率
每秒调度特定 vGPU 工作的次数。默认调度频率取决于驻留在物理 GPU 上的 vGPU 的数量
  • 如果驻留在物理 GPU 上的 vGPU 少于 8 个,则默认值为 480 Hz。
  • 如果驻留在物理 GPU 上的 vGPU 为 8 个或更多,则默认值为 960 Hz。
平均因子
一个数字,它确定为每个 vGPU 累积的时间片超限的移动平均值。此平均值控制强制执行调度频率的严格程度。平均因子的值越高,强制执行调度频率的严格程度越低。

指定的调度频率的偏差发生是因为调度器分配给 VM 的实际时间量可能超过或超出为 VM 指定的时间片。调度器通过缩短每个 vGPU VM 的下一个时间片来补偿 VM 的累积超限时间,从而强制执行调度频率。

为了计算要缩短 vGPU VM 的下一个时间片的量,调度器维护每个 vGPU VM 的累积超限时间的运行总计。此量等于运行总计除以您指定的平均因子。计算出的量也从累积超限时间中减去。平均因子的值越高,强制执行调度频率的严格程度越低,因为它将累积超限时间的补偿分散到更长的时间段内。

8.2. 时间分片 vGPU 的调度器时间片

当多个 VM 访问单个 GPU 上的 vGPU 时,GPU 串行执行每个 VM 的工作。vGPU 调度器时间片表示 VM 的工作在被抢占并且执行下一个 VM 的工作之前允许在 GPU 上运行的时间量。

对于均等共享和固定共享 vGPU 调度器,您可以设置时间片的长度。时间片的长度会影响延迟和吞吐量。时间片的最佳长度取决于 GPU 正在处理的工作负载。

  • 对于需要低延迟的工作负载,较短的时间片是最佳的。通常,这些工作负载是必须以固定间隔生成输出的应用程序,例如以 60 FPS 帧速率生成输出的图形应用程序。这些工作负载对延迟敏感,应允许它们至少每间隔运行一次。较短的时间片通过使调度器更频繁地在 VM 之间切换来减少延迟并提高响应能力。

  • 对于需要最大吞吐量的工作负载,较长的时间片是最佳的。通常,这些工作负载是必须尽快完成其工作并且不需要响应能力的应用程序,例如 CUDA 应用程序。较长的时间片通过防止 VM 之间频繁切换来提高吞吐量。

8.3. 获取有关时间分片 vGPU 的调度行为的信息

nvidia-smi 命令提供了用于获取有关时间分片 vGPU 的调度行为的详细信息的选项。您还可以使用 hypervisor 的 dmesg 命令来获取所有 GPU 的当前时间分片 vGPU 调度策略。

8.3.1. 获取时间分片 vGPU 调度器功能

时间分片 vGPU 的调度器功能是一组值,这些值定义了如何配置 vGPU 以分配为配置了 NVIDIA vGPU 的每个 VM 的工作。这些功能值取决于 vGPU 引擎类型,并且对于支持多种调度策略的 vGPU,取决于 vGPU 是否支持并强制执行严格的轮询调度策略。

  • 如果 vGPU 引擎类型为图形,则 vGPU 调度器功能值包括支持的调度策略以及影响如何分配为配置了 NVIDIA vGPU 的每个 VM 的工作的其他值。适用的功能值取决于 vGPU 是否支持并强制执行严格的轮询调度策略。
    • 如果 vGPU 支持并强制执行严格的轮询调度策略,则调度频率和平均因子的值适用。
    • 否则,支持的时间片范围的值适用。
  • 如果 vGPU 引擎类型是图形以外的任何类型,则唯一的 vGPU 调度器功能值指示支持尽力而为调度策略。所有其他功能值均为零。

要获取平台上所有时间分片 vGPU 的调度器功能,请运行带有 –sc 或 --schedulercaps 选项的 nvidia-smi vgpu 命令。

要将检索的信息限制为平台上的 GPU 子集,请使用 –i 或 --id 选项选择一个或多个 GPU。

复制
已复制!
            

[root@vgpu ~]# nvidia-smi vgpu -sc vGPU scheduler capabilities Supported Policies : Best Effort Equal Share Fixed Share ARR Mode : Supported Supported Timeslice Range Maximum Timeslice : 30000000 ns Minimum Timeslice : 1000000 ns Supported Scheduling Frequency Maximum Frequency : 960 Minimum Frequency : 63 Supported ARR Averaging Factor Maximum Avg Factor : 60 Minimum Avg Factor : 1

8.3.2. 获取时间分片 vGPU 调度器状态信息

时间分片 vGPU 的调度器状态信息包括为 vGPU 设置的调度策略以及控制如何分配为配置了 vGPU 的 VM 的工作的属性值。可用的属性取决于为 vGPU 设置的调度策略。

可以为 vGPU 检索的调度器状态信息取决于配置了 vGPU 的 VM 是否正在运行。

要获取平台上所有时间分片 vGPU 的调度器状态信息,请运行带有 –ss 或 --schedulerstate 选项的 nvidia-smi vgpu 命令。

要将检索的信息限制为平台上的 GPU 子集,请使用 –i 或 --id 选项选择一个或多个 GPU。

以下示例显示了当配置了 vGPU 的 VM 未运行和正在运行时为 vGPU 检索的调度器状态信息。在这些示例中,调度策略是具有严格轮询调度策略的均等共享调度器以及默认时间片长度、调度频率和平均因子。

未运行的 VM 的 vGPU 调度器状态信息

注意

对于未运行的 VM,未列出 ARR 模式、平均因子和时间片。

复制
已复制!
            

[root@vgpu ~]# nvidia-smi vgpu -ss GPU 00000000:65:00.0 Active vGPUs : 0 Scheduler Policy : Equal Share


正在运行的 VM 的 vGPU 调度器状态信息

复制
已复制!
            

[root@vgpu ~]# nvidia-smi vgpu -ss GPU 00000000:65:00.0 Active vGPUs : 1 Scheduler Policy : Equal Share ARR Mode : Enabled Average Factor : 33 Time Slice(ns) : 2083333

8.3.3. 获取时间分片 vGPU 调度器工作日志

时间分片 vGPU 的调度器工作日志提供有关运行时为配置了 vGPU 的 VM 分配工作的信息。

可以为 vGPU 检索的调度器工作日志中的信息取决于配置了 vGPU 的 VM 是否正在运行。

要获取平台上所有时间分片 vGPU 的调度器工作日志,请运行带有 –sl 或 --schedulerlogs 选项的 nvidia-smi vgpu 命令。

要将检索的信息限制为平台上的 GPU 子集,请使用 –i 或 --id 选项选择一个或多个 GPU。

未运行的 VM 的 vGPU 调度器工作日志

复制
已复制!
            

[root@vgpu ~]# nvidia-smi vgpu -sl +---------------------------------------------------------------------------------------------------------+ Engine Id 1 Scheduler Policy Equal Share GPU at deviceIndex 0 has no active VM runlist. +---------------------------------------------------------------------------------------------------------+


正在运行的 VM 的 vGPU 调度器工作日志

复制
已复制!
            

[root@vgpu ~]# nvidia-smi vgpu -sl +---------------------------------------------------------------------------------------------------------+ GPU Id 0 Engine Id 1 Scheduler Policy Equal Share ARR Mode Enabled Avg Factor 33 Time Slice 2083333 +---------------------------------------------------------------------------------------------------------+ GPU SW Runlist Time Cumulative Prev Timeslice Target Time Cumulative Idx Id Stamp Run Time Runtime Slice Preempt Time 0 0 1673362687729708384 2619237216 2083840 2005425 2493060 0 0 1673362687731793472 2621322304 2085088 2005372 2494762 0 0 1673362687733877664 2623406496 2084192 2005346 2495595

8.3.4. 获取所有 GPU 的当前时间分片 vGPU 调度策略

您可以使用 hypervisor 的 dmesg 命令来获取所有 GPU 的当前时间分片 vGPU 调度策略。在更改一个或多个 GPU 的调度行为之前获取此信息以确定是否需要更改它,或在更改后获取此信息以确认更改。

在您的 hypervisor 命令 shell 中执行此任务。

  1. 在您的 hypervisor 主机上打开命令 shell。在所有支持的 hypervisor 上,您可以使用安全 shell (SSH) 来实现此目的。各个 hypervisor 可能提供其他登录方式。有关详细信息,请参阅您的 hypervisor 的文档。
  2. 使用 dmesg 命令显示来自内核的消息,其中包含字符串 NVRMscheduler
    复制
    已复制!
                

    $ dmesg | grep NVRM | grep scheduler

    调度策略在这些消息中由以下字符串指示

    • 尽力而为 (BEST_EFFORT)
    • 均等共享 (EQUAL_SHARE)
    • 固定共享 (FIXED_SHARE)

    如果调度策略是均等共享或固定共享,则还会显示调度器时间片(以毫秒为单位)。

    此示例获取系统中 GPU 的调度策略,其中一个 GPU 的策略设置为尽力而为,一个 GPU 的策略设置为均等共享,另一个 GPU 的策略设置为固定共享。

    复制
    已复制!
                

    $ dmesg | grep NVRM | grep scheduler 2020-10-05T02:58:08.928Z cpu79:2100753)NVRM: GPU at 0000:3d:00.0 has software scheduler DISABLED with policy BEST_EFFORT. 2020-10-05T02:58:09.818Z cpu79:2100753)NVRM: GPU at 0000:5e:00.0 has software scheduler ENABLED with policy EQUAL_SHARE. NVRM: Software scheduler timeslice set to 1 ms. 2020-10-05T02:58:12.115Z cpu79:2100753)NVRM: GPU at 0000:88:00.0 has software scheduler ENABLED with policy FIXED_SHARE. NVRM: Software scheduler timeslice set to 1 ms.

8.4. 用于更改时间分片 vGPU 的调度行为的工具

要更改时间分片 vGPU 的调度行为,您可以使用 nvidia-smi 命令或 RmPVMRL 注册表项。要使用的工具取决于您是否需要立即应用更改,或者是否需要更改是持久的。

  • 如果您需要立即应用更改,请使用 nvidia-smi 命令。如果您使用 nvidia-smi 命令,则无需重新加载驱动程序或重新启动 hypervisor 主机即可应用您的更改。但是,您的更改是易失性的,并且在以下情况下不会持久存在
    • 驱动程序已重新加载。
    • hypervisor 主机已重新启动。
    • sriov-manage 脚本已运行以启用 sysfs 文件系统中物理 GPU 的虚拟功能。
  • 如果您需要更改是持久的,请使用 RmPVMRL 注册表项。

    但是,如果您使用 RmPVMRL 注册表项,则必须重新加载驱动程序或重新启动 hypervisor 主机才能应用您的更改。

有关如何使用这些工具来更改时间分片 vGPU 的调度行为的信息,请参阅以下主题

8.5. 使用 nvidia-smi 命令更改时间分片 vGPU 的调度行为

nvidia-smi 命令提供了 vgpu set-scheduler-state 子命令和关联选项,用于更改时间分片 vGPU 的调度行为。

确保您要更改时间分片 vGPU 的调度行为的任何物理 GPU 上都不存在 vGPU。您所做的任何更改都会影响在您进行更改后在物理 GPU 上创建的 vGPU。如果您尝试更改已存在 vGPU 的物理 GPU 上的时间分片 vGPU 的调度行为,则更改调度行为的尝试将失败,并且 nvidia-smi 命令将显示类似于以下示例的错误消息

复制
已复制!
            

Unable to set the vGPU scheduler state on GPU "00000000:1A:00.0". vGPU scheduler state cannot be configured, if vGPU instance is currently active on the device.

要更改时间分片 vGPU 的调度行为,请运行带有其关联选项的 nvidia-smi vgpu set-scheduler-state 命令。

有关这些选项的更多信息,请参阅 时间分片 vGPU 的调度策略

–igpu-id
--idgpu-id
gpu-id 是您要更改时间分片 vGPU 调度行为的 GPU 的标识符,格式为以下之一
  • 驱动程序返回的自然枚举中 GPU 的从 0 开始的索引
  • GPU 的通用唯一标识符 (UUID)
  • GPU 的 PCI 总线 ID,格式为十六进制的 域:总线:设备.功能

此选项不是强制性的。如果省略,则会更改平台上所有 GPU 的时间分片 vGPU 的调度行为。

-pS
--policyS
S 是范围 1-3 中的十进制整数,用于设置要使用的调度器
  • 1:尽力而为调度器(默认)
  • 2:均等共享调度器
  • 3:固定共享调度器

如果 S 不是范围 1-3 中的十进制整数,则设置要使用的调度器的尝试将失败,并且 nvidia-smi 命令将显示以下错误消息

复制
已复制!
            

Unable to set the vGPU scheduler state. Not supported


-aR
--arr-modeR
R 是一个布尔参数,用于启用或禁用调度器的严格轮询调度策略
  • 0:禁用调度器的严格轮询调度策略
  • 1:启用调度器的严格轮询调度策略

    如果启用了调度器的严格轮询调度策略,则还可以使用 -asf 和 -aavg 选项来设置调度频率和平均因子。

对于均等共享和固定共享调度器,此参数是可选的。如果省略,则 --arr-mode 设置为 1 以启用调度器的严格轮询调度策略。对于尽力而为调度器,此参数不适用。

如果 R 不是 01,则启用或禁用严格轮询调度策略的尝试将失败,并且 nvidia-smi 命令将显示以下错误消息

复制
已复制!
            

Option passed to set Adaptive Round Robin scheduler is invalid.


-asffrequency
--arr-sched-frequencyfrequency
frequency 是范围 63 到 960 中的十进制整数,用于设置具有严格轮询调度策略的均等共享和固定共享调度器的调度频率(以 Hz 为单位)。如果 frequency 超出范围 63 到 960,则调度频率设置如下
  • 如果未设置 frequency,则调度频率设置为 表 1 中列出的 vGPU 类型的默认调度频率。
  • 如果 frequency 小于 63,则调度频率将提高到 63。
  • 如果 frequency 大于 960,则调度频率将上限为 960。
-aavgaveraging-factor
--arr-avg-factoraveraging-factor
averaging-factor 是范围 1 到 60 中的十进制整数,用于设置平均因子,以确保具有严格轮询调度策略的均等共享和固定共享调度器的调度公平性。补偿累积超限时间的时间片数取决于 averaging-factor 的值
  • 如果 averaging-factor 为 1,则累积超限时间的补偿将在单个时间片中应用。
  • 如果 averaging-factor 为 60,则累积超限时间的补偿将分散在 60 个时间片中。
  • 如果未设置 averaging-factor,则使用默认值 33。
  • 如果 averaging-factor 大于 60,则应用补偿的时间片数将上限为 60。
-tstime-slice-length
--time-slicetime-slice-length
time-slice-length 是范围 1,000,000 到 30,000,000 中的十进制整数,用于设置没有严格轮询调度策略的均等共享和固定共享调度器的时间片长度(以纳秒 (ns) 为单位)。当 --arr-mode 设置为 0 以禁用调度器的严格轮询调度策略时,才设置此参数。最小长度为 1,000,000 ns (1 ms),最大长度为 30,000,000 ns (30 ms)。如果 time-slice-length 超出范围 1,000,000 到 30,000,000,则长度设置如下
  • 如果未设置 time-slice-length,则长度设置为 表 1 中列出的 vGPU 类型的默认时间片长度。
  • 如果 time-slice-length 小于 1,000,000,则长度将提高到 1,000,000 ns (1 ms)。
  • 如果 time-slice-length 大于 30,000,000,则长度将上限为 30,000,000 ns (30 ms)。

为单个 GPU 设置调度策略

此示例将 PCI 域 0000 和 BDF 15:00.0 处的 GPU 的调度策略设置为没有严格轮询调度策略的固定共享调度器以及默认时间片长度。

复制
已复制!
            

# nvidia-smi vgpu set-scheduler-state –i 0000:15:00.0 -p 3 -a 0


为单个 GPU 设置调度策略和时间片

此示例将 PCI 域 0000 和 BDF 86:00.0 处的 GPU 的调度策略设置为没有严格轮询调度策略的固定共享调度器以及 24 毫秒(24,000,000 纳秒)长的时间片。

复制
已复制!
            

# nvidia-smi vgpu set-scheduler-state -i 0000:86:00.0 -p 3 -a 0 -ts 24,000,000


为所有 GPU 设置调度策略和时间片

此示例将 vGPU 调度器设置为没有严格轮询调度策略的均等共享调度器以及 3 毫秒(3,000,000 纳秒)长的时间片,适用于平台上的所有 GPU。

复制
已复制!
            

# nvidia-smi vgpu set-scheduler-state -p 2 -a 0 -ts 3,000,000


为所有 GPU 的均等共享调度器启用严格轮询调度策略

此示例将 vGPU 调度器设置为具有严格轮询调度策略的均等共享调度器以及默认时间片长度、调度频率和平均因子,适用于平台上的所有 GPU。

复制
已复制!
            

# nvidia-smi vgpu set-scheduler-state -p 2 -a 1


为所有 GPU 的固定共享调度器启用严格轮询调度策略

此示例将 vGPU 调度器设置为具有严格轮询调度策略的固定共享调度器以及默认时间片长度、调度频率和平均因子,适用于平台上的所有 GPU。

复制
已复制!
            

# nvidia-smi vgpu set-scheduler-state -p 3 -a 1


为固定共享调度器禁用严格轮询调度策略并为所有 GPU 设置时间片

此示例将 vGPU 调度器设置为没有严格轮询调度策略的固定共享调度器以及 24 毫秒(24,000,000 纳秒)毫秒长的时间片,适用于平台上的所有 GPU。

复制
已复制!
            

# nvidia-smi vgpu set-scheduler-state -p 3 -a 0 -ts 24,000,000


为具有自定义属性的所有 GPU 的均等共享调度器启用严格轮询调度策略

此示例将 vGPU 调度器设置为具有严格轮询调度策略、平均因子为 60 和调度频率为 960 Hz 的均等共享调度器,适用于平台上的所有 GPU。

复制
已复制!
            

# nvidia-smi vgpu set-scheduler-state -p 2 -a 1 -aavg 60-asf 960


为具有自定义属性的所有 GPU 的固定共享调度器启用严格轮询调度策略

此示例将 vGPU 调度器设置为具有严格轮询调度策略、平均因子为 60 和调度频率为 960 Hz 的固定共享调度器,适用于平台上的所有 GPU。

复制
已复制!
            

# nvidia-smi vgpu set-scheduler-state -p 3 -a 1 -aavg 60-asf 960


恢复默认时间分片 vGPU 调度器设置

此示例通过将 vGPU 调度器设置为尽力而为调度器来恢复默认时间分片 vGPU 调度器设置。

复制
已复制!
            

# nvidia-smi vgpu set-scheduler-state -p 1

8.6. 使用 RmPVMRL 注册表项更改时间分片 vGPU 的调度行为

要使用 RmPVMRL 注册表项更改时间分片 vGPU 的调度行为,请使用 hypervisor 的标准接口来设置 RmPVMRL 注册表项值。RmPVMRL 注册表项通过设置调度策略、具有严格轮询调度策略的调度器的平均因子和调度频率以及没有严格轮询调度策略的调度器的时间片长度来控制 NVIDIA vGPU 的调度行为。

8.6.1. 使用 RmPVMRL 注册表项更改所有 GPU 的时间分片 vGPU 调度 行为

注意

您只能在支持多个 vGPU 调度器的 GPU 上更改 vGPU 调度行为,即基于 Maxwell 架构之后的 NVIDIA GPU 架构的 GPU。

在您的 hypervisor 命令 shell 中执行此任务。

  1. 在您的 hypervisor 主机上打开命令 shell。在所有支持的 hypervisor 上,您可以使用安全 shell (SSH) 来实现此目的。各个 hypervisor 可能提供其他登录方式。有关详细信息,请参阅您的 hypervisor 的文档。
  2. RmPVMRL 注册表项设置为设置 GPU 调度策略和您想要的时间片长度的值。
    • 在 XenServer 或 Red Hat Enterprise Linux KVM 上,将以下条目添加到 /etc/modprobe.d/nvidia.conf 文件。

      复制
      已复制!
                  

      options nvidia NVreg_RegistryDwords="RmPVMRL=value"

      如果 /etc/modprobe.d/nvidia.conf 文件尚不存在,请创建它。

    • 在 VMware vSphere 上,使用 esxcli set 命令。

      复制
      已复制!
                  

      # esxcli system module parameters set -m nvidia -p "NVreg_RegistryDwords=RmPVMRL=value"

    value

    设置 GPU 调度策略和您想要的时间片长度的值,例如

    0x01
    将 vGPU 调度策略设置为具有默认时间片长度的均等共享调度器。
    0x00030001
    将 GPU 调度策略设置为具有 3 毫秒时间片长度的均等共享调度器。
    0x11
    将 vGPU 调度策略设置为具有默认时间片长度的固定共享调度器。
    0x00180011
    将 GPU 调度策略设置为具有 24 (0x18) 毫秒时间片长度的固定共享调度器。

    对于所有支持的值,请参阅RmPVMRL 注册表项

  3. 重启您的 hypervisor 主机。

确认调度行为已按要求更改,如获取所有 GPU 当前基于时间片的 vGPU 调度策略中所述。

8.6.2. 更改 基于时间片的 vGPU 调度 行为 ,针对选定的 GPU,通过使用 RmPVMRL 注册表项

注意

您只能在支持多个 vGPU 调度器的 GPU 上更改 vGPU 调度行为,即基于 Maxwell 架构之后的 NVIDIA GPU 架构的 GPU。

在您的 hypervisor 命令 shell 中执行此任务。

  1. 在您的 hypervisor 主机上打开命令 shell。在所有支持的 hypervisor 上,您可以使用安全 shell (SSH) 来实现此目的。各个 hypervisor 可能提供其他登录方式。有关详细信息,请参阅您的 hypervisor 的文档。
  2. 使用 lspci 命令获取您要更改调度行为的每个 GPU 的 PCI 域和总线/设备/功能 (BDF)。
    • 在 XenServer 或 Red Hat Enterprise Linux KVM 上,添加 -D 选项以显示 PCI 域,并添加 -d 10de: 选项以仅显示 NVIDIA GPU 的信息。
      复制
      已复制!
                  

      # lspci -D -d 10de:

    • 在 VMware vSphere 上,将 lspci 的输出管道传输到 grep 命令,以仅显示 NVIDIA GPU 的信息。
      复制
      已复制!
                  

      # lspci | grep NVIDIA

    此示例中列出的 NVIDIA GPU 的 PCI 域为 0000,BDF 为 86:00.0

    复制
    已复制!
                

    0000:86:00.0 3D controller: NVIDIA Corporation GP104GL [Tesla P4] (rev a1)

  3. 使用模块参数 NVreg_RegistryDwordsPerDevice 为每个 GPU 设置 pciRmPVMRL 注册表项。
    • 在 XenServer 或 Red Hat Enterprise Linux KVM 上,将以下条目添加到 /etc/modprobe.d/nvidia.conf 文件。

      复制
      已复制!
                  

      options nvidia NVreg_RegistryDwordsPerDevice="pci=pci-domain:pci-bdf;RmPVMRL=value [;pci=pci-domain:pci-bdf;RmPVMRL=value...]"

      如果 /etc/modprobe.d/nvidia.conf 文件尚不存在,请创建它。

    • 在 VMware vSphere 上,使用 esxcli set 命令。

      复制
      已复制!
                  

      # esxcli system module parameters set -m nvidia \ -p "NVreg_RegistryDwordsPerDevice=pci=pci-domain:pci-bdf;RmPVMRL=value\ [;pci=pci-domain:pci-bdf;RmPVMRL=value...]"

    对于每个 GPU,提供以下信息

    pci-domain
    GPU 的 PCI 域。
    pci-bdf
    GPU 的 PCI 设备 BDF。
    value

    设置 GPU 调度策略和您想要的时间片长度的值,例如

    0x01
    将 GPU 调度策略设置为具有默认时间片长度的均等共享调度器。
    0x00030001
    将 GPU 调度策略设置为具有 3 毫秒时间片长度的均等共享调度器。
    0x11
    将 GPU 调度策略设置为具有默认时间片长度的固定共享调度器。
    0x00180011
    将 GPU 调度策略设置为具有 24 (0x18) 毫秒时间片长度的固定共享调度器。

    对于所有支持的值,请参阅RmPVMRL 注册表项

    此示例向 /etc/modprobe.d/nvidia.conf 文件添加一个条目,以更改单个 GPU 的调度行为。该条目将 PCI 域 0000 和 BDF 86:00.0 处的 GPU 的 GPU 调度策略设置为具有默认时间片长度的固定共享调度器。

    复制
    已复制!
                

    options nvidia NVreg_RegistryDwordsPerDevice= "pci=0000:86:00.0;RmPVMRL=0x11"

    此示例向 /etc/modprobe.d/nvidia.conf 文件添加一个条目,以更改单个 GPU 的调度行为。该条目将 PCI 域 0000 和 BDF 86:00.0 处的 GPU 的调度策略设置为具有 24 (0x18) 毫秒时间片的固定共享调度器。

    复制
    已复制!
                

    options nvidia NVreg_RegistryDwordsPerDevice= "pci=0000:86:00.0;RmPVMRL=0x00180011"

    此示例更改在运行 VMware vSphere 的 hypervisor 主机上单个 GPU 的调度行为。该命令将 PCI 域 0000 和 BDF 15:00.0 处的 GPU 的调度策略设置为具有默认时间片长度的固定共享调度器。

    复制
    已复制!
                

    # esxcli system module parameters set -m nvidia -p \ "NVreg_RegistryDwordsPerDevice=pci=0000:15:00.0;RmPVMRL=0x11[;pci=0000:15:00.0;RmPVMRL=0x11]"

    此示例更改在运行 VMware vSphere 的 hypervisor 主机上单个 GPU 的调度行为。该命令将 PCI 域 0000 和 BDF 15:00.0 处的 GPU 的调度策略设置为具有 24 (0x18) 毫秒时间片的固定共享调度器。

    复制
    已复制!
                

    # esxcli system module parameters set -m nvidia -p \ "NVreg_RegistryDwordsPerDevice=pci=0000:15:00.0;RmPVMRL=0x11[;pci=0000:15:00.0;RmPVMRL=0x00180011]"

  4. 重启您的 hypervisor 主机。

确认调度行为已按要求更改,如获取所有 GPU 当前基于时间片的 vGPU 调度策略中所述。

8.6.3. 恢复默认 基于时间片的 vGPU 调度器设置,通过使用 RmPVMRL 注册表项

在您的 hypervisor 命令 shell 中执行此任务。

  1. 在您的 hypervisor 主机上打开命令 shell。在所有支持的 hypervisor 上,您可以使用安全 shell (SSH) 来实现此目的。各个 hypervisor 可能提供其他登录方式。有关详细信息,请参阅您的 hypervisor 的文档。
  2. 取消设置 RmPVMRL 注册表项。
    • 在 XenServer 或 Red Hat Enterprise Linux KVM 上,注释掉 /etc/modprobe.d/nvidia.conf 文件中设置 RmPVMRL 的条目,方法是在每个条目前面加上 # 字符。

    • 在 VMware vSphere 上,将模块参数设置为空字符串。

      复制
      已复制!
                  

      # esxcli system module parameters set -m nvidia -p "module-parameter="

      module-parameter
      要设置的模块参数,这取决于调度行为是为所有 GPU 还是为选定的 GPU 更改
      • 对于所有 GPU,设置 NVreg_RegistryDwords 模块参数。
      • 对于选定的 GPU,设置 NVreg_RegistryDwordsPerDevice 模块参数。

      例如,要恢复为所有 GPU 更改后的默认 vGPU 调度器设置,请输入此命令

      复制
      已复制!
                  

      # esxcli system module parameters set -m nvidia -p "NVreg_RegistryDwords="

  3. 重启您的 hypervisor 主机。

8.6.4.  RmPVMRL 注册表项

RmPVMRL 注册表项通过设置调度策略、严格轮询调度策略调度程序的平均因子和调度频率以及不使用严格轮询调度策略调度程序的时间片长度来控制 NVIDIA vGPU 的调度行为。

注意

您只能在支持多个 vGPU 调度器的 GPU 上更改 vGPU 调度行为,即基于 Maxwell 架构之后的 NVIDIA GPU 架构的 GPU。


类型

Dword

内容

含义
0x00(默认) 尽力而为调度器
0x01 具有严格轮询调度策略和默认时间片长度、调度频率和平均因子的均等共享调度器
0x03 不使用严格轮询调度策略和默认时间片长度的均等共享调度器
0x<i>AA</i><i>FFF</i>001 具有严格轮询调度策略和用户定义的平均因子 <i>AA</i> 和用户定义的调度频率 <i>FFF</i> 的均等共享调度器
0x00<i>TT</i>0003 不使用严格轮询调度策略且具有用户定义的时间片长度 <i>TT</i> 的均等共享调度器
0x11 具有严格轮询调度策略和默认时间片长度、调度频率和平均因子的固定共享调度器
注意

此值不能为混合大小模式下物理 GPU 上的基于时间片的 vGPU 设置。

0x13 不使用严格轮询调度策略且具有默认时间片长度的固定共享调度器
注意

此值不能为混合大小模式下物理 GPU 上的基于时间片的 vGPU 设置。

0x<i>AA</i><i>FFF</i>011 具有严格轮询调度策略和用户定义的平均因子 <i>AA</i> 和用户定义的调度频率 <i>FFF</i> 的固定共享调度器
注意

此值不能为混合大小模式下物理 GPU 上的基于时间片的 vGPU 设置。

0x00<i>TT</i>0013 不使用严格轮询调度策略且具有用户定义的时间片长度 <i>TT</i> 的固定共享调度器
注意

此值不能为混合大小模式下物理 GPU 上的基于时间片的 vGPU 设置。

默认时间片长度和调度频率取决于 vGPU 类型允许的每个物理 GPU 的最大 vGPU 数量。

表 1. 按 vGPU 密度划分的默认时间片长度和调度频率
最大 vGPU 数量 默认时间片长度 默认调度频率
小于或等于 8 2 毫秒 480 赫兹
大于 8 1 毫秒 960 赫兹


AA
范围为 0x01 到 0x3C(十进制 1-60)的两位十六进制数字,用于设置具有严格轮询调度策略的均等共享和固定共享调度器的平均因子。应用累积超额时间补偿的时间片数量取决于 <i>AA</i> 的值
  • 如果 <i>AA</i> 为 0x01,则累积超额时间的补偿在单个时间片中应用。
  • 如果 <i>AA</i> 为 0x3C,则累积超额时间的补偿将分散在 60 (0x3C) 个时间片中。
  • 如果 <i>AA</i> 为 0x00,则使用默认值 33。
  • 如果 <i>AA</i> 大于 0x3C,则该值上限为 0x3C。
FFF
范围为 0x3F 到 0x3C0(十进制 63-960)的三位十六进制数字,用于设置具有严格轮询调度策略的均等共享和固定共享调度器的调度频率。时间片是调度频率的倒数。例如,频率为 0x3F(63 赫兹)会产生 1/63 秒或 15.873 毫秒的时间片。

对于 <i>FFF</i>,值 0x100 将调度频率设置为 256。

如果 <i>FFF</i> 超出 0x3F 到 0x3C0 的范围,则调度频率按如下方式设置

  • 如果 <i>FFF</i> 为 000,则调度频率设置为 表 1 中列出的 vGPU 类型的默认调度频率。
  • 如果 <i>FFF</i> 大于 000 但小于 0x3F,则调度频率将提高到 0x3F(十进制 63)。
  • 如果 <i>FFF</i> 大于 0x3C0,则调度频率上限为 0x3C0(十进制 960)。
TT
范围为 0x01 到 0x1E(十进制 1-30)的两位十六进制数字,用于设置均等共享和固定共享调度器的时间片长度(以毫秒为单位)。最小长度为 1 毫秒,最大长度为 30 毫秒。如果 <i>TT</i> 超出 01 到 1E 的范围,则长度按如下方式设置
  • 如果 <i>TT</i> 为 00,则长度设置为 表 1 中列出的 vGPU 类型的默认时间片长度。
  • 如果 <i>TT</i> 大于 0x1E(十进制 30),则长度上限为 30 毫秒。

示例

此示例将 vGPU 调度器设置为具有严格轮询调度策略和默认时间片长度、调度频率和平均因子的均等共享调度器。

复制
已复制!
            

RmPVMRL=0x01

此示例将 vGPU 调度器设置为不使用严格轮询调度策略且时间片长度为 3 毫秒的均等共享调度器。

复制
已复制!
            

RmPVMRL=0x00030003

此示例将 vGPU 调度器设置为具有严格轮询调度策略和默认时间片长度、调度频率和平均因子的固定共享调度器。

复制
已复制!
            

RmPVMRL=0x11

此示例将 vGPU 调度器设置为不使用严格轮询调度策略且时间片长度为 24 (0x18) 毫秒的固定共享调度器。

复制
已复制!
            

RmPVMRL=0x00180011

此示例将 vGPU 调度器设置为具有严格轮询调度策略、平均因子为 60 (0x3C) 且调度频率为 960 (0x3C0) 赫兹的均等共享调度器。

复制
已复制!
            

RmPVMRL=0x3c3c0001

此示例将 vGPU 调度器设置为具有严格轮询调度策略、平均因子为 60 (0x3C) 且调度频率为 960 (0x3C0) 赫兹的固定共享调度器。

复制
已复制!
            

RmPVMRL=0x3c3c0011

本章介绍 Linux 风格 hypervisor 上 NVIDIA vGPU 的基本故障排除步骤,以及如何在提交错误报告时收集调试信息。

9.1. 已知问题

在进行故障排除或提交错误报告之前,请查看每个驱动程序版本随附的发行说明,以获取有关当前版本的已知问题和潜在的解决方法的信息。

9.2. 故障排除步骤

如果启用 vGPU 的虚拟机无法启动,或者启动时未显示任何输出,请按照以下步骤缩小可能的原因。

9.2.1. 验证 NVIDIA 内核驱动程序是否已加载

  1. 使用您的 hypervisor 提供的命令来验证内核驱动程序是否已加载
    • 在除 VMware vSphere 之外的 Linux 风格 hypervisor 上,使用 lsmod
      复制
      已复制!
                  

      [root@xenserver ~]# lsmod|grep nvidia nvidia 9604895 84 i2c_core 20294 2 nvidia,i2c_i801 [root@xenserver ~]#

    • 在 VMware vSphere 上,使用 vmkload_mod
      复制
      已复制!
                  

      [root@esxi:~] vmkload_mod -l | grep nvidia nvidia 5 8420

  2. 如果 nvidia 驱动程序未在输出中列出,请检查 dmesg 中驱动程序报告的任何加载时错误(请参阅检查 NVIDIA 内核驱动程序输出)。
  3. 在 XenServer 和 Red Hat Enterprise Linux KVM 上,还可以使用 rpm -q 命令来验证 NVIDIA GPU 管理器软件包是否已正确安装。
    复制
    已复制!
                

    rpm -q vgpu-manager-rpm-package-name

    vgpu-manager-rpm-package-name
    NVIDIA GPU 管理器软件包的 RPM 软件包名称,例如 XenServer 的 NVIDIA-vGPU-NVIDIA-vGPU-CitrixHypervisor-8.2-550.144.02

    此示例验证 XenServer 的 NVIDIA GPU 管理器软件包是否已正确安装。

    复制
    已复制!
                

    [root@xenserver ~]# rpm –q NVIDIA-vGPU-NVIDIA-vGPU-CitrixHypervisor-8.2-550.144.02 [root@xenserver ~]# If an existing NVIDIA GRID package is already installed and you don’t select the upgrade (-U) option when installing a newer GRID package, the rpm command will return many conflict errors. Preparing packages for installation... file /usr/bin/nvidia-smi from install of NVIDIA-vGPU-NVIDIA-vGPU-CitrixHypervisor-8.2-550.144.02.x86_64 conflicts with file from package NVIDIA-vGPU-xenserver-8.2-550.127.06.x86_64 file /usr/lib/libnvidia-ml.so from install of NVIDIA-vGPU-NVIDIA-vGPU-CitrixHypervisor-8.2-550.144.02.x86_64 conflicts with file from package NVIDIA-vGPU-xenserver-8.2-550.127.06.x86_64 ...

9.2.2. 验证 nvidia-smi 是否工作

如果 NVIDIA 内核驱动程序已在物理 GPU 上正确加载,请运行 nvidia-smi 并验证当前未用于 GPU 直通的所有物理 GPU 是否在输出中列出。有关预期输出的详细信息,请参阅NVIDIA 系统管理界面 nvidia-smi

如果 nvidia-smi 未能报告预期输出,请检查 dmesg 中的 NVIDIA 内核驱动程序消息。

9.2.3. 检查 NVIDIA 内核驱动程序输出

来自 NVIDIA 内核驱动程序的信息和调试消息记录在内核日志中,前缀为 NVRMnvidia

在受支持的 Linux 风格 hypervisor 上运行 dmesg,并检查 NVRMnvidia 前缀

复制
已复制!
            

[root@xenserver ~]# dmesg | grep -E "NVRM|nvidia" [ 22.054928] nvidia: module license 'NVIDIA' taints kernel. [ 22.390414] NVRM: loading [ 22.829226] nvidia 0000:04:00.0: enabling device (0000 -> 0003) [ 22.829236] nvidia 0000:04:00.0: PCI INT A -> GSI 32 (level, low) -> IRQ 32 [ 22.829240] NVRM: This PCI I/O region assigned to your NVIDIA device is invalid: [ 22.829241] NVRM: BAR0 is 0M @ 0x0 (PCI:0000:00:04.0) [ 22.829243] NVRM: The system BIOS may have misconfigured your GPU.

9.2.4. 检查 NVIDIA 虚拟 GPU 管理器消息

来自 NVIDIA 虚拟 GPU 管理器的信息和调试消息记录到 hypervisor 的日志文件中,前缀为 vmiop

9.2.4.1. 检查 XenServer vGPU 管理器消息

对于 XenServer,NVIDIA 虚拟 GPU 管理器消息写入 /var/log/messages。

在 /var/log/messages 文件中查找 vmiop 前缀

复制
已复制!
            

[root@xenserver ~]# grep vmiop /var/log/messages Jan 20 10:34:03 localhost vgpu-ll[25698]: notice: vmiop_log: gpu-pci-id : 0000:05:00.0 Jan 20 10:34:03 localhost vgpu-ll[25698]: notice: vmiop_log: vgpu_type : quadro Jan 20 10:34:03 localhost vgpu-ll[25698]: notice: vmiop_log: Framebuffer: 0x74000000 Jan 20 10:34:03 localhost vgpu-ll[25698]: notice: vmiop_log: Virtual Device Id: 0xl3F2:0xll4E Jan 20 10:34:03 localhost vgpu-ll[25698]: notice: vmiop_log: ######## vGPU Manager Information: ######## Jan 20 10:34:03 localhost vgpu-ll[25698]: notice: vmiop_log: Driver Version: 550.144.02 Jan 20 10:34:03 localhost vgpu-ll[25698]: notice: vmiop_log: Init frame copy engine: syncing... Jan 20 10:35:31 localhost vgpu-ll[25698]: notice: vmiop_log: ######## Guest NVIDIA Driver Information: ######## Jan 20 10:35:31 localhost vgpu-ll[25698]: notice: vmiop_log: Driver Version: 553.62 Jan 20 10:35:36 localhost vgpu-ll[25698]: notice: vmiop_log: Current max guest pfn = 0xllbc84! Jan 20 10:35:40 localhost vgpu-ll[25698]: notice: vmiop_log: Current max guest pfn = 0xlleff0! [root@xenserver ~]#

9.2.4.2. 检查 Red Hat Enterprise Linux KVM vGPU 管理器消息

对于 Red Hat Enterprise Linux KVM,NVIDIA 虚拟 GPU 管理器消息写入 /var/log/messages。

在这些文件中查找 vmiop_log: 前缀

复制
已复制!
            

# grep vmiop_log: /var/log/messages [2025-01-17 04:46:12] vmiop_log: [2025-01-17 04:46:12] notice: vmiop-env: guest_max_gpfn:0x11f7ff [2025-01-17 04:46:12] vmiop_log: [2025-01-17 04:46:12] notice: pluginconfig: /usr/share/nvidia/vgx/grid_m60-1q.conf,gpu-pci-id=0000:06:00.0 [2025-01-17 04:46:12] vmiop_log: [2025-01-17 04:46:12] notice: Loading Plugin0: libnvidia-vgpu [2025-01-17 04:46:12] vmiop_log: [2025-01-17 04:46:12] notice: Successfully update the env symbols! [2025-01-17 04:46:12] vmiop_log: [2025-01-17 04:46:12] notice: vmiop_log: gpu-pci-id : 0000:06:00.0 [2025-01-17 04:46:12] vmiop_log: [2025-01-17 04:46:12] notice: vmiop_log: vgpu_type : quadro [2025-01-17 04:46:12] vmiop_log: [2025-01-17 04:46:12] notice: vmiop_log: Framebuffer: 0x38000000 [2025-01-17 04:46:12] vmiop_log: [2025-01-17 04:46:12] notice: vmiop_log: Virtual Device Id: 0x13F2:0x114D [2025-01-17 04:46:12] vmiop_log: [2025-01-17 04:46:12] notice: vmiop_log: ######## vGPU Manager Information: ######## [2025-01-17 04:46:12] vmiop_log: [2025-01-17 04:46:12] notice: vmiop_log: Driver Version: 550.144.02 [2025-01-17 04:46:12] vmiop_log: [2025-01-17 04:46:12] notice: vmiop_log: Init frame copy engine: syncing... [2025-01-17 05:09:14] vmiop_log: [2025-01-17 05:09:14] notice: vmiop_log: ######## Guest NVIDIA Driver Information: ######## [2025-01-17 05:09:14] vmiop_log: [2025-01-17 05:09:14] notice: vmiop_log: Driver Version: 553.62 [2025-01-17 05:09:14] vmiop_log: [2025-01-17 05:09:14] notice: vmiop_log: Current max guest pfn = 0x11a71f! [2025-01-17 05:12:09] vmiop_log: [2025-01-17 05:12:09] notice: vmiop_log: vGPU license state: (0x00000001) #

9.2.4.3. 检查 VMware vSphere vGPU 管理器消息

对于 VMware vSphere,NVIDIA 虚拟 GPU 管理器消息写入访客虚拟机的存储目录中的 vmware.log 文件。

在 vmware.log 文件中查找 vmiop 前缀

复制
已复制!
            

[root@esxi:~] grep vmiop /vmfs/volumes/datastore1/win7-vgpu-test1/vmware.log 2025-01-17T14:02:21.275Z| vmx| I120: DICT pciPassthru0.virtualDev = "vmiop" 2025-01-17T14:02:21.344Z| vmx| I120: GetPluginPath testing /usr/lib64/vmware/plugin/libvmx-vmiop.so 2025-01-17T14:02:21.344Z| vmx| I120: PluginLdr_LoadShared: Loaded shared plugin libvmx-vmiop.so from /usr/lib64/vmware/plugin/libvmx-vmiop.so 2025-01-17T14:02:21.344Z| vmx| I120: VMIOP: Loaded plugin libvmx-vmiop.so:VMIOP_InitModule 2025-01-17T14:02:21.359Z| vmx| I120: VMIOP: Initializing plugin vmiop-display 2025-01-17T14:02:21.365Z| vmx| I120: vmiop_log: gpu-pci-id : 0000:04:00.0 2025-01-17T14:02:21.365Z| vmx| I120: vmiop_log: vgpu_type : quadro 2025-01-17T14:02:21.365Z| vmx| I120: vmiop_log: Framebuffer: 0x74000000 2025-01-17T14:02:21.365Z| vmx| I120: vmiop_log: Virtual Device Id: 0x11B0:0x101B 2025-01-17T14:02:21.365Z| vmx| I120: vmiop_log: ######## vGPU Manager Information: ######## 2025-01-17T14:02:21.365Z| vmx| I120: vmiop_log: Driver Version: 550.144.02 2025-01-17T14:02:21.365Z| vmx| I120: vmiop_log: VGX Version: 17.5 2025-01-17T14:02:21.445Z| vmx| I120: vmiop_log: Init frame copy engine: syncing... 2025-01-17T14:02:37.031Z| vthread-12| I120: vmiop_log: ######## Guest NVIDIA Driver Information: ######## 2025-01-17T14:02:37.031Z| vthread-12| I120: vmiop_log: Driver Version: 553.62 2025-01-17T14:02:37.031Z| vthread-12| I120: vmiop_log: VGX Version: 17.5 2025-01-17T14:02:37.093Z| vthread-12| I120: vmiop_log: Clearing BAR1 mapping 2025-01-20T23:39:55.726Z| vmx| I120: VMIOP: Shutting down plugin vmiop-display [root@esxi:~]

9.3. 捕获配置数据以提交错误报告

向 NVIDIA 提交错误报告时,请通过以下方式之一捕获平台上显示错误的相关配置数据

  • 在任何受支持的 hypervisor 上,运行 nvidia-bug-report.sh。
  • 在 Citrix XenServer 上,创建 XenServer 服务器状态报告。

9.3.1. 通过运行 nvidia-bug-report.sh 捕获配置数据

nvidia-bug-report.sh 脚本将调试信息捕获到服务器上的 gzip 压缩日志文件中。

从 XenServer dom0 shell、支持 KVM hypervisor 的 Linux 主机 shell 或 VMware ESXi 主机 shell 运行 nvidia-bug-report.sh。

此示例在 XenServer 上运行 nvidia-bug-report.sh,但在任何受支持的 Linux with KVM hypervisor 或 VMware vSphere ESXi 上的过程都是相同的。

复制
已复制!
            

[root@xenserver ~]# nvidia-bug-report.sh nvidia-bug-report.sh will now collect information about your system and create the file 'nvidia-bug-report.log.gz' in the current directory. It may take several seconds to run. In some cases, it may hang trying to capture data generated dynamically by the Linux kernel and/or the NVIDIA kernel module. While the bug report log file will be incomplete if this happens, it may still contain enough data to diagnose your problem. For Xen open source/XCP users, if you are reporting a domain issue, please run: nvidia-bug-report.sh --domain-name <"domain_name"> Please include the 'nvidia-bug-report.log.gz' log file when reporting your bug via the NVIDIA Linux forum (see devtalk.nvidia.com) or by sending email to 'linux-bugs@nvidia.com'. Running nvidia-bug-report.sh... If the bug report script hangs after this point consider running with --safe-mode command line argument. complete [root@xenserver ~]#

9.3.2. 通过创建 XenServer 状态报告捕获配置数据

  1. 在 XenCenter 中,从工具菜单中,选择服务器状态报告
  2. 选择您要从中收集状态报告的 XenServer 实例。
  3. 选择要包含在报告中的数据。
  4. 要包含 NVIDIA vGPU 调试信息,请在报告内容项列表中选择 NVIDIA-logs
  5. 生成报告。

    图 28. 在 XenServer 状态报告中包含 NVIDIA 日志

    nvidia-logs-in-citrix-xenserver-status-report.png

9.4. 自 17.2 起:收集 XID 119 错误的故障排除信息

如果您遇到 XID 119 错误,请确保您已将 NVIDIA vGPU 软件图形驱动程序升级到提供专门用于排除这些错误的信息的版本。您可以向 NVIDIA 企业支持部门提供此信息,以排除这些错误。升级 NVIDIA vGPU 软件图形驱动程序提供这些错误的修复程序。

注意

XID 119 错误是由 GPU 系统处理器 (GSP) RPC 超时引起的。因此,这些错误仅在使用基于 NVIDIA Ada Lovelace 和 Hopper GPU 架构的 GPU 的 NVIDIA vGPU 部署中发生。


要收集 NVIDIA vGPU 软件图形驱动程序提供的有关 XID 119 错误的附加信息,请从 NVIDIA 企业支持部门下载并运行用于此目的的脚本。有关此脚本的更多信息,请参阅 NVIDIA 知识库中有关捕获 XID 119 和 XID 120 错误信息的文章。

A.1. 支持的 GPU 的虚拟 GPU 类型

NVIDIA vGPU 在受支持的 NVIDIA GPU 上作为许可产品提供。有关推荐的服务器平台和受支持的 GPU 的列表,请查阅 NVIDIA 虚拟 GPU 软件文档中受支持的 hypervisor 的发行说明。

A.1.1. NVIDIA A40 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

NVIDIA A40 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
A40-48Q 49152 1 1 66355200 7680×4320 2
5120×2880 或更低 4
A40-24Q 24576 2 2 66355200 7680×4320 2
5120×2880 或更低 4
A40-16Q 16384 3 2 66355200 7680×4320 2
5120×2880 或更低 4
A40-12Q 12288 4 4 66355200 7680×4320 2
5120×2880 或更低 4
A40-8Q 8192 6 4 66355200 7680×4320 2
5120×2880 或更低 4
A40-6Q 6144 8 8 58982400 7680×4320 1
5120×2880 或更低 4
A40-4Q 4096 12 8 58982400 7680×4320 1
5120×2880 或更低 4
A40-3Q 3072 16 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
A40-2Q 2048 24 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
A40-1Q 1024 325 30 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


NVIDIA A40 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
A40-2B 2048 24 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
A40-1B 1024 32 32 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


NVIDIA A40 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 最大显示分辨率 每个 vGPU 的虚拟显示器
A40-48A 49152 1 1 1280×10244 14
A40-24A 24576 2 2 1280×10244 14
A40-16A 16384 3 2 1280×10244 14
A40-12A 12288 4 4 1280×10244 14
A40-8A 8192 6 4 1280×10244 14
A40-6A 6144 8 8 1280×10244 14
A40-4A 4096 12 8 1280×10244 14
A40-3A 3072 16 16 1280×10244 14
A40-2A 2048 24 16 1280×10244 14
A40-1A 1024 325 32 1280×10244 14

A.1.2. NVIDIA A16 虚拟 GPU 类型

每板物理 GPU:4

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

NVIDIA A16 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
A16-16Q 16384 1 1 66355200 7680×4320 2
5120×2880 或更低 4
A16-8Q 8192 2 2 66355200 7680×4320 2
5120×2880 或更低 4
A16-4Q 4096 4 4 58982400 7680×4320 1
5120×2880 或更低 4
A16-2Q 2048 8 8 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
A16-1Q 1024 16 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


NVIDIA A16 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
A16-2B 2048 8 8 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
A16-1B 1024 16 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


NVIDIA A16 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 最大显示分辨率 每个 vGPU 的虚拟显示器
A16-16A 16384 1 1 1280×10244 14
A16-8A 8192 2 2 1280×10244 14
A16-4A 4096 4 4 1280×10244 14
A16-2A 2048 8 8 1280×10244 14
A16-1A 1024 16 16 1280×10244 14

A.1.3. NVIDIA A10 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

NVIDIA A10 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
A10-24Q 24576 1 1 66355200 7680×4320 2
5120×2880 或更低 4
A10-12Q 12288 2 2 66355200 7680×4320 2
5120×2880 或更低 4
A10-8Q 8192 3 2 66355200 7680×4320 2
5120×2880 或更低 4
A10-6Q 6144 4 4 58982400 7680×4320 1
5120×2880 或更低 4
A10-4Q 4096 6 4 58982400 7680×4320 1
5120×2880 或更低 4
A10-3Q 3072 8 8 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
A10-2Q 2048 12 8 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
A10-1Q 1024 24 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


NVIDIA A10 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
A10-2B 2048 12 8 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
A10-1B 1024 24 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


NVIDIA A10 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 最大显示分辨率 每个 vGPU 的虚拟显示器
A10-24A 24576 1 1 1280×10244 14
A10-12A 12288 2 2 1280×10244 14
A10-8A 8192 3 2 1280×10244 14
A10-6A 6144 4 4 1280×10244 14
A10-4A 4096 6 4 1280×10244 14
A10-3A 3072 8 8 1280×10244 14
A10-2A 2048 12 8 1280×10244 14
A10-1A 1024 24 16 1280×10244 14

A.1.4. NVIDIA A2 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

NVIDIA A2 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
A2-16Q 16384 1 1 66355200 7680×4320 2
5120×2880 或更低 4
A2-8Q 8192 2 2 66355200 7680×4320 2
5120×2880 或更低 4
A2-4Q 4096 4 4 58982400 7680×4320 1
5120×2880 或更低 4
A2-2Q 2048 8 8 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
A2-1Q 1024 16 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


NVIDIA A2 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
A2-2B 2048 8 8 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
A2-1B 1024 16 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


NVIDIA A2 的 A 系列虚拟 GPU 类型

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 最大显示分辨率 每个 vGPU 的虚拟显示器
A2-16A 16384 1 1 1280×10244 14
A2-8A 8192 2 2 1280×10244 14
A2-4A 4096 4 4 1280×10244 14
A2-2A 2048 8 8 1280×10244 14
A2-1A 1024 16 16 1280×10244 14

A.1.5. NVIDIA L40 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

NVIDIA L40 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
L40-48Q 49152 1 1 66355200 7680×4320 2
5120×2880 或更低 4
L40-24Q 24576 2 2 66355200 7680×4320 2
5120×2880 或更低 4
L40-16Q 16384 3 2 66355200 7680×4320 2
5120×2880 或更低 4
L40-12Q 12288 4 4 66355200 7680×4320 2
5120×2880 或更低 4
L40-8Q 8192 6 4 66355200 7680×4320 2
5120×2880 或更低 4
L40-6Q 6144 8 8 58982400 7680×4320 1
5120×2880 或更低 4
L40-4Q 4096 12 8 58982400 7680×4320 1
5120×2880 或更低 4
L40-3Q 3072 16 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
L40-2Q 2048 24 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
L40-1Q 1024 326 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


NVIDIA L40 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
L40-2B 2048 24 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
L40-1B 1024 32 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


NVIDIA L40 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 最大显示分辨率 每个 vGPU 的虚拟显示器
L40-48A 49152 1 1 1280×10244 14
L40-24A 24576 2 2 1280×10244 14
L40-16A 16384 3 2 1280×10244 14
L40-12A 12288 4 4 1280×10244 14
L40-8A 8192 6 4 1280×10244 14
L40-6A 6144 8 8 1280×10244 14
L40-4A 4096 12 8 1280×10244 14
L40-3A 3072 16 16 1280×10244 14
L40-2A 2048 24 16 1280×10244 14
L40-1A 1024 326 16 1280×10244 14

A.1.6. NVIDIA L40S 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

NVIDIA L40S 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
L40S-48Q 49152 1 1 66355200 7680×4320 2
5120×2880 或更低 4
L40S-24Q 24576 2 2 66355200 7680×4320 2
5120×2880 或更低 4
L40S-16Q 16384 3 2 66355200 7680×4320 2
5120×2880 或更低 4
L40S-12Q 12288 4 4 66355200 7680×4320 2
5120×2880 或更低 4
L40S-8Q 8192 6 4 66355200 7680×4320 2
5120×2880 或更低 4
L40S-6Q 6144 8 8 58982400 7680×4320 1
5120×2880 或更低 4
L40S-4Q 4096 12 8 58982400 7680×4320 1
5120×2880 或更低 4
L40S-3Q 3072 16 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
L40S-2Q 2048 24 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
L40S-1Q 1024 327 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


NVIDIA L40S 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
L40S-2B 2048 24 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
L40S-1B 1024 32 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


NVIDIA L40S 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 最大显示分辨率 每个 vGPU 的虚拟显示器
L40S-48A 49152 1 1 1280×10244 14
L40S-24A 24576 2 2 1280×10244 14
L40S-16A 16384 3 2 1280×10244 14
L40S-12A 12288 4 4 1280×10244 14
L40S-8A 8192 6 4 1280×10244 14
L40S-6A 6144 8 8 1280×10244 14
L40S-4A 4096 12 8 1280×10244 14
L40S-3A 3072 16 16 1280×10244 14
L40S-2A 2048 24 16 1280×10244 14
L40S-1A 1024 327 16 1280×10244 14

A.1.7. NVIDIA L20 和 NVIDIA L20 液冷虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

NVIDIA L20 和 NVIDIA L20 液冷 GPU 的虚拟 GPU 类型是相同的。

NVIDIA L20 和 NVIDIA L20 液冷的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
L20-48Q 49152 1 1 66355200 7680×4320 2
5120×2880 或更低 4
L20-24Q 24576 2 2 66355200 7680×4320 2
5120×2880 或更低 4
L20-16Q 16384 3 2 66355200 7680×4320 2
5120×2880 或更低 4
L20-12Q 12288 4 4 66355200 7680×4320 2
5120×2880 或更低 4
L20-8Q 8192 6 4 66355200 7680×4320 2
5120×2880 或更低 4
L20-6Q 6144 8 8 58982400 7680×4320 1
5120×2880 或更低 4
L20-4Q 4096 12 8 58982400 7680×4320 1
5120×2880 或更低 4
L20-3Q 3072 16 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
L20-2Q 2048 24 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
L20-1Q 1024 328 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


NVIDIA L20 和 NVIDIA L20 液冷的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
L20-2B 2048 24 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
L20-1B 1024 32 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


NVIDIA L20 和 NVIDIA L20 液冷的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 最大显示分辨率 每个 vGPU 的虚拟显示器
L20-48A 49152 1 1 1280×10244 14
L20-24A 24576 2 2 1280×10244 14
L20-16A 16384 3 2 1280×10244 14
L20-12A 12288 4 4 1280×10244 14
L20-8A 8192 6 4 1280×10244 14
L20-6A 6144 8 8 1280×10244 14
L20-4A 4096 12 8 1280×10244 14
L20-3A 3072 16 16 1280×10244 14
L20-2A 2048 24 16 1280×10244 14
L20-1A 1024 328 16 1280×10244 14

A.1.8. NVIDIA L4 虚拟 GPU 类型

每板物理 GPU:1

NVIDIA L4 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
L4-24Q 24576 1 1 66355200 7680×4320 2
5120×2880 或更低 4
L4-12Q 12288 2 2 66355200 7680×4320 2
5120×2880 或更低 4
L4-8Q 8192 3 2 66355200 7680×4320 2
5120×2880 或更低 4
L4-6Q 6144 4 4 58982400 7680×4320 1
5120×2880 或更低 4
L4-4Q 4096 6 4 58982400 7680×4320 1
5120×2880 或更低 4
L4-3Q 3072 8 8 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
L4-2Q 2048 12 8 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
L4-1Q 1024 24 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


NVIDIA L4 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
L4-2B 2048 12 8 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
L4-1B 1024 24 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


NVIDIA L4 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 最大显示分辨率 每个 vGPU 的虚拟显示器
L4-24A 24576 1 1 1280×10244 14
L4-12A 12288 2 2 1280×10244 14
L4-8A 8192 3 2 1280×10244 14
L4-6A 6144 4 4 1280×10244 14
L4-4A 4096 6 4 1280×10244 14
L4-3A 3072 8 8 1280×10244 14
L4-2A 2048 12 8 1280×10244 14
L4-1A 1024 24 16 1280×10244 14

A.1.9. NVIDIA L2 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

NVIDIA L2 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
L2-24Q 24576 1 1 66355200 7680×4320 2
5120×2880 或更低 4
L2-12Q 12288 2 2 66355200 7680×4320 2
5120×2880 或更低 4
L2-8Q 8192 3 2 66355200 7680×4320 2
5120×2880 或更低 4
L2-6Q 6144 4 4 58982400 7680×4320 1
5120×2880 或更低 4
L2-4Q 4096 6 4 58982400 7680×4320 1
5120×2880 或更低 4
L2-3Q 3072 8 8 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
L2-2Q 2048 12 8 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
L2-1Q 1024 24 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


NVIDIA L2 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
L2-2B 2048 12 8 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
L2-1B 1024 24 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


NVIDIA L2 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 最大显示分辨率 每个 vGPU 的虚拟显示器
L2-24A 24576 1 1 1280×10244 14
L2-12A 12288 2 2 1280×10244 14
L2-8A 8192 3 2 1280×10244 14
L2-6A 6144 4 4 1280×10244 14
L2-4A 4096 6 4 1280×10244 14
L2-3A 3072 8 8 1280×10244 14
L2-2A 2048 12 8 1280×10244 14
L2-1A 1024 24 16 1280×10244 14

A.1.10. NVIDIA RTX 6000 Ada 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

NVIDIA RTX 6000 Ada 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTX 6000 Ada-48Q 49152 1 1 66355200 7680×4320 2
5120×2880 或更低 4
RTX 6000 Ada-24Q 24576 2 2 66355200 7680×4320 2
5120×2880 或更低 4
RTX 6000 Ada-16Q 16384 3 2 66355200 7680×4320 2
5120×2880 或更低 4
RTX 6000 Ada-12Q 12288 4 4 66355200 7680×4320 2
5120×2880 或更低 4
RTX 6000 Ada-8Q 8192 6 4 66355200 7680×4320 2
5120×2880 或更低 4
RTX 6000 Ada-6Q 6144 8 8 58982400 7680×4320 1
5120×2880 或更低 4
RTX 6000 Ada-4Q 4096 12 8 58982400 7680×4320 1
5120×2880 或更低 4
RTX 6000 Ada-3Q 3072 16 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTX 6000 Ada-2Q 2048 24 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTX 6000 Ada-1Q 1024 329 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


NVIDIA RTX 6000 Ada 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTX 6000 Ada-2B 2048 24 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
RTX 6000 Ada-1B 1024 32 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


NVIDIA RTX 6000 Ada 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 最大显示分辨率 每个 vGPU 的虚拟显示器
RTX 6000 Ada-48A 49152 1 1 1280×10244 14
RTX 6000 Ada-24A 24576 2 2 1280×10244 14
RTX 6000 Ada-16A 16384 3 2 1280×10244 14
RTX 6000 Ada-12A 12288 4 4 1280×10244 14
RTX 6000 Ada-8A 8192 6 4 1280×10244 14
RTX 6000 Ada-6A 6144 8 8 1280×10244 14
RTX 6000 Ada-4A 4096 12 8 1280×10244 14
RTX 6000 Ada-3A 3072 16 16 1280×10244 14
RTX 6000 Ada-2A 2048 24 16 1280×10244 14
RTX 6000 Ada-1A 1024 329 16 1280×10244 14

A.1.11. NVIDIA RTX 5880 Ada 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

NVIDIA RTX 5880 Ada 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTX 5880 Ada-48Q 49152 1 1 66355200 7680×4320 2
5120×2880 或更低 4
RTX 5880 Ada-24Q 24576 2 2 66355200 7680×4320 2
5120×2880 或更低 4
RTX 5880 Ada-16Q 16384 3 2 66355200 7680×4320 2
5120×2880 或更低 4
RTX 5880 Ada-12Q 12288 4 4 66355200 7680×4320 2
5120×2880 或更低 4
RTX 5880 Ada-8Q 8192 6 4 66355200 7680×4320 2
5120×2880 或更低 4
RTX 5880 Ada-6Q 6144 8 8 58982400 7680×4320 1
5120×2880 或更低 4
RTX 5880 Ada-4Q 4096 12 8 58982400 7680×4320 1
5120×2880 或更低 4
RTX 5880 Ada-3Q 3072 16 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTX 5880 Ada-2Q 2048 24 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTX 5880 Ada-1Q 1024 3210 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


NVIDIA RTX 5880 Ada 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTX 5880 Ada-2B 2048 24 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
RTX 5880 Ada-1B 1024 32 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


NVIDIA RTX 5880 Ada 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 最大显示分辨率 每个 vGPU 的虚拟显示器
RTX 5880 Ada-48A 49152 1 1 1280×10244 14
RTX 5880 Ada-24A 24576 2 2 1280×10244 14
RTX 5880 Ada-16A 16384 3 2 1280×10244 14
RTX 5880 Ada-12A 12288 4 4 1280×10244 14
RTX 5880 Ada-8A 8192 6 4 1280×10244 14
RTX 5880 Ada-6A 6144 8 8 1280×10244 14
RTX 5880 Ada-4A 4096 12 8 1280×10244 14
RTX 5880 Ada-3A 3072 16 16 1280×10244 14
RTX 5880 Ada-2A 2048 24 16 1280×10244 14
RTX 5880 Ada-1A 1024 3210 16 1280×10244 14

A.1.12. NVIDIA RTX 5000 Ada 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

NVIDIA RTX 5000 Ada 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTX 5000 Ada-32Q 32768 1 1 66355200 7680×4320 2
5120×2880 或更低 4
RTX 5000 Ada-16Q 16384 2 2 66355200 7680×4320 2
5120×2880 或更低 4
RTX 5000 Ada-8Q 8192 4 4 66355200 7680×4320 2
5120×2880 或更低 4
RTX 5000 Ada-4Q 4096 8 8 58982400 7680×4320 1
5120×2880 或更低 4
RTX 5000 Ada-2Q 2048 16 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTX 5000 Ada-1Q 1024 32 32 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


NVIDIA RTX 5000 Ada 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTX 5000 Ada-2B 2048 16 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
RTX 5000 Ada-1B 1024 32 32 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


NVIDIA RTX 5000 Ada 的 A 系列虚拟 GPU 类型

所需许可证版本:vApps

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 最大显示分辨率 每个 vGPU 的虚拟显示器
RTX 5000 Ada-32A 32768 1 1 1280×10244 14
RTX 5000 Ada-16A 16384 2 2 1280×10244 14
RTX 5000 Ada-8A 8192 4 4 1280×10244 14
RTX 5000 Ada-4A 4096 8 8 1280×10244 14
RTX 5000 Ada-2A 2048 16 16 1280×10244 14
RTX 5000 Ada-1A 1024 32 32 1280×10244 14

A.1.13. NVIDIA RTX A6000 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

NVIDIA RTX A6000 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTXA6000-48Q 49152 1 1 66355200 7680×4320 2
5120×2880 或更低 4
RTXA6000-24Q 24576 2 2 66355200 7680×4320 2
5120×2880 或更低 4
RTXA6000-16Q 16384 3 2 66355200 7680×4320 2
5120×2880 或更低 4
RTXA6000-12Q 12288 4 4 66355200 7680×4320 2
5120×2880 或更低 4
RTXA6000-8Q 8192 6 4 66355200 7680×4320 2
5120×2880 或更低 4
RTXA6000-6Q 6144 8 8 58982400 7680×4320 1
5120×2880 或更低 4
RTXA6000-4Q 4096 12 8 58982400 7680×4320 1
5120×2880 或更低 4
RTXA6000-3Q 3072 16 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTXA6000-2Q 2048 24 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTXA6000-1Q 1024 3211 30 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


NVIDIA RTX A6000 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTXA6000-2B 2048 24 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
RTXA6000-1B 1024 32 30 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


NVIDIA RTX A6000 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 最大显示分辨率 每个 vGPU 的虚拟显示器
RTXA6000-48A 49152 1 1 1280×10244 14
RTXA6000-24A 24576 2 2 1280×10244 14
RTXA6000-16A 16384 3 2 1280×10244 14
RTXA6000-12A 12288 4 4 1280×10244 14
RTXA6000-8A 8192 6 4 1280×10244 14
RTXA6000-6A 6144 8 8 1280×10244 14
RTXA6000-4A 4096 12 8 1280×10244 14
RTXA6000-3A 3072 16 16 1280×10244 14
RTXA6000-2A 2048 24 16 1280×10244 14
RTXA6000-1A 1024 3211 30 1280×10244 14

A.1.14. NVIDIA RTX A5500 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

NVIDIA RTX A5500 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTXA5500-24Q 24576 1 1 66355200 7680×4320 2
5120×2880 或更低 4
RTXA5500-12Q 12288 2 2 66355200 7680×4320 2
5120×2880 或更低 4
RTXA5500-8Q 8192 3 2 66355200 7680×4320 2
5120×2880 或更低 4
RTXA5500-6Q 6144 4 4 58982400 7680×4320 1
5120×2880 或更低 4
RTXA5500-4Q 4096 6 4 58982400 7680×4320 1
5120×2880 或更低 4
RTXA5500-3Q 3072 8 8 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTXA5500-2Q 2048 12 8 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTXA5500-1Q 1024 24 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


NVIDIA RTX A5500 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTXA5500-2B 2048 12 8 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
RTXA5500-1B 1024 24 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


NVIDIA RTX A5500 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 最大显示分辨率 每个 vGPU 的虚拟显示器
RTXA5500-24A 24576 1 1 1280×10244 14
RTXA5500-12A 12288 2 2 1280×10244 14
RTXA5500-8A 8192 3 2 1280×10244 14
RTXA5500-6A 6144 4 4 1280×10244 14
RTXA5500-4A 4096 6 4 1280×10244 14
RTXA5500-3A 3072 8 8 1280×10244 14
RTXA5500-2A 2048 12 8 1280×10244 14
RTXA5500-1A 1024 24 16 1280×10244 14

A.1.15. NVIDIA RTX A5000 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

此 GPU 支持混合大小模式。

NVIDIA RTX A5000 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTXA5000-24Q 24576 1 1 66355200 7680×4320 2
5120×2880 或更低 4
RTXA5000-12Q 12288 2 2 66355200 7680×4320 2
5120×2880 或更低 4
RTXA5000-8Q 8192 3 2 66355200 7680×4320 2
5120×2880 或更低 4
RTXA5000-6Q 6144 4 4 58982400 7680×4320 1
5120×2880 或更低 4
RTXA5000-4Q 4096 6 4 58982400 7680×4320 1
5120×2880 或更低 4
RTXA5000-3Q 3072 8 8 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTXA5000-2Q 2048 12 8 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTXA5000-1Q 1024 24 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


NVIDIA RTX A5000 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTXA5000-2B 2048 12 8 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
RTXA5000-1B 1024 24 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


NVIDIA RTX A5000 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 最大显示分辨率 每个 vGPU 的虚拟显示器
RTXA5000-24A 24576 1 1 1280×10244 14
RTXA5000-12A 12288 2 2 1280×10244 14
RTXA5000-8A 8192 3 2 1280×10244 14
RTXA5000-6A 6144 4 4 1280×10244 14
RTXA5000-4A 4096 6 4 1280×10244 14
RTXA5000-3A 3072 8 8 1280×10244 14
RTXA5000-2A 2048 12 8 1280×10244 14
RTXA5000-1A 1024 24 16 1280×10244 14

A.1.16. Tesla M10 虚拟 GPU 类型

每板物理 GPU:4

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

此 GPU 支持混合大小模式。

Tesla M10 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
M10-8Q 8192 1 36864000 5120×2880 2
3840×2400 或更低 4
M10-4Q 4096 2 36864000 5120×2880 2
3840×2400 或更低 4
M10-2Q 2048 4 36864000 5120×2880 2
3840×2400 或更低 4
M10-1Q 1024 8 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
M10-0Q 512 16 8192000 2560×1600 21


Tesla M10 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
M10-2B 2048 4 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
M10-2B42 2048 4 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
M10-1B 1024 8 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43
M10-1B42 1024 8 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43
M10-0B 512 16 8192000 2560×1600 21


Tesla M10 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 最大显示分辨率 每个 vGPU 的虚拟显示器
M10-8A 8192 1 1280×10244 14
M10-4A 4096 2 1280×10244 14
M10-2A 2048 4 1280×10244 14
M10-1A 1024 8 1280×10244 14

A.1.17. Tesla T4 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

此 GPU 支持混合大小模式。

Tesla T4 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
T4-16Q 16384 1 66355200 7680×4320 2
5120×2880 或更低 4
T4-8Q 8192 2 66355200 7680×4320 2
5120×2880 或更低 4
T4-4Q 4096 4 58982400 7680×4320 1
5120×2880 或更低 4
T4-2Q 2048 8 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
T4-1Q 1024 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


Tesla T4 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
T4-2B 2048 8 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
T4-2B42 2048 8 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
T4-1B 1024 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43
T4-1B42 1024 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


Tesla T4 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 最大显示分辨率 每个 vGPU 的虚拟显示器
T4-16A 16384 1 1280×10244 14
T4-8A 8192 2 1280×10244 14
T4-4A 4096 4 1280×10244 14
T4-2A 2048 8 1280×10244 14
T4-1A 1024 16 1280×10244 14

A.1.18. Tesla V100 SXM2 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

此 GPU 支持混合大小模式。

Tesla V100 SXM2 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
V100X-16Q 16384 1 66355200 7680×4320 2
5120×2880 或更低 4
V100X-8Q 8192 2 66355200 7680×4320 2
5120×2880 或更低 4
V100X-4Q 4096 4 58982400 7680×4320 1
5120×2880 或更低 4
V100X-2Q 2048 8 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
V100X-1Q 1024 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


Tesla V100 SXM2 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
V100X-2B 2048 8 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
V100X-2B42 2048 8 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
V100X-1B 1024 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43
V100X-1B42 1024 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


Tesla V100 SXM2 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 最大显示分辨率 每个 vGPU 的虚拟显示器
V100X-16A 16384 1 1280×10244 14
V100X-8A 8192 2 1280×10244 14
V100X-4A 4096 4 1280×10244 14
V100X-2A 2048 8 1280×10244 14
V100X-1A 1024 16 1280×10244 14

A.1.19. Tesla V100 SXM2 32GB 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

此 GPU 支持混合大小模式。

适用于 Tesla V100 SXM2 32GB 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
V100DX-32Q 32768 1 66355200 7680×4320 2
5120×2880 或更低 4
V100DX-16Q 16384 2 66355200 7680×4320 2
5120×2880 或更低 4
V100DX-8Q 8192 4 66355200 7680×4320 2
5120×2880 或更低 4
V100DX-4Q 4096 8 58982400 7680×4320 1
5120×2880 或更低 4
V100DX-2Q 2048 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
V100DX-1Q 1024 32 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


适用于 Tesla V100 SXM2 32GB 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
V100DX-2B 2048 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
V100DX-2B42 2048 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
V100DX-1B 1024 32 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43
V100DX-1B42 1024 32 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


适用于 Tesla V100 SXM2 32GB 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 最大显示分辨率 每个 vGPU 的虚拟显示器
V100DX-32A 32768 1 1280×10244 14
V100DX-16A 16384 2 1280×10244 14
V100DX-8A 8192 4 1280×10244 14
V100DX-4A 4096 8 1280×10244 14
V100DX-2A 2048 16 1280×10244 14
V100DX-1A 1024 32 1280×10244 14

A.1.20. Tesla V100 PCIe 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

此 GPU 支持混合大小模式。

适用于 Tesla V100 PCIe 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
V100-16Q 16384 1 66355200 7680×4320 2
5120×2880 或更低 4
V100-8Q 8192 2 66355200 7680×4320 2
5120×2880 或更低 4
V100-4Q 4096 4 58982400 7680×4320 1
5120×2880 或更低 4
V100-2Q 2048 8 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
V100-1Q 1024 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


适用于 Tesla V100 PCIe 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
V100-2B 2048 8 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
V100-2B42 2048 8 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
V100-1B 1024 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43
V100-1B42 1024 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


适用于 Tesla V100 PCIe 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 最大显示分辨率 每个 vGPU 的虚拟显示器
V100-16A 16384 1 1280×10244 14
V100-8A 8192 2 1280×10244 14
V100-4A 4096 4 1280×10244 14
V100-2A 2048 8 1280×10244 14
V100-1A 1024 16 1280×10244 14

A.1.21. Tesla V100 PCIe 32GB 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

此 GPU 支持混合大小模式。

适用于 Tesla V100 PCIe 32GB 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
V100D-32Q 32768 1 66355200 7680×4320 2
5120×2880 或更低 4
V100D-16Q 16384 2 66355200 7680×4320 2
5120×2880 或更低 4
V100D-8Q 8192 4 66355200 7680×4320 2
5120×2880 或更低 4
V100D-4Q 4096 8 58982400 7680×4320 1
5120×2880 或更低 4
V100D-2Q 2048 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
V100D-1Q 1024 32 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


适用于 Tesla V100 PCIe 32GB 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
V100D-2B 2048 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
V100D-2B42 2048 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
V100D-1B 1024 32 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43
V100D-1B42 1024 32 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


适用于 Tesla V100 PCIe 32GB 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 最大显示分辨率 每个 vGPU 的虚拟显示器
V100D-32A 32768 1 1280×10244 14
V100D-16A 16384 2 1280×10244 14
V100D-8A 8192 4 1280×10244 14
V100D-4A 4096 8 1280×10244 14
V100D-2A 2048 16 1280×10244 14
V100D-1A 1024 32 1280×10244 14

A.1.22. Tesla V100S PCIe 32GB 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

此 GPU 支持混合大小模式。

适用于 Tesla V100S PCIe 32GB 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
V100S-32Q 32768 1 66355200 7680×4320 2
5120×2880 或更低 4
V100S-16Q 16384 2 66355200 7680×4320 2
5120×2880 或更低 4
V100S-8Q 8192 4 66355200 7680×4320 2
5120×2880 或更低 4
V100S-4Q 4096 8 58982400 7680×4320 1
5120×2880 或更低 4
V100S-2Q 2048 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
V100S-1Q 1024 32 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


适用于 Tesla V100S PCIe 32GB 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
V100S-2B 2048 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
V100S-1B 1024 32 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


适用于 Tesla V100S PCIe 32GB 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 最大显示分辨率 每个 vGPU 的虚拟显示器
V100S-32A 32768 1 1280×10244 14
V100S-16A 16384 2 1280×10244 14
V100S-8A 8192 4 1280×10244 14
V100S-4A 4096 8 1280×10244 14
V100S-2A 2048 16 1280×10244 14
V100S-1A 1024 32 1280×10244 14

A.1.23. Tesla V100 FHHL 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

此 GPU 支持混合大小模式。

适用于 Tesla V100 FHHL 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
V100L-16Q 16384 1 66355200 7680×4320 2
5120×2880 或更低 4
V100L-8Q 8192 2 66355200 7680×4320 2
5120×2880 或更低 4
V100L-4Q 4096 4 58982400 7680×4320 1
5120×2880 或更低 4
V100L-2Q 2048 8 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
V100L-1Q 1024 16 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


适用于 Tesla V100 FHHL 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
V100L-2B 2048 8 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
V100L-2B42 2048 8 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
V100L-1B 1024 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43
V100L-1B42 1024 16 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


适用于 Tesla V100 FHHL 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 最大显示分辨率 每个 vGPU 的虚拟显示器
V100L-16A 16384 1 1280×10244 14
V100L-8A 8192 2 1280×10244 14
V100L-4A 4096 4 1280×10244 14
V100L-2A 2048 8 1280×10244 14
V100L-1A 1024 16 1280×10244 14

A.1.24. Quadro RTX 8000 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

此 GPU 支持混合大小模式。

适用于 Quadro RTX 8000 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTX8000-48Q 49152 1 66355200 7680×4320 2
5120×2880 或更低 4
RTX8000-24Q 24576 2 66355200 7680×4320 2
5120×2880 或更低 4
RTX8000-16Q 16384 3 66355200 7680×4320 2
5120×2880 或更低 4
RTX8000-12Q 12288 4 66355200 7680×4320 2
5120×2880 或更低 4
RTX8000-8Q 8192 6 66355200 7680×4320 2
5120×2880 或更低 4
RTX8000-6Q 6144 8 58982400 7680×4320 1
5120×2880 或更低 4
RTX8000-4Q 4096 12 58982400 7680×4320 1
5120×2880 或更低 4
RTX8000-3Q 3072 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTX8000-2Q 2048 24 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTX8000-1Q 1024 3212 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


适用于 Quadro RTX 8000 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTX8000-2B 2048 24 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
RTX8000-1B 1024 32 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


适用于 Quadro RTX 8000 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 最大显示分辨率 每个 vGPU 的虚拟显示器
RTX8000-48A 49152 1 1280×10244 14
RTX8000-24A 24576 2 1280×10244 14
RTX8000-16A 16384 3 1280×10244 14
RTX8000-12A 12288 4 1280×10244 14
RTX8000-8A 8192 6 1280×10244 14
RTX8000-6A 6144 8 1280×10244 14
RTX8000-4A 4096 12 1280×10244 14
RTX8000-3A 3072 16 1280×10244 14
RTX8000-2A 2048 24 1280×10244 14
RTX8000-1A 1024 3212 1280×10244 14

A.1.25. Quadro RTX 8000 Passive 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

此 GPU 支持混合大小模式。

适用于 Quadro RTX 8000 Passive 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTX8000P-48Q 49152 1 66355200 7680×4320 2
5120×2880 或更低 4
RTX8000P-24Q 24576 2 66355200 7680×4320 2
5120×2880 或更低 4
RTX8000P-16Q 16384 3 66355200 7680×4320 2
5120×2880 或更低 4
RTX8000P-12Q 12288 4 66355200 7680×4320 2
5120×2880 或更低 4
RTX8000P-8Q 8192 6 66355200 7680×4320 2
5120×2880 或更低 4
RTX8000P-6Q 6144 8 58982400 7680×4320 1
5120×2880 或更低 4
RTX8000P-4Q 4096 12 58982400 7680×4320 1
5120×2880 或更低 4
RTX8000P-3Q 3072 16 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTX8000P-2Q 2048 24 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTX8000P-1Q 1024 3213 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


适用于 Quadro RTX 8000 Passive 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTX8000P-2B 2048 24 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
RTX8000P-1B 1024 32 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


适用于 Quadro RTX 8000 Passive 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 最大显示分辨率 每个 vGPU 的虚拟显示器
RTX8000P-48A 49152 1 1280×10244 14
RTX8000P-24A 24576 2 1280×10244 14
RTX8000P-16A 16384 3 1280×10244 14
RTX8000P-12A 12288 4 1280×10244 14
RTX8000P-8A 8192 6 1280×10244 14
RTX8000P-6A 6144 8 1280×10244 14
RTX8000P-4A 4096 12 1280×10244 14
RTX8000P-3A 3072 16 1280×10244 14
RTX8000P-2A 2048 24 1280×10244 14
RTX8000P-1A 1024 3213 1280×10244 14

A.1.26. Quadro RTX 6000 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

此 GPU 支持混合大小模式。

适用于 Quadro RTX 6000 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTX6000-24Q 24576 1 66355200 7680×4320 2
5120×2880 或更低 4
RTX6000-12Q 12288 2 66355200 7680×4320 2
5120×2880 或更低 4
RTX6000-8Q 8192 3 66355200 7680×4320 2
5120×2880 或更低 4
RTX6000-6Q 6144 4 58982400 7680×4320 1
5120×2880 或更低 4
RTX6000-4Q 4096 6 58982400 7680×4320 1
5120×2880 或更低 4
RTX6000-3Q 3072 8 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTX6000-2Q 2048 12 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTX6000-1Q 1024 24 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


适用于 Quadro RTX 6000 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTX6000-2B 2048 12 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
RTX6000-1B 1024 24 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


适用于 Quadro RTX 6000 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 最大显示分辨率 每个 vGPU 的虚拟显示器
RTX6000-24A 24576 1 1280×10244 14
RTX6000-12A 12288 2 1280×10244 14
RTX6000-8A 8192 3 1280×10244 14
RTX6000-6A 6144 4 1280×10244 14
RTX6000-4A 4096 6 1280×10244 14
RTX6000-3A 3072 8 1280×10244 14
RTX6000-2A 2048 12 1280×10244 14
RTX6000-1A 1024 24 1280×10244 14

A.1.27. Quadro RTX 6000 Passive 虚拟 GPU 类型

每板物理 GPU:1

每板最大 vGPU 数量是每 GPU 最大 vGPU 数量与每板物理 GPU 数量的乘积。

此 GPU 支持混合大小模式。

适用于 Quadro RTX 6000 Passive 的 Q 系列虚拟 GPU 类型

预期用例:虚拟工作站

所需许可证版本:vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTX6000P-24Q 24576 1 66355200 7680×4320 2
5120×2880 或更低 4
RTX6000P-12Q 12288 2 66355200 7680×4320 2
5120×2880 或更低 4
RTX6000P-8Q 8192 3 66355200 7680×4320 2
5120×2880 或更低 4
RTX6000P-6Q 6144 4 58982400 7680×4320 1
5120×2880 或更低 4
RTX6000P-4Q 4096 6 58982400 7680×4320 1
5120×2880 或更低 4
RTX6000P-3Q 3072 8 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTX6000P-2Q 2048 12 36864000 7680×4320 1
5120×2880 2
3840×2400 或更低 4
RTX6000P-1Q 1024 24 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4


适用于 Quadro RTX 6000 Passive 的 B 系列虚拟 GPU 类型

预期用例:虚拟桌面

所需许可证版本:vPC 或 vWS

这些 vGPU 类型支持基于可用像素数的最大组合分辨率,这由其帧缓冲区大小决定。您可以选择使用少量高分辨率显示器或大量低分辨率显示器与这些 vGPU 类型。每个 vGPU 的最大显示器数量基于所有显示器都具有相同分辨率的配置。有关具有混合显示器分辨率的配置示例,请参阅B 系列和 Q 系列 vGPU 的混合显示器配置

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 可用像素数 显示分辨率 每个 vGPU 的虚拟显示器
RTX6000P-2B 2048 12 18432000 5120×2880 1
3840×2400 2
3840×2160 2
2560×1600 或更低 4
RTX6000P-1B 1024 24 16384000 5120×2880 1
3840×2400 1
3840×2160 1
2560×1600 或更低 43


适用于 Quadro RTX 6000 Passive 的 A 系列虚拟 GPU 类型

预期用例:虚拟应用程序

所需许可证版本:vApps

这些 vGPU 类型支持具有固定最大分辨率的单个显示器。

虚拟 GPU 类型 帧缓冲区 (MB) 每个 GPU 的最大 vGPU 数 最大显示分辨率 每个 vGPU 的虚拟显示器
RTX6000P-24A 24576 1 1280×10244 14
RTX6000P-12A 12288 2 1280×10244 14
RTX6000P-8A 8192 3 1280×10244 14
RTX6000P-6A 6144 4 1280×10244 14
RTX6000P-4A 4096 6 1280×10244 14
RTX6000P-3A 3072 8 1280×10244 14
RTX6000P-2A 2048 12 1280×10244 14
RTX6000P-1A 1024 24 1280×10244 14

A.2. B 系列和 Q 系列 vGPU 的混合显示配置

A.2.1. B 系列 vGPU 的混合显示配置

虚拟 GPU 类型 可用像素数 可用像素数基础 最大显示器数量 混合显示器配置示例
-2B 17694720 2 个 4096×2160 显示器 4 1 个 4096×2160 显示器加 2 个 2560×1600 显示器
-2B4 17694720 2 个 4096×2160 显示器 4 1 个 4096×2160 显示器加 2 个 2560×1600 显示器
-1B 16384000 4 个 2560×1600 显示器 4 1 个 4096×2160 显示器加 1 个 2560×1600 显示器
-1B4 16384000 4 个 2560×1600 显示器 4 1 个 4096×2160 显示器加 1 个 2560×1600 显示器
-0B 8192000 2 个 2560×1600 显示器 2 1 个 2560×1600 显示器加 1 个 1280×1024 显示器

A.2.2. 基于 NVIDIA Maxwell 架构的 Q 系列 vGPU 的混合显示配置

虚拟 GPU 类型 可用像素数 可用像素数基础 最大显示器数量 混合显示器配置示例
-8Q 35389440 4 个 4096×2160 显示器 4 1 个 5120×2880 显示器加 2 个 4096×2160 显示器
-4Q 35389440 4 个 4096×2160 显示器 4 1 个 5120×2880 显示器加 2 个 4096×2160 显示器
-2Q 35389440 4 个 4096×2160 显示器 4 1 个 5120×2880 显示器加 2 个 4096×2160 显示器
-1Q 17694720 2 个 4096×2160 显示器 4 1 个 4096×2160 显示器加 2 个 2560×1600 显示器
-0Q 8192000 2 个 2560×1600 显示器 2 1 个 2560×1600 显示器加 1 个 1280×1024 显示器

A.2.3. 基于 NVIDIA Maxwell 之后架构的 Q 系列 vGPU 的混合显示配置

虚拟 GPU 类型 可用像素数 可用像素数基础 最大显示器数量 混合显示器配置示例
-8Q 及以上 66355200 2 个 7680×4320 显示器 4 1 个 7680×4320 显示器加 2 个 5120×2880 显示器
1 个 7680×4320 显示器加 3 个 4096×2160 显示器
-6Q 58982400 4 个 5120×2880 显示器 4 1 个 7680×4320 显示器加 1 个 5120×2880 显示器
-4Q 58982400 4 个 5120×2880 显示器 4 1 个 7680×4320 显示器加 1 个 5120×2880 显示器
-3Q 35389440 4 个 4096×2160 显示器 4 1 个 5120×2880 显示器加 2 个 4096×2160 显示器
-2Q 35389440 4 个 4096×2160 显示器 4 1 个 5120×2880 显示器加 2 个 4096×2160 显示器
-1Q 17694720 2 个 4096×2160 显示器 4 1 个 4096×2160 显示器加 2 个 2560×1600 显示器

A.3. 混合大小模式下 GPU 的 vGPU 放置

混合大小模式下 GPU 支持的 vGPU 放置取决于 GPU 拥有的帧缓冲区总量。

A.3.1. 具有 94 GB 帧缓冲区的 GPU 的 vGPU 放置

放置区域大小:94

vGPU 大小(MB 帧缓冲区) 放置大小 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 支持的放置 ID
96246 94 1 1 0
48128 47 2 2 0, 47
23552 23 4 4 0, 24, 47, 71
15360 15 6 4 0, 32, 47, 79
11264 11 8 8 0, 12, 23, 36, 47, 59, 70, 83
6,144 6 15 8 0, 17, 23, 41, 47, 64, 70, 88
4,096 4 23 16 0, 7, 11, 19, 23, 31, 35, 43, 47, 54, 58, 66, 70, 78, 82, 90

下图显示了在混合大小模式下,具有 94 GB 总帧缓冲区的 GPU 上,每种 vGPU 大小支持的放置。

placement-map-for-94-gb-gpus.png

A.3.2. 具有 80 GB 帧缓冲区的 GPU 的 vGPU 放置

放置区域大小:80

vGPU 大小(MB 帧缓冲区) 放置大小 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 支持的放置 ID
81920 80 1 1 0
40960 40 2 2 0, 40
20480 20 4 4 0, 20, 40, 60
16384 16 5 4 0, 24, 40, 64
10240 10 8 8 0, 10, 20, 30, 40, 50, 60, 70
8192 8 10 8 0, 12, 20, 32, 40, 52, 60, 72
5120 5 16 16 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75
4096 4 20 16 0, 6, 10, 16, 20, 26, 30, 36, 40, 46, 50, 56, 60, 66, 70, 76

下图显示了在混合大小模式下,具有 80 GB 总帧缓冲区的 GPU 上,每种 vGPU 大小支持的放置。

placement-map-for-80-gb-gpus.png

A.3.3. 具有 48 GB 帧缓冲区的 GPU 的 vGPU 放置

放置区域大小:48

注意

当处于混合大小模式时,基于 Ada Lovelace GPU 架构的 GPU 上允许的最大 1024 MB 帧缓冲区 vGPU 数量低于其他 GPU 架构。因此,这些 vGPU 在基于 Ada Lovelace GPU 架构的 GPU 上的支持放置 ID 与其他 GPU 架构不同。


vGPU 大小(MB 帧缓冲区) 放置大小 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 支持的放置 ID
49152 48 1 1 0
24576 24 2 2 0, 24
16384 16 3 2 0, 32
12288 12 4 4 0, 12, 24, 36
8192 8 6 4 0, 16, 24, 40
6144 6 8 8 0, 6, 12, 18, 24, 30, 36, 42
4096 4 12 8 0, 8, 12, 20, 24, 32, 36, 44
3072 3 16 16 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45
2048 2 24 16 0, 4, 6, 10, 12, 16, 18, 22, 24, 28, 30, 34, 36, 40, 42, 46
1024 1 32 GPU 架构 Ada Lovelace 之外:30 GPU 架构 Ada Lovelace 之外:0、2、3、5、6、9、11、12、14、15、17、18、20、21、23、24、26、27、29、30、33、35、36、38、39、41、42、44、45、47
Ada Lovelace GPU 架构:16 Ada Lovelace GPU 架构:0、5、6、11、12、17、18、23、24、29、30、35、36、41、42、47

下图显示了在混合大小模式下,具有 48 GB 总帧缓冲区的、基于 Ada Lovelace 之外的 GPU 架构的 GPU 上,每种 vGPU 大小支持的放置。

placement-map-for-48-gb-gpus.png

下图显示了在混合大小模式下,具有 48 GB 总帧缓冲区的、基于 Ada Lovelace GPU 架构的 GPU 上,每种 vGPU 大小支持的放置。

placement-map-for-48-gb-gpus-ada.png

A.3.4. 具有 40 GB 帧缓冲区的 GPU 的 vGPU 放置

放置区域大小:40

vGPU 大小(MB 帧缓冲区) 放置大小 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 支持的放置 ID
40960 40 1 1 0
20480 20 2 2 0, 20
10240 10 4 4 0, 10, 20, 30
8192 8 5 4 0, 12, 20, 32
5120 5 8 8 0, 5, 10, 15, 20, 25, 30, 35
4096 4 10 8 0, 6, 10, 16, 20, 26, 30, 36

下图显示了在混合大小模式下,具有 40 GB 总帧缓冲区的 GPU 上,每种 vGPU 大小支持的放置。

placement-map-for-40-gb-gpus.png

A.3.5. 具有 32 GB 帧缓冲区的 GPU 的 vGPU 放置

放置区域大小:32

vGPU 大小(MB 帧缓冲区) 放置大小 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 支持的放置 ID
32768 32 1 1 0
16384 16 2 2 0, 16
8192 8 4 4 0, 8, 16, 24
4096 4 8 8 0, 4, 8, 12, 16, 20, 24, 28
2048 2 16 16 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30
1024 1 32 32 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31

下图显示了在混合大小模式下,具有 32 GB 总帧缓冲区的 GPU 上,每种 vGPU 大小支持的放置。

placement-map-for-32-gb-gpus.png

A.3.6. 具有 24 GB 帧缓冲区的 GPU 的 vGPU 放置

放置区域大小:24

vGPU 大小(MB 帧缓冲区) 放置大小 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 支持的放置 ID
24576 24 1 1 0
12288 12 2 2 0, 12
8192 8 3 2 0, 16
6144 6 4 4 0, 6, 12, 18
4096 4 6 4 0, 8, 12, 20
3072 3 8 8 0, 3, 6, 9, 12, 15, 18, 21
2048 2 12 8 0, 4, 6, 10, 12, 16, 18, 22
1024 1 24 16 0, 2, 3, 5, 6, 8, 9, 11, 12, 14, 15, 17, 18, 20, 21, 23

下图显示了在混合大小模式下,具有 24 GB 总帧缓冲区的 GPU 上,每种 vGPU 大小支持的放置。

placement-map-for-24-gb-gpus.png

A.3.7. 具有 20 GB 帧缓冲区的 GPU 的 vGPU 放置

放置区域大小:20

vGPU 大小(MB 帧缓冲区) 放置大小 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 支持的放置 ID
20480 20 1 1 0
10240 10 2 2 0, 10
5120 5 4 4 0, 5, 10, 15
4096 4 5 4 0, 6, 10, 16
2048 2 10 8 0, 3, 5, 8, 10, 13, 15, 18
1024 1 20 16 0, 1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 14, 15, 16, 17, 19

下图显示了在混合大小模式下,具有 20 GB 总帧缓冲区的 GPU 上,每种 vGPU 大小支持的放置。

placement-map-for-20-gb-gpus.png

A.3.8. 具有 16 GB 帧缓冲区的 GPU 的 vGPU 放置

放置区域大小:16

vGPU 大小(MB 帧缓冲区) 放置大小 等尺寸模式下每 GPU 最大 vGPU 数量 混合尺寸模式下每 GPU 最大 vGPU 数量 支持的放置 ID
16384 16 1 1 0
8192 8 2 2 0, 8
4096 4 4 4 0, 4, 8, 12
2048 2 8 8 0, 2, 4, 6, 8, 10, 12, 14
1024 1 16 16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15

下图显示了在混合大小模式下,具有 16 GB 总帧缓冲区的 GPU 上,每种 vGPU 大小支持的放置。

placement-map-for-16-gb-gpus.png

将物理硬件资源分配给虚拟机和 vGPU 的策略可以提高使用 NVIDIA vGPU 运行的虚拟机的性能。这些策略包括将 VM CPU 核心绑定到非统一内存访问 (NUMA) 平台上的物理核心、将 VM 分配给 CPU 以及将 vGPU 分配给物理 GPU 的策略。XenServer 和 VMware vSphere 支持这些分配策略。

B.1. NUMA 考虑因素

服务器平台通常实现多个 CPU 插槽,每个 CPU 插槽都具有本地系统内存和 PCI Express 扩展槽,如图 图 29 所示:

图 29. NUMA 服务器平台

numa-server-platform.png

这些平台通常配置为在非统一内存访问 (NUMA) 模式下运行;物理内存按顺序排列在地址空间中,连接到每个插槽的所有内存都显示在单个连续的地址块中。从 CPU 或 GPU 访问某个内存范围的成本各不相同;连接到与 CPU 或 GPU 同一插槽的内存的访问延迟低于另一个 CPU 插槽上的内存,因为对远程内存的访问还必须遍历 CPU 插槽之间的互连。

B.1.1. 在具有 XenServer 的 NUMA 平台上获得最佳性能

为了在 NUMA 平台上获得最佳性能,NVIDIA 建议将 VM vCPU 核心绑定到物理 GPU 所连接的同一 CPU 插槽上的物理核心,物理 GPU 托管 VM 的 vGPU。例如,作为参考,在物理 GPU 0 或 1 上分配了 vGPU 的 VM 应将其 vCPU 绑定到 CPU 插槽 0 上的 CPU 核心。同样,在物理 GPU 2 或 3 上分配了 vGPU 的 VM 应将其 vCPU 绑定到插槽 1 上的 CPU 核心。

有关绑定 vCPU 的指南,请参阅将 VM 绑定到特定的 CPU 插槽和核心,有关确定 GPU 连接到哪个 CPU 插槽的指南,请参阅如何确定 GPU 局部性控制在特定物理 GPU 上启用的 vGPU 类型介绍了如何通过为特定物理 GPU 创建 GPU 组来精确控制用于托管 vGPU 的物理 GPU。

B.1.2. 在具有 VMware vSphere ESXi 的 NUMA 平台上获得最佳性能

对于某些类型的工作负载或系统配置,您可以通过显式指定 VM 的放置来优化性能。为了获得最佳性能,请将每个 VM 绑定到物理 GPU 托管 VM 的 vGPU 所连接的 NUMA 节点。

以下类型的工作负载和系统配置受益于 VM 的显式放置

  • 内存密集型工作负载,例如内存数据库或具有大型数据集的 HPC 应用程序
  • 配置少量虚拟机的虚拟机监控程序主机

VMware vSphere ESXi 提供了 NUMA 节点关联性 选项,用于显式指定 VM 的放置。有关 VMware vSphere ESXi 中用于 NUMA 放置的选项的常规信息,请参阅 VMware 文档中的指定 NUMA 控制
在设置 NUMA 节点关联性 选项之前,在 ESXi 主机 shell 中运行 nvidia-smi topo -m 命令以确定 GPU 设备的 NUMA 关联性。
确定 GPU 设备的 NUMA 关联性后,按照 VMware 文档中将虚拟机与指定的 NUMA 节点关联中的说明设置 NUMA 节点关联性 选项。

B.2. 最大化性能

为了在平台上 vGPU 启用的 VM 数量增加时最大化性能,NVIDIA 建议采用广度优先分配:在负载最轻的 CPU 插槽上分配新 VM,并在通过该插槽连接的可用、负载最轻的物理 GPU 上分配 VM 的 vGPU。

XenServer 和 VMware vSphere ESXi 默认使用不同的 GPU 分配策略。

注意

由于 vGPU 要求任何给定时间只有一个 vGPU 类型可以在物理 GPU 上运行,因此并非所有物理 GPU 都可能可用于托管新 VM 所需的 vGPU 类型。

x11vnc 是一个虚拟网络计算 (VNC) 服务器,它通过任何 VNC 查看器提供对现有 X 会话的远程访问。您可以使用 x11vnc 来确认未直接连接显示设备的 Linux 服务器中的 NVIDIA GPU 是否按预期工作。未直接连接显示设备的服务器示例包括配置了 NVIDIA vGPU 的 VM、配置了直通 GPU 的 VM 以及裸机部署中的无头物理主机。

在开始之前,请确保满足以下先决条件

  • NVIDIA vGPU 软件 Linux 软件图形驱动程序安装在服务器上。
  • 安全外壳 (SSH) 客户端安装在您的本地系统上
    • 在 Windows 上,您必须使用第三方 SSH 客户端,例如 PuTTY。
    • 在 Linux 上,您可以从 shell 或终端窗口运行操作系统自带的 SSH 客户端。

配置 x11vnc 涉及按照以下各节中的说明顺序操作

  1. 在 Linux 服务器上配置 Xorg 服务器
  2. 在 Linux 服务器上安装和配置 x11vnc
  3. 使用 VNC 客户端连接到 Linux 服务器

连接到服务器后,您可以使用 NVIDIA X Server 设置来确认 NVIDIA GPU 是否按预期工作。

C.1. 在 Linux 服务器上配置 Xorg 服务器

如果您的服务器中安装了多个 GPU,您必须配置 Xorg 服务器以指定 Xorg 服务器要使用的 GPU 或 vGPU,并允许 Xorg 服务器启动,即使检测不到已连接的显示设备。

  1. 登录到 Linux 服务器。
  2. 确定服务器上 GPU 或 vGPU 的 PCI 总线标识符。
    复制
    已复制!
                

    # nvidia-xconfig --query-gpu-info Number of GPUs: 1 GPU #0: Name : GRID T4-2Q UUID : GPU-ea80de2d-1dd8-11b2-8305-c955f034e718 PCI BusID : PCI:2:2:0 Number of Display Devices: 0

  3. 在纯文本编辑器中,编辑 /etc/X11/xorg.conf 文件以指定 Xorg 服务器要使用的 GPU,并允许 Xorg 服务器启动,即使检测不到已连接的显示设备。
    1. Device 部分中,添加 Xorg 服务器要使用的 GPU 的 PCI 总线标识符。
      复制
      已复制!
                  

      Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" BusID "PCI:2:2:0" EndSection

      注意

      nvidia-xconfig 在上一步中获得的 PCI BusID 中的三个数字是十六进制数字。它们必须在 Device 部分的 PCI 总线标识符中转换为十进制数字。例如,如果在上一步中获得的 PCI 总线标识符是 PCI:A:10:0,则必须在 Device 部分的 PCI 总线标识符中指定为 PCI:10:16:0

    2. Screen 部分中,确保 AllowEmptyInitialConfiguration 选项设置为 True
      复制
      已复制!
                  

      Section "Screen" Identifier "Screen0" Device "Device0" Option "AllowEmptyInitialConfiguration" "True" EndSection

  4. 通过以下方式之一重启 Xorg 服务器
    • 重启服务器。
    • 运行 startx 命令。
    • 如果 Linux 服务器处于运行级别 3,请运行 init 5 命令以在图形模式下运行服务器。
  5. 确认 Xorg 服务器正在运行。
    复制
    已复制!
                

    # ps -ef | grep X

    在 Ubuntu 上,此命令显示类似于以下示例的输出。

    复制
    已复制!
                

    root 16500 16499 2 03:01 tty2 00:00:00 /usr/lib/xorg/Xorg -nolisten tcp :0 -auth /tmp/serverauth.s7CE4mMeIz root 1140 1126 0 18:46 tty1 00:00:00 /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/121/gdm/Xauthority -background none -noreset -keeptty -verbose 3 root 17011 17108 0 18:50 pts/0 00:00:00 grep --color=auto X

    在 Red Hat Enterprise Linux 上,此命令显示类似于以下示例的输出。

    复制
    已复制!
                

    root 5285 5181 0 16:29 pts/0 00:00:00 grep --color=auto X root 5880 1 0 Jun13 ? 00:00:00 /usr/bin/abrt-watch-log -F Backtrace /var/log/Xorg.0.log -- /usr/bin/abrt-dump-xorg -xD root 7039 6289 0 Jun13 tty1 00:00:03 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -auth /run/gdm/auth-for-gdm-vr4MFC/database -seat seat0 vt1

C.2. 在 Linux 服务器上安装和配置 x11vnc

与其他 VNC 服务器(例如 TigerVNC 或 Vino)不同,x11vnc 不会创建额外的 X 会话以进行远程访问。相反,x11vnc 提供对 Linux 服务器上现有 X 会话的远程访问。

  1. 安装所需的 x11vnc 软件包和任何依赖软件包。
    • 对于基于 Red Hat 的发行版,请使用 yum 软件包管理器安装 x11vnc 软件包。

      复制
      已复制!
                  

      # yum install x11vnc

    • 对于基于 Debian 的发行版,请使用 apt 软件包管理器安装 x11vnc 软件包。

      复制
      已复制!
                  

      # sudo apt install x11vnc

    • 对于 SuSE Linux 发行版,请从 x11vnc openSUSE 软件页面安装 x11vnc。

  2. 获取 Xorg 服务器的服务器显示编号。
    复制
    已复制!
                

    # cat /proc/*/environ 2>/dev/null | tr '\0' '\n' | grep '^DISPLAY=:' | uniq DISPLAY=:0 DISPLAY=:100

  3. 启动 x11vnc 服务器,指定要使用的显示编号。

    以下示例在运行 Gnome 桌面的 Linux 服务器上的显示器 0 上启动 x11vnc 服务器。

    复制
    已复制!
                

    # x11vnc -display :0 -auth /run/user/121/gdm/Xauthority -forever \ -shared -ncache -bg

    注意

    如果您使用的是 C 系列 vGPU,请省略 -ncache 选项。

    x11vnc 服务器在显示器 hostname:0 上启动,例如,my-linux-host:0

    复制
    已复制!
                

    26/03/20200 04:23:13 The VNC desktop is: my-linux-host:0 PORT=5900

C.3. 使用 VNC 客户端连接到 Linux 服务器

  1. 在您的客户端计算机上,安装 VNC 客户端,例如 TightVNC。
  2. 启动 VNC 客户端并连接到 Linux 服务器。

    tight-vnc-connection-dialog-box.png

    服务器上的 X 会话在 VNC 客户端中打开。

    tight-vnc-gnome-desktop-session.png

故障排除: 如果您的 VNC 客户端无法连接到服务器,请在 Linux 服务器上更改权限,如下所示

  1. 通过进行以下更改之一,允许 VNC 客户端连接到服务器
    • 禁用防火墙和 iptables 服务。
    • 在防火墙中打开 VNC 端口。
  2. 确保为 Security Enhanced Linux (SELinux) 启用 permissive 模式。

连接到服务器后,您可以使用 NVIDIA X Server 设置来确认 NVIDIA GPU 是否按预期工作。

nvidia-x-server-settings-in-tight-vnc-gnome-desktop-session.png

默认情况下,在 Windows Server 操作系统上,NVIDIA 通知图标应用程序会随每个 Citrix 发布应用程序用户会话一起启动。即使在用户退出所有其他应用程序后,此应用程序也可能会阻止 Citrix 发布应用程序用户会话注销。

NVIDIA 通知图标应用程序显示在运行 Citrix Receiver 或 Citrix Workspace 的端点客户端上的 Citrix Connection Center 中。

下图显示了在 Citrix Connection Center 中,发布了 Adobe Acrobat Reader DC 和 Google Chrome 应用程序的用户会话中的 NVIDIA 通知图标。

citrix-connection-center-window-with-published-applications.png

管理员可以为所有用户的会话禁用 NVIDIA 通知图标应用程序,如为所有用户的 Citrix 发布应用程序会话禁用 NVIDIA 通知图标中所述。

个别用户可以为自己的会话禁用 NVIDIA 通知图标应用程序,如为您的 Citrix 发布应用程序用户会话禁用 NVIDIA 通知图标中所述。

注意

如果管理员为其自己的会话启用了 NVIDIA 通知图标应用程序,则该应用程序将为所有用户的会话启用,即使是之前已禁用该应用程序的用户的会话也是如此。


D.1. 为所有用户的 Citrix 发布应用程序会话禁用 NVIDIA 通知图标

管理员可以设置注册表项,为 VM 上所有用户的 Citrix 发布应用程序会话禁用 NVIDIA 通知图标应用程序。为了确保在从主映像创建的任何虚拟交付代理 (VDA) 上禁用 NVIDIA 通知图标应用程序,请在主映像中设置此项。

从将要创建 Citrix 发布应用程序会话的 VM 上执行此任务。
在开始之前,请确保 VM 中安装了 NVIDIA vGPU 软件图形驱动程序。

  1. 将系统级 StartOnLogin Windows 注册表项设置为 0。
    复制
    已复制!
                

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvlddmkm\NvTray] Value: "StartOnLogin" Type: DWORD Data: 00000000

    数据值 0 禁用 NVIDIA 通知图标,数据值 1 启用它。

  2. 重启 VM。您必须重启 VM 以确保在用户会话中的 NVIDIA 服务启动之前设置注册表项。

D.2. 为您的 Citrix 发布应用程序用户会话禁用 NVIDIA 通知图标

个别用户可以为自己的 Citrix 发布应用程序会话禁用 NVIDIA 通知图标。

在开始之前,请确保您已登录到 Citrix 发布应用程序会话。

  1. 将当前用户的 StartOnLogin Windows 注册表项设置为 0。
    复制
    已复制!
                

    [HKEY_CURRENT_USER\SOFTWARE\NVIDIA Corporation\NvTray\] Value: "StartOnLogin" Type: DWORD Data: 00000000

    数据值 0 禁用 NVIDIA 通知图标,数据值 1 启用它。

  2. 注销并重新登录或重启 VM。您必须注销并重新登录或重启 VM 以确保在用户会话中的 NVIDIA 服务启动之前设置注册表项。

为了安装和配置 NVIDIA vGPU 软件并优化 XenServer 与 vGPU 的操作,需要一些 XenServer 上的基本操作。

E.1. 打开 dom0 shell

大多数配置命令必须在 XenServer dom0 域的命令 shell 中运行。您可以通过以下任何方式在 XenServer dom0 域中打开 shell

  • 使用 XenCenter 中的控制台窗口
  • 使用独立的 Secure Shell (SSH) 客户端

E.1.1. 通过 XenCenter 访问 dom0 shell

  1. 在 XenCenter 窗口的左侧窗格中,选择要连接的 XenServer 主机。
  2. 单击控制台选项卡以打开 XenServer 控制台。
  3. Enter 键启动 shell 提示符。

图 30. 使用 XenCenter 连接到 dom0 shell

open-dom0-shell-citrix-xenserver-xencenter-screen.png

E.1.2. 通过 SSH 客户端访问 dom0 shell

  1. 确保您拥有 SSH 客户端套件,例如 Windows 上的 PuTTY 或 Linux 上 OpenSSH 中的 SSH 客户端。
  2. 将您的 SSH 客户端连接到 XenServer 主机的管理 IP 地址。
  3. 以 root 用户身份登录。

E.2. 将文件复制到 dom0

您可以通过以下任何方式轻松地将文件复制到 XenServer dom0 和从 XenServer dom0 复制文件

  • 使用安全复制协议 (SCP) 客户端
  • 使用网络挂载的文件系统

E.2.1. 使用 SCP 客户端复制文件

用于将文件复制到 dom0 的 SCP 客户端取决于您从何处运行客户端。

  • 如果您从 dom0 运行客户端,请使用安全复制命令 scp。

    scp 命令是 SSH 应用程序套件的一部分。它在 dom0 中实现,可用于从远程启用 SSH 的服务器复制

    复制
    已复制!
                

    [root@xenserver ~]# scp root@10.31.213.96:/tmp/somefile . The authenticity of host '10.31.213.96 (10.31.213.96)' can't be established. RSA key fingerprint is 26:2d:9b:b9:bf:6c:81:70:36:76:13:02:c1:82:3d:3c. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.31.213.96' (RSA) to the list of known hosts. root@10.31.213.96's password: somefile 100% 532 0.5KB/s 00:00 [root@xenserver ~]#

  • 如果您从 Windows 运行客户端,请使用 pscp 程序。

    pscp 程序是 PuTTY 套件的一部分,可用于将文件从远程 Windows 系统复制到 XenServer

    复制
    已复制!
                

    C:\Users\nvidia>pscp somefile root@10.31.213.98:/tmp root@10.31.213.98's password: somefile | 80 kB | 80.1 kB/s | ETA: 00:00:00 | 100% C:\Users\nvidia>

E.2.2. 使用 CIFS 挂载的文件系统复制文件

您可以通过从 dom0 挂载 CIFS/SMB 文件共享来复制文件到该共享和从该共享复制文件。

以下示例演示了如何在 dom0 上将网络共享 \\myserver.example.com\myshare 挂载到 /mnt/myshare,以及如何复制文件到该共享和从该共享复制文件。该示例假设文件共享是名为 example.com 的 Active Directory 域的一部分,并且用户 myuser 具有访问该共享的权限。

  1. 在 dom0 上创建目录 /mnt/myshare。
    复制
    已复制!
                

    [root@xenserver ~]# mkdir /mnt/myshare

  2. 在 dom0 上将网络共享 \\myserver.example.com\myshare 挂载到 /mnt/myshare。
    复制
    已复制!
                

    [root@xenserver ~]# mount -t cifs -o username=myuser,workgroup=example.com //myserver.example.com/myshare /mnt/myshare Password: [root@xenserver ~]#

  3. 当提示输入密码时,输入 example.com 域中 myuser 的密码。
  4. 共享挂载后,使用 cp 命令将文件复制到文件共享和从文件共享复制文件,方法是将文件复制到 /mnt/myshare 和从 /mnt/myshare 复制文件
    复制
    已复制!
                

    [root@xenserver ~]# cp /mnt/myshare/NVIDIA-vGPU-NVIDIA-vGPU-CitrixHypervisor-8.2-550.144.02.x86_64.rpm . [root@xenserver ~]#

E.3. 确定 VM 的 UUID

您可以通过以下任何方式确定虚拟机的 UUID

  • 在 dom0 shell 中使用 xe vm-list 命令
  • 使用 XenCenter

E.3.1. 使用 xe vm-list 确定 VM 的 UUID

使用 xe vm-list 命令列出所有 VM 及其关联的 UUID,或查找特定命名 VM 的 UUID。

  • 要列出所有 VM 及其关联的 UUID,请使用不带任何参数的 xe vm-list

    复制
    已复制!
                

    [root@xenserver ~]# xe vm-list uuid ( RO) : 6b5585f6-bd74-2e3e-0e11-03b9281c3ade name-label ( RW): vgx-base-image-win7-64 power-state ( RO): halted uuid ( RO) : fa3d15c7-7e88-4886-c36a-cdb23ed8e275 name-label ( RW): test-image-win7-32 power-state ( RO): halted uuid ( RO) : 501bb598-a9b3-4afc-9143-ff85635d5dc3 name-label ( RW): Control domain on host: xenserver power-state ( RO): running uuid ( RO) : 8495adf7-be9d-eee1-327f-02e4f40714fc name-label ( RW): vgx-base-image-win7-32 power-state ( RO): halted

  • 要查找特定命名 VM 的 UUID,请使用 name-label 参数到 xe vm-list

    复制
    已复制!
                

    [root@xenserver ~]# xe vm-list name-label=test-image-win7-32 uuid ( RO) : fa3d15c7-7e88-4886-c36a-cdb23ed8e275 name-label ( RW): test-image-win7-32 power-state ( RO): halted

E.3.2. 使用 XenCenter 确定 VM 的 UUID

  1. 在 XenCenter 窗口的左侧窗格中,选择要确定其 UUID 的 VM。
  2. 在 XenCenter 窗口的右侧窗格中,单击常规选项卡。

UUID 列在 VM 的常规属性中。

图 31. 使用 XenCenter 确定 VM 的 UUID

determine-vm-uuid-citrix-xenserver-xencenter-screen.png

E.4. 将两个以上的 vCPU 用于 Windows 客户端 VM

Windows 客户端操作系统最多支持两个 CPU 插槽。当为客户虚拟机内的虚拟插槽分配 vCPU 时,XenServer 默认每个插槽分配一个 vCPU。分配给虚拟机的 vCPU 超过两个将不会被 Windows 客户端操作系统识别。

为确保所有分配的 vCPU 都被识别,请将 platform:cores-per-socket 设置为分配给虚拟机的 vCPU 数量

复制
已复制!
            

[root@xenserver ~]# xe vm-param-set uuid=vm-uuid platform:cores-per-socket=4 VCPUs-max=4 VCPUs-at-startup=4

vm-uuid 是虚拟机的 UUID,您可以按照确定虚拟机的 UUID中所述的方法获取。

E.5. 将虚拟机绑定到特定的 CPU 插槽和内核

  1. 使用 xe host-cpu-info 确定服务器平台中 CPU 插槽和逻辑 CPU 内核的数量。在此示例中,服务器在两个插槽上实现了 32 个逻辑 CPU 内核
    复制
    已复制!
                

    [root@xenserver ~]# xe host-cpu-info cpu_count : 32 socket_count: 2 vendor: GenuineIntel speed: 2600.064 modelname: Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz family: 6 model: 45 stepping: 7 flags: fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc nonstop_tsc aperfmperf pni pclmulqdq vmx est ssse3 sse4_1 sse4_2 x2apic popcnt aes hypervisor ida arat tpr_shadow vnmi flexpriority ept vpid features: 17bee3ff-bfebfbff-00000001-2c100800 features_after_reboot: 17bee3ff-bfebfbff-00000001-2c100800 physical_features: 17bee3ff-bfebfbff-00000001-2c100800 maskable: full

  2. 设置 VCPUs-params:mask 以将虚拟机的 vCPU 绑定到特定的插槽或插槽内的特定内核。此设置在虚拟机重启和关机后仍然保留。在具有 32 个总内核的双插槽平台中,内核 0-15 在插槽 0 上,内核 16-31 在插槽 1 上。在以下示例中,vm-uuid 是虚拟机的 UUID,您可以按照确定虚拟机的 UUID中所述的方法获取。
    • 要限制虚拟机仅在插槽 0 上运行,请将掩码设置为指定内核 0-15
      复制
      已复制!
                  

      [root@xenserver ~]# xe vm-param-set uuid=vm-uuid VCPUs-params:mask=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

    • 要限制虚拟机仅在插槽 1 上运行,请将掩码设置为指定内核 16-31
      复制
      已复制!
                  

      [root@xenserver ~]# xe vm-param-set uuid=vm-uuid VCPUs-params:mask=16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31

    • 要将 vCPU 绑定到插槽内的特定内核,请将掩码设置为直接指定内核
      复制
      已复制!
                  

      [root@xenserver ~]# xe vm-param-set uuid=vm-uuid VCPUs-params:mask=16,17,18,19

  3. 使用 xl vcpu-list 列出 vCPU 当前到物理 CPU 的分配
    复制
    已复制!
                

    [root@xenserver ~]# xl vcpu-list Name ID VCPU CPU State Time(s) CPU Affinity Domain-0 0 0 25 -b- 9188.4 any cpu Domain-0 0 1 19 r-- 8908.4 any cpu Domain-0 0 2 30 -b- 6815.1 any cpu Domain-0 0 3 17 -b- 4881.4 any cpu Domain-0 0 4 22 -b- 4956.9 any cpu Domain-0 0 5 20 -b- 4319.2 any cpu Domain-0 0 6 28 -b- 5720.0 any cpu Domain-0 0 7 26 -b- 5736.0 any cpu test-image-win7-32 34 0 9 -b- 17.0 4-15 test-image-win7-32 34 1 4 -b- 13.7 4-15

E.6. 更改 dom0 vCPU 默认配置

默认情况下,dom0 vCPU 配置如下

  • 分配给 dom0 的 vCPU 数量为 8。
  • dom0 shell 的 vCPU 未绑定,并且能够在系统中的任何物理 CPU 上运行。

E.6.1. 更改 dom0 vCPU 的数量

分配给 dom0 的默认 vCPU 数量为 8。

  1. 修改 Xen 引导行中的 dom0_max_vcpus 参数。

    例如

    复制
    已复制!
                

    [root@xenserver ~]# /opt/xensource/libexec/xen-cmdline --set-xen dom0_max_vcpus=4

  2. 应用此设置后,重启系统以使设置生效,执行以下操作之一
    • 运行以下命令
      复制
      已复制!
                  

      shutdown –r

    • 从 XenCenter 重启系统。

E.6.2. 绑定 dom0 vCPU

默认情况下,dom0 的 vCPU 未绑定,并且能够在系统中的任何物理 CPU 上运行。

  1. 要将 dom0 vCPU 绑定到特定的物理 CPU,请使用 xl vcpu-pin。

    例如,要将 dom0 的 vCPU 0 绑定到物理 CPU 18,请使用以下命令

    复制
    已复制!
                

    [root@xenserver ~]# xl vcpu-pin Domain-0 0 18

    以这种方式应用的 CPU 绑定立即生效,但在重启后不会保留。

  2. 要使设置持久化,请将 xl vcpu-pin 命令添加到 /etc/rc.local 中。

    例如

    复制
    已复制!
                

    xl vcpu-pin 0 0 0-15 xl vcpu-pin 0 1 0-15 xl vcpu-pin 0 2 0-15 xl vcpu-pin 0 3 0-15 xl vcpu-pin 0 4 16-31 xl vcpu-pin 0 5 16-31 xl vcpu-pin 0 6 16-31 xl vcpu-pin 0 7 16-31

E.7. GPU 局部性是如何确定的

NUMA 考量中所述,当前的多插槽服务器通常为每个 CPU 插槽实现本地 PCIe 扩展槽,将虚拟机绑定到与其关联的物理 GPU 连接的同一插槽是有利的。

对于当前的 Intel 平台,CPU 插槽 0 通常将其 PCIe 根端口位于总线 0 上,因此任何位于总线 0 上的根端口下方的 GPU 都连接到插槽 0。CPU 插槽 1 的根端口位于更高的总线号上,通常是总线 0x20 或总线 0x80,具体取决于特定的服务器平台。

您可以使用 XenCenter 和 xe 命令行操作来执行 XenServer 高级 vGPU 管理技术。

F.1. GPU 的管理对象

XenServer 为 GPU 使用四个底层管理对象:物理 GPU、vGPU 类型、GPU 组和 vGPU。当使用 xe 管理 vGPU 时,这些对象被直接使用;当使用 XenCenter 管理 vGPU 时,这些对象被间接使用。

F.1.1.  pgpu - 物理 GPU

pgpu 对象表示物理 GPU,例如 Tesla M60 或 M10 卡上的多个 GPU 之一。XenServer 在启动时自动创建 pgpu 对象,以表示平台上存在的每个物理 GPU。

F.1.1.1. 列出平台上存在的 pgpu 对象

要列出平台上存在的物理 GPU 对象,请使用 xe pgpu-list。

例如,此平台包含一个带有单个物理 GPU 的 Tesla P40 卡和一个带有两个物理 GPU 的 Tesla M60 卡

复制
已复制!
            

[root@xenserver ~]# xe pgpu-list uuid ( RO) : f76d1c90-e443-4bfc-8f26-7959a7c85c68 vendor-name ( RO): NVIDIA Corporation device-name ( RO): GP102GL [Tesla P40] gpu-group-uuid ( RW): 134a7b71-5ceb-8066-ef1b-3b319fb2bef3 uuid ( RO) : 4c5e05d9-60fa-4fe5-9cfc-c641e95c8e85 vendor-name ( RO): NVIDIA Corporation device-name ( RO): GM204GL [Tesla M60] gpu-group-uuid ( RW): 3df80574-c303-f020-efb3-342f969da5de uuid ( RO) : 4960e63c-c9fe-4a25-add4-ee697263e04c vendor-name ( RO): NVIDIA Corporation device-name ( RO): GM204GL [Tesla M60] gpu-group-uuid ( RW): d32560f2-2158-42f9-d201-511691e1cb2b [root@xenserver ~]#

F.1.1.2. 查看关于 pgpu 对象的详细信息

要查看关于 pgpu 的详细信息,请使用 xe pgpu-param-list

复制
已复制!
            

[root@xenserver ~]# xe pgpu-param-list uuid=4960e63c-c9fe-4a25-add4-ee697263e04c uuid ( RO) : 4960e63c-c9fe-4a25-add4-ee697263e04c vendor-name ( RO): NVIDIA Corporation device-name ( RO): GM204GL [Tesla M60] dom0-access ( RO): enabled is-system-display-device ( RO): false gpu-group-uuid ( RW): d32560f2-2158-42f9-d201-511691e1cb2b gpu-group-name-label ( RO): 86:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1) host-uuid ( RO): b55452df-1ee4-4e4e-bd97-3aee97b2123a host-name-label ( RO): xs7.1 pci-id ( RO): 0000:86:00.0 dependencies (SRO): other-config (MRW): supported-VGPU-types ( RO): 5b9acd25-06fa-43e1-8b53-c35bceb8515c; 16326fcb-543f-4473-a4ae-2d30516a2779; 0f9fc39a-0758-43c8-88cc-54c8491aa4d4; cecb2033-3b4a-437c-a0c0-c9dfdb692d9b; 095d8939-5f84-405d-a39a-684738f9b957; 56c335be-4036-4a38-816c-c246a60556ac; ef0a94fd-2230-4fd4-aee0-d6d3f6ced4ef; 11615f73-47b8-4494-806e-2a7b5e1d7bea; dbd8f2ac-f548-4c40-804b-9133cfda8090; a33189f1-1417-4593-aa7d-978c4f25b953; 3f437337-3682-4897-a7ba-6334519f4c19; 99900aab-42b0-4cc4-8832-560ff6b60231 enabled-VGPU-types (SRW): 5b9acd25-06fa-43e1-8b53-c35bceb8515c; 16326fcb-543f-4473-a4ae-2d30516a2779; 0f9fc39a-0758-43c8-88cc-54c8491aa4d4; cecb2033-3b4a-437c-a0c0-c9dfdb692d9b; 095d8939-5f84-405d-a39a-684738f9b957; 56c335be-4036-4a38-816c-c246a60556ac; ef0a94fd-2230-4fd4-aee0-d6d3f6ced4ef; 11615f73-47b8-4494-806e-2a7b5e1d7bea; dbd8f2ac-f548-4c40-804b-9133cfda8090; a33189f1-1417-4593-aa7d-978c4f25b953; 3f437337-3682-4897-a7ba-6334519f4c19; 99900aab-42b0-4cc4-8832-560ff6b60231 resident-VGPUs ( RO): [root@xenserver ~]#

F.1.1.3. 在 XenCenter 中查看物理 GPU

要在 XenCenter 中查看物理 GPU,请单击服务器的GPU 选项卡:

图 32. XenCenter 中的物理 GPU 显示

view-pgpu-object-details-citrix-xenserver-xencenter-screen.png

F.1.2.  vgpu-type - 虚拟 GPU 类型

vgpu-type 表示一种虚拟 GPU 类型,例如 M60-0B、P40-8A 和 P100-16Q。定义了一个额外的直通 vGPU 类型,用于表示可直接分配给单个客户虚拟机的物理 GPU。

XenServer 在启动时自动创建 vgpu-type 对象,以表示平台上存在的物理 GPU 支持的每种虚拟类型。

F.1.2.1. 列出平台上存在的 vgpu-type 对象

要列出平台上存在的 vgpu-type 对象,请使用 xe vgpu-type-list。

例如,由于此平台包含 Tesla P100、Tesla P40 和 Tesla M60 卡,因此报告的 vGPU 类型是这些卡支持的类型

复制
已复制!
            

[root@xenserver ~]# xe vgpu-type-list uuid ( RO) : d27f84a2-53f8-4430-ad15-0eca225cd974 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P40-12A max-heads ( RO): 1 max-resolution ( RO): 1280x1024 uuid ( RO) : 57bb231f-f61b-408e-a0c0-106bddd91019 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P40-3Q max-heads ( RO): 4 max-resolution ( RO): 4096x2160 uuid ( RO) : 9b2eaba5-565f-4cb4-ad9b-6347cfb03e93 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P40-2Q max-heads ( RO): 4 max-resolution ( RO): 4096x2160 uuid ( RO) : af593219-0800-42da-a51d-d13b35f589e1 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P40-4A max-heads ( RO): 1 max-resolution ( RO): 1280x1024 uuid ( RO) : 5b9acd25-06fa-43e1-8b53-c35bceb8515c vendor-name ( RO): model-name ( RO): passthrough max-heads ( RO): 0 max-resolution ( RO): 0x0 uuid ( RO) : af121387-0b58-498a-8d04-fe0305e4308f vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P40-3A max-heads ( RO): 1 max-resolution ( RO): 1280x1024 uuid ( RO) : 3b28a628-fd6c-4cda-b0fb-80165699229e vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P100-4Q max-heads ( RO): 4 max-resolution ( RO): 4096x2160 uuid ( RO) : 99900aab-42b0-4cc4-8832-560ff6b60231 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID M60-1Q max-heads ( RO): 2 max-resolution ( RO): 4096x2160 uuid ( RO) : 0f9fc39a-0758-43c8-88cc-54c8491aa4d4 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID M60-4A max-heads ( RO): 1 max-resolution ( RO): 1280x1024 uuid ( RO) : 4017c9dd-373f-431a-b36f-50e4e5c9f0c0 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P40-6A max-heads ( RO): 1 max-resolution ( RO): 1280x1024 uuid ( RO) : 125fbbdf-406e-4d7c-9de8-a7536aa1a838 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P40-24A max-heads ( RO): 1 max-resolution ( RO): 1280x1024 uuid ( RO) : 88162a34-1151-49d3-98ae-afcd963f3105 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P40-2A max-heads ( RO): 1 max-resolution ( RO): 1280x1024 uuid ( RO) : ad00a95c-d066-4158-b361-487abf57dd30 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P40-1A max-heads ( RO): 1 max-resolution ( RO): 1280x1024 uuid ( RO) : 11615f73-47b8-4494-806e-2a7b5e1d7bea vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID M60-0Q max-heads ( RO): 2 max-resolution ( RO): 2560x1600 uuid ( RO) : 6ea0cd56-526c-4966-8f53-7e1721b95a5c vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P40-4Q max-heads ( RO): 4 max-resolution ( RO): 4096x2160 uuid ( RO) : 095d8939-5f84-405d-a39a-684738f9b957 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID M60-4Q max-heads ( RO): 4 max-resolution ( RO): 4096x2160 uuid ( RO) : 9626e649-6802-4396-976d-94c0ead1f835 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P40-12Q max-heads ( RO): 4 max-resolution ( RO): 4096x2160 uuid ( RO) : a33189f1-1417-4593-aa7d-978c4f25b953 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID M60-0B max-heads ( RO): 2 max-resolution ( RO): 2560x1600 uuid ( RO) : dbd8f2ac-f548-4c40-804b-9133cfda8090 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID M60-1A max-heads ( RO): 1 max-resolution ( RO): 1280x1024 uuid ( RO) : ef0a94fd-2230-4fd4-aee0-d6d3f6ced4ef vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID M60-8Q max-heads ( RO): 4 max-resolution ( RO): 4096x2160 uuid ( RO) : 67fa06ab-554e-452b-a66e-a4048a5bfdf7 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P40-6Q max-heads ( RO): 4 max-resolution ( RO): 4096x2160 uuid ( RO) : 739d7b8e-50e2-48a1-ae0d-5047aa490f0e vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P40-8A max-heads ( RO): 1 max-resolution ( RO): 1280x1024 uuid ( RO) : 9fb62f31-7dfb-46f8-a4a9-cca8db48147e vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P100-8Q max-heads ( RO): 4 max-resolution ( RO): 4096x2160 uuid ( RO) : 56c335be-4036-4a38-816c-c246a60556ac vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID M60-1B max-heads ( RO): 4 max-resolution ( RO): 2560x1600 uuid ( RO) : 3f437337-3682-4897-a7ba-6334519f4c19 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID M60-8A max-heads ( RO): 1 max-resolution ( RO): 1280x1024 uuid ( RO) : 25dbb2d3-a074-4f9f-92ce-b42d8b3d1de2 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P40-1B max-heads ( RO): 4 max-resolution ( RO): 2560x1600 uuid ( RO) : cecb2033-3b4a-437c-a0c0-c9dfdb692d9b vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID M60-2Q max-heads ( RO): 4 max-resolution ( RO): 4096x2160 uuid ( RO) : 16326fcb-543f-4473-a4ae-2d30516a2779 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID M60-2A max-heads ( RO): 1 max-resolution ( RO): 1280x1024 uuid ( RO) : 7ca2399f-89ab-49dd-bf96-75071ced28fc vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P40-24Q max-heads ( RO): 4 max-resolution ( RO): 4096x2160 uuid ( RO) : 9611a3f4-d130-4a66-a61b-21d4a2ca4663 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P40-8Q max-heads ( RO): 4 max-resolution ( RO): 4096x2160 uuid ( RO) : d0e4a116-a944-42ef-a8dc-62a54c4d2d77 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P40-1Q max-heads ( RO): 2 max-resolution ( RO): 4096x2160 [root@xenserver ~]#

F.1.2.2. 查看关于 vgpu-type 对象的详细信息

要查看关于 vgpu-type 的详细信息,请使用 xe vgpu-type-param-list

复制
已复制!
            

[root@xenserver ~]# xe xe vgpu-type-param-list uuid=7ca2399f-89ab-49dd-bf96-75071ced28fc uuid ( RO) : 7ca2399f-89ab-49dd-bf96-75071ced28fc vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID P40-24Q framebuffer-size ( RO): 24092082176 max-heads ( RO): 4 max-resolution ( RO): 4096x2160 supported-on-PGPUs ( RO): f76d1c90-e443-4bfc-8f26-7959a7c85c68 enabled-on-PGPUs ( RO): f76d1c90-e443-4bfc-8f26-7959a7c85c68 supported-on-GPU-groups ( RO): 134a7b71-5ceb-8066-ef1b-3b319fb2bef3 enabled-on-GPU-groups ( RO): 134a7b71-5ceb-8066-ef1b-3b319fb2bef3 VGPU-uuids ( RO): experimental ( RO): false [root@xenserver ~]#

F.1.3.  gpu-group - 物理 GPU 的集合

gpu-group 是物理 GPU 的集合,所有物理 GPU 都是同一类型。XenServer 在启动时自动创建 gpu-group 对象,以表示平台上存在的不同类型的物理 GPU。

F.1.3.1. 列出平台上存在的 gpu-group 对象

要列出平台上存在的 gpu-group 对象,请使用 xe gpu-group-list。

例如,具有单个 Tesla P100 卡、单个 Tesla P40 卡和两个 Tesla M60 卡的系统包含一个 Tesla P100 类型的 GPU 组、一个 Tesla P40 类型的 GPU 组和两个 Tesla M60 类型的 GPU 组

复制
已复制!
            

[root@xenserver ~]# xe gpu-group-list uuid ( RO) : 3d652a59-beaf-ddb3-3b19-c8c77ef60605 name-label ( RW): Group of NVIDIA Corporation GP100GL [Tesla P100 PCIe 16GB] GPUs name-description ( RW): uuid ( RO) : 3df80574-c303-f020-efb3-342f969da5de name-label ( RW): 85:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1) name-description ( RW): 85:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1) uuid ( RO) : 134a7b71-5ceb-8066-ef1b-3b319fb2bef3 name-label ( RW): 87:00.0 3D controller: NVIDIA Corporation GP102GL [TESLA P40] (rev a1) name-description ( RW): 87:00.0 3D controller: NVIDIA Corporation GP102GL [TESLA P40] (rev a1) uuid ( RO) : d32560f2-2158-42f9-d201-511691e1cb2b name-label ( RW): 86:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1) name-description ( RW): 86:00.0 VGA compatible controller: NVIDIA Corporation GM204GL [Tesla M60] (rev a1) [root@xenserver ~]#

F.1.3.2. 查看关于 gpu-group 对象的详细信息

要查看关于 gpu-group 的详细信息,请使用 xe gpu-group-param-list

复制
已复制!
            

[root@xenserver ~]# xe gpu-group-param-list uuid=134a7b71-5ceb-8066-ef1b-3b319fb2bef3 uuid ( RO) : 134a7b71-5ceb-8066-ef1b-3b319fb2bef3 name-label ( RW): 87:00.0 3D controller: NVIDIA Corporation GP102GL [TESLA P40] (rev a1) name-description ( RW): 87:00.0 3D controller: NVIDIA Corporation GP102GL [TESLA P40] (rev a1) VGPU-uuids (SRO): 101fb062-427f-1999-9e90-5a914075e9ca PGPU-uuids (SRO): f76d1c90-e443-4bfc-8f26-7959a7c85c68 other-config (MRW): enabled-VGPU-types ( RO): d0e4a116-a944-42ef-a8dc-62a54c4d2d77; 9611a3f4-d130-4a66-a61b-21d4a2ca4663; 7ca2399f-89ab-49dd-bf96-75071ced28fc; 25dbb2d3-a074-4f9f-92ce-b42d8b3d1de2; 739d7b8e-50e2-48a1-ae0d-5047aa490f0e; 67fa06ab-554e-452b-a66e-a4048a5bfdf7; 9626e649-6802-4396-976d-94c0ead1f835; 6ea0cd56-526c-4966-8f53-7e1721b95a5c; ad00a95c-d066-4158-b361-487abf57dd30; 88162a34-1151-49d3-98ae-afcd963f3105; 125fbbdf-406e-4d7c-9de8-a7536aa1a838; 4017c9dd-373f-431a-b36f-50e4e5c9f0c0; af121387-0b58-498a-8d04-fe0305e4308f; 5b9acd25-06fa-43e1-8b53-c35bceb8515c; af593219-0800-42da-a51d-d13b35f589e1; 9b2eaba5-565f-4cb4-ad9b-6347cfb03e93; 57bb231f-f61b-408e-a0c0-106bddd91019; d27f84a2-53f8-4430-ad15-0eca225cd974 supported-VGPU-types ( RO): d0e4a116-a944-42ef-a8dc-62a54c4d2d77; 9611a3f4-d130-4a66-a61b-21d4a2ca4663; 7ca2399f-89ab-49dd-bf96-75071ced28fc; 25dbb2d3-a074-4f9f-92ce-b42d8b3d1de2; 739d7b8e-50e2-48a1-ae0d-5047aa490f0e; 67fa06ab-554e-452b-a66e-a4048a5bfdf7; 9626e649-6802-4396-976d-94c0ead1f835; 6ea0cd56-526c-4966-8f53-7e1721b95a5c; ad00a95c-d066-4158-b361-487abf57dd30; 88162a34-1151-49d3-98ae-afcd963f3105; 125fbbdf-406e-4d7c-9de8-a7536aa1a838; 4017c9dd-373f-431a-b36f-50e4e5c9f0c0; af121387-0b58-498a-8d04-fe0305e4308f; 5b9acd25-06fa-43e1-8b53-c35bceb8515c; af593219-0800-42da-a51d-d13b35f589e1; 9b2eaba5-565f-4cb4-ad9b-6347cfb03e93; 57bb231f-f61b-408e-a0c0-106bddd91019; d27f84a2-53f8-4430-ad15-0eca225cd974 allocation-algorithm ( RW): depth-first [root@xenserver ~]

F.1.4.  vgpu - 虚拟 GPU

vgpu 对象表示虚拟 GPU。与其他 GPU 管理对象不同,vgpu 对象不是由 XenServer 自动创建的。相反,它们是按如下方式创建的

  • 当通过 XenCenter 或 xe 配置虚拟机以使用 vGPU 时
  • 通过克隆配置为使用 vGPU 的虚拟机,如克隆启用 vGPU 的虚拟机中所述

F.2. 使用 xe 创建 vGPU

使用 xe vgpu-create 创建 vgpu 对象,指定所需的 vGPU 类型、将从中分配 vGPU 的 GPU 组以及与其关联的虚拟机

复制
已复制!
            

[root@xenserver ~]# xe vgpu-create vm-uuid=e71afda4-53f4-3a1b-6c92-a364a7f619c2 gpu-group-uuid=be825ba2-01d7-8d51-9780-f82cfaa64924 vgpu-type-uuid=3f318889-7508-c9fd-7134-003d4d05ae56b73cbd30-096f-8a9a-523e-a800062f4ca7 [root@xenserver ~]#

为虚拟机创建 vgpu 对象不会立即在物理 GPU 上创建虚拟 GPU。相反,vgpu 对象在其关联的虚拟机启动时创建。有关 vGPU 如何在虚拟机启动时创建的更多详细信息,请参阅控制 vGPU 分配

注意

拥有虚拟机必须处于关闭状态,vgpu-create 命令才能成功。

vgpu 对象的拥有虚拟机、关联的 GPU 组和 vGPU 类型在创建时是固定的,后续无法更改。要更改分配给虚拟机的 vGPU 类型,请删除现有的 vgpu 对象并创建另一个。

F.3. 控制 vGPU 分配

在 XenCenter 中配置虚拟机以使用 vGPU,或使用 xe 为虚拟机创建 vgpu 对象,不会立即创建虚拟 GPU;相反,虚拟 GPU 在虚拟机下次启动时创建,使用以下步骤

  • 检查与 vgpu 对象关联的 GPU 组中是否存在可以托管所需类型 vGPU 的物理 GPU(即 vgpu 对象关联的 vgpu-type)。由于 vGPU 类型不能在单个物理 GPU 上混合,因此新的 vGPU 只能在没有常驻 vGPU 或只有相同类型的 vGPU 的物理 GPU 上创建,并且少于物理 GPU 可以支持的该类型 vGPU 的限制。
  • 如果组中不存在此类物理 GPU,则 vgpu 创建失败,并且虚拟机启动中止。
  • 否则,如果组中存在多个此类物理 GPU,则根据 GPU 组的分配策略选择物理 GPU,如修改 GPU 分配策略中所述。

F.3.1. 确定虚拟 GPU 驻留在哪个物理 GPU 上

vgpu 对象的 resident-on 参数返回 vGPU 驻留的物理 GPU 的 pgpu 对象的 UUID。

要确定虚拟 GPU 驻留在哪个物理 GPU 上,请使用 vgpu-param-get

复制
已复制!
            

[root@xenserver ~]# xe vgpu-param-get uuid=101fb062-427f-1999-9e90-5a914075e9ca param-name=resident-on f76d1c90-e443-4bfc-8f26-7959a7c85c68 [root@xenserver ~]# xe pgpu-param-list uuid=f76d1c90-e443-4bfc-8f26-7959a7c85c68 uuid ( RO) : f76d1c90-e443-4bfc-8f26-7959a7c85c68 vendor-name ( RO): NVIDIA Corporation device-name ( RO): GP102GL [Tesla P40] gpu-group-uuid ( RW): 134a7b71-5ceb-8066-ef1b-3b319fb2bef3 gpu-group-name-label ( RO): 87:00.0 3D controller: NVIDIA Corporation GP102GL [TESLA P40] (rev a1) host-uuid ( RO): b55452df-1ee4-4e4e-bd97-3aee97b2123a host-name-label ( RO): xs7.1-krish pci-id ( RO): 0000:87:00.0 dependencies (SRO): other-config (MRW): supported-VGPU-types ( RO): 5b9acd25-06fa-43e1-8b53-c35bceb8515c; 88162a34-1151-49d3-98ae-afcd963f3105; 9b2eaba5-565f-4cb4-ad9b-6347cfb03e93; 739d7b8e-50e2-48a1-ae0d-5047aa490f0e; d0e4a116-a944-42ef-a8dc-62a54c4d2d77; 7ca2399f-89ab-49dd-bf96-75071ced28fc; 67fa06ab-554e-452b-a66e-a4048a5bfdf7; 9611a3f4-d130-4a66-a61b-21d4a2ca4663; d27f84a2-53f8-4430-ad15-0eca225cd974; 125fbbdf-406e-4d7c-9de8-a7536aa1a838; 4017c9dd-373f-431a-b36f-50e4e5c9f0c0; 6ea0cd56-526c-4966-8f53-7e1721b95a5c; af121387-0b58-498a-8d04-fe0305e4308f; 9626e649-6802-4396-976d-94c0ead1f835; ad00a95c-d066-4158-b361-487abf57dd30; af593219-0800-42da-a51d-d13b35f589e1; 25dbb2d3-a074-4f9f-92ce-b42d8b3d1de2; 57bb231f-f61b-408e-a0c0-106bddd91019 enabled-VGPU-types (SRW): 5b9acd25-06fa-43e1-8b53-c35bceb8515c; 88162a34-1151-49d3-98ae-afcd963f3105; 9b2eaba5-565f-4cb4-ad9b-6347cfb03e93; 739d7b8e-50e2-48a1-ae0d-5047aa490f0e; d0e4a116-a944-42ef-a8dc-62a54c4d2d77; 7ca2399f-89ab-49dd-bf96-75071ced28fc; 67fa06ab-554e-452b-a66e-a4048a5bfdf7; 9611a3f4-d130-4a66-a61b-21d4a2ca4663; d27f84a2-53f8-4430-ad15-0eca225cd974; 125fbbdf-406e-4d7c-9de8-a7536aa1a838; 4017c9dd-373f-431a-b36f-50e4e5c9f0c0; 6ea0cd56-526c-4966-8f53-7e1721b95a5c; af121387-0b58-498a-8d04-fe0305e4308f; 9626e649-6802-4396-976d-94c0ead1f835; ad00a95c-d066-4158-b361-487abf57dd30; af593219-0800-42da-a51d-d13b35f589e1; 25dbb2d3-a074-4f9f-92ce-b42d8b3d1de2; 57bb231f-f61b-408e-a0c0-106bddd91019 resident-VGPUs ( RO): 101fb062-427f-1999-9e90-5a914075e9ca [root@xenserver ~]#

注意

如果 vGPU 当前未运行,则 resident-on 参数不会为 vGPU 实例化,并且 vgpu-param-get 操作返回

复制
已复制!
            

<not in database>

F.3.2. 控制在特定物理 GPU 上启用的 vGPU 类型

物理 GPU 支持多种 vGPU 类型,如支持的 GPU 的虚拟 GPU 类型和用于将整个物理 GPU 分配给虚拟机的“直通”类型(请参阅在 XenServer 上使用 GPU 直通)。

F.3.2.1. 通过使用 XenCenter 控制在特定物理 GPU 上启用的 vGPU 类型

要限制可以在特定物理 GPU 上创建的 vGPU 类型

  1. 在 XenCenter 中打开服务器的GPU 选项卡。
  2. 选择要限制 vGPU 类型的 一个或多个 GPU 旁边的框。
  3. 选择编辑选定的 GPU

    图 33. 使用 XenCenter 编辑 GPU 的启用 vGPU 类型

    control-vgpu-types-on-pgpus-citrix-xenserver-xencenter-screen.png

F.3.2.2. 通过使用 xe 控制在特定物理 GPU 上启用的 vGPU 类型

物理 GPU 的 pgpu 对象的 enabled-vGPU-types 参数控制在特定物理 GPU 上启用的 vGPU 类型。

要修改 pgpu 对象的 enabled-vGPU-types 参数,请使用 xe pgpu-param-set

复制
已复制!
            

[root@xenserver ~]# xe pgpu-param-list uuid=cb08aaae-8e5a-47cb-888e-60dcc73c01d3 uuid ( RO) : cb08aaae-8e5a-47cb-888e-60dcc73c01d3 vendor-name ( RO): NVIDIA Corporation device-name ( RO): GP102GL [Tesla P40] domO-access ( RO): enabled is-system-display-device ( RO): false gpu-group-uuid ( RW): bfel603d-c526-05f3-e64f-951485ef3b49 gpu-group-name-label ( RO): 87:00.0 3D controller: NVIDIA Corporation GP102GL [Tesla P40] (rev al) host-uuid ( RO): fdeb6bbb-e460-4cfl-ad43-49ac81c20540 host-name-label ( RO): xs-72 pci-id ( RO): 0000:87:00.0 dependencies (SRO): other-config (MRW): supported-VGPU-types ( RO): 23e6b80b-le5e-4c33-bedb-e6dlae472fec; f5583e39-2540-440d-a0ee-dde9f0783abf; al8e46ff-4d05-4322-b040-667ce77d78a8; adell9a9-84el-435f-b0e9-14cl62e212fb; 2560d066-054a-48a9-a44d-3f3f90493a00; 47858f38-045d-4a05-9blc-9128fee6b0ab; Ifb527f6-493f-442b-abe2-94a6fafd49ce; 78b8e044-09ae-4a4c-8a96-b20c7a585842; 18ed7e7e-f8b7-496e-9784-8ba4e35acaa3; 48681d88-c4e5-4e39-85ff-c9bal2e8e484 ; cc3dbbfb-4b83-400d-8c52-811948b7f8c4; 8elad75a-ed5f-4609-83ff-5f9bca9aaca2; 840389a0-f511-4f90-8153-8a749d85b09e; a2042742-da67-4613-a538-ldl7d30dccb9; 299e47c2-8fcl-4edf-aa31-e29db84168c6; e95c636e-06e6-4 47e-8b49-14b37d308922; 0524a5d0-7160-48c5-a9el-cc33e76dc0de; 09043fb2-6d67-4443-b312-25688f13e012 enabled-VGPU-types (SRW): 23e6b80b-le5e-4c33-bedb-e6dlae472fec; f5583e39-2540-440d-a0ee-dde9f0783abf; al8e46ff-4d05-4322-b040-667ce77d78a8; adell9a9-84el-435f-b0e9-14cl62e212fb; 2560d066-054a-48a9-a44d-3f3f90493a00; 47858f38-045d-4a05-9blc-9128fee6b0ab; Ifb527f6-493f-442b-abe2-94a6fafd49ce; 78b8e044-09ae-4a4c-8a96-b20c7a585842; 18ed7e7e-f8b7-496e-9784-8ba4e35acaa3; 48681d88-c4e5-4e39-85ff-c9bal2e8e484 ; cc3dbbfb-4b83-400d-8c52-811948b7f8c4; 8elad75a-ed5f-4609-83ff-5f9bca9aaca2; 840389a0-f511-4f90-8153-8a749d85b09e; a2042742-da67-4613-a538-ldl7d30dccb9; 299e47c2-8fcl-4edf-aa31-e29db84168c6; e95c636e-06e6-4 47e-8b49-14b37d308922; 0524a5d0-7160-48c5-a9el-cc33e76dc0de; 09043fb2-6d67-4443-b312-25688f13e012 resident-VGPUs ( RO): [root@xenserver-vgx-test ~]# xe pgpu-param-set uuid=cb08aaae-8e5a-47cb-888e-60dcc73c01d3 enabled-VGPU-types=23e6b80b-le5e-4c33-bedb-e6dlae472fec

F.3.3. 在特定物理 GPU 上创建 vGPU

要精确控制 vGPU 在特定物理 GPU 上的分配,请为您希望在其上分配 vGPU 的物理 GPU 创建单独的 GPU 组。创建虚拟 GPU 时,在其要分配到的物理 GPU 所属的 GPU 组上创建它。

例如,要为 PCI 总线 ID 为 0000:87:00.0 的物理 GPU 创建新的 GPU 组,请按照以下步骤操作

  1. 使用适当的名称创建新的 GPU 组
    复制
    已复制!
                

    [root@xenserver ~]# xe gpu-group-create name-label="GRID P40 87:0.0" 3f870244-41da-469f-71f3-22bc6d700e71 [root@xenserver ~]#

  2. 找到您要分配给新 GPU 组的 PCI 总线 ID 为 0000:87:0.0 的物理 GPU 的 UUID
    复制
    已复制!
                

    [root@xenserver ~]# xe pgpu-list pci-id=0000:87:00.0 uuid ( RO) : f76d1c90-e443-4bfc-8f26-7959a7c85c68 vendor-name ( RO): NVIDIA Corporation device-name ( RO): GP102GL [Tesla P40] gpu-group-uuid ( RW): 134a7b71-5ceb-8066-ef1b-3b319fb2bef3 [root@xenserver ~]

    注意

    传递给 pgpu-list 命令的 pci-id 参数必须采用所示的确切格式,并完全指定 PCI 域(例如,0000),并且 PCI 总线和设备号均为两位数字(例如,87:00.0)。

  3. 通过检查 resident-VGPUs 参数,确保当前没有 vGPU 在物理 GPU 上运行
    复制
    已复制!
                

    [root@xenserver ~]# xe pgpu-param-get uuid=f76d1c90-e443-4bfc-8f26-7959a7c85c68 param-name=resident-VGPUs [root@xenserver ~]#

  4. 如果列出了任何 vGPU,请关闭与其关联的虚拟机。
  5. 将物理 GPU 的 gpu-group-uuid 参数更改为新创建的 GPU 组的 UUID
    复制
    已复制!
                

    [root@xenserver ~]# xe pgpu-param-set uuid=7c1e3cff-1429-0544-df3d-bf8a086fb70a gpu-group-uuid=585877ef-5a6c-66af-fc56-7bd525bdc2f6 [root@xenserver ~]#

现在创建的任何指定此 GPU 组 UUID 的 vgpu 对象都将始终在其 PCI 总线 ID 为 0000:05:0.0 的 GPU 上创建 vGPU。

注意

您可以将多个物理 GPU 添加到手动创建的 GPU 组中——例如,表示多插槽服务器平台中连接到同一 CPU 插槽的所有 GPU——但与自动创建的 GPU 组一样,组中的所有物理 GPU 必须是同一类型。

在 XenCenter 中,手动创建的 GPU 组会显示在虚拟机 GPU 属性中的 GPU 类型列表中。从您希望从中分配 vGPU 的组中选择 GPU 类型:

图 34. 在 XenCenter 中使用自定义 GPU 组

using-custom-gpu-group-in-citrix-xencenter-screen.png

F.4. 克隆启用 vGPU 的虚拟机

XenServer 的快速克隆或复制功能可用于从已配置 NVIDIA vGPU、NVIDIA 驱动程序、应用程序和远程图形软件的“黄金”基础虚拟机映像快速创建新的虚拟机。

克隆虚拟机时,与基础虚拟机关联的任何 vGPU 配置都将复制到克隆的虚拟机。启动克隆的虚拟机将创建与原始虚拟机相同类型的 vGPU 实例,该实例来自与原始 vGPU 相同的 GPU 组。

F.4.1. 通过使用 xe 克隆启用 vGPU 的虚拟机

要从 dom0 shell 克隆启用 vGPU 的虚拟机,请使用 vm-clone

复制
已复制!
            

[root@xenserver ~]# xe vm-clone new-name-label="new-vm" vm="base-vm-name" 7f7035cb-388d-1537-1465-1857fb6498e7 [root@xenserver ~]#

F.4.2. 通过使用 XenCenter 克隆启用 vGPU 的虚拟机

要通过使用 XenCenter 克隆启用 vGPU 的虚拟机,请使用虚拟机的复制虚拟机命令,如图 图 35所示。

图 35. 使用 XenCenter 克隆虚拟机

cloning-vgpu-enabled-vms-citrix-xenserver-xencenter-screen.png

本章提供了关于优化在 XenServer 上使用 NVIDIA vGPU 运行的虚拟机的性能的建议。

G.1. XenServer Tools

为了最大限度地发挥在 XenServer 上运行的虚拟机的性能,无论您是否使用 NVIDIA vGPU,都必须在虚拟机中安装 XenServer tools。如果没有 XenServer tools 提供的优化网络和存储驱动程序,在 NVIDIA vGPU 上运行的远程图形应用程序将无法提供最佳性能。

G.2. 使用远程图形

NVIDIA vGPU 实现了一个控制台 VGA 接口,允许通过 XenCenter 的控制台选项卡查看虚拟机的图形输出。此功能允许在虚拟机中加载任何 NVIDIA 图形驱动程序之前,在 XenCenter 中看到启用 vGPU 的虚拟机的桌面,但它仅用作管理便利;它仅支持 vGPU 主显示的输出,并且并非设计或优化为提供高帧率。

为了从 vGPU 上的多个显示器提供高帧率,NVIDIA 建议您安装高性能远程图形堆栈,例如带有 HDX 3D Pro 远程图形的 Citrix Virtual Apps and Desktops,并在安装堆栈后禁用 vGPU 的控制台 VGA。

G.2.1. 禁用控制台 VGA

vGPU 中的控制台 VGA 接口经过优化,可消耗最少的资源,但是当系统加载大量虚拟机时,完全禁用控制台 VGA 接口可能会产生一些性能优势。

一旦您安装了访问虚拟机的替代方法(例如 Citrix Virtual Apps and Desktops 或 VNC 服务器),就可以按如下方式禁用其 vGPU 控制台 VGA 接口,具体取决于您使用的 XenServer 版本

  • Citrix Hypervisor 8.1 或更高版本:使用 xe 命令创建 vGPU,并为 vGPU 所属的组指定插件参数
    1. 创建 vGPU。
      复制
      已复制!
                  

      [root@xenserver ~]# xe vgpu-create gpu-group-uuid=gpu-group-uuid vgpu-type-uuid=vgpu-type-uuid vm-uuid=vm-uuid

      此命令返回存储在 XAPI 中的 vgpu-uuid
    2. 为 vGPU 所属的组指定插件参数。
      复制
      已复制!
                  

      [root@xenserver ~]# xe vgpu-param-set uuid=vgpu-uuid extra_args=disable_vnc=1

  • Citrix Hypervisor 8.1 之前的版本:在虚拟机的 platform:vgpu_extra_args 参数中指定 disable_vnc=1
    复制
    已复制!
                

    [root@xenserver ~]# xe vm-param-set uuid=vm-uuid platform:vgpu_extra_args="disable_vnc=1"

    新的控制台 VGA 设置在虚拟机下次启动或重启时生效。禁用控制台 VGA 后,XenServer 控制台将显示虚拟机的 Windows 启动画面,但除此之外什么也没有。
注意

如果您在安装或启用访问虚拟机的替代机制(例如 Citrix Virtual Apps and Desktops)之前禁用控制台 VGA,则一旦虚拟机启动,您将无法与其交互。

您可以通过进行以下更改之一来恢复控制台 VGA 访问

  • 删除 vGPU 插件的参数
    • Citrix Hypervisor 8.1 或更高版本:从 vGPU 所属的组中删除 extra_args
    • Citrix Hypervisor 8.1 之前的版本:platform 参数中删除 vgpu_extra_args
  • extra_argsvgpu_extra_args 键中删除 disable_vnc=1
  • 设置 disable_vnc=0,例如
    • Citrix Hypervisor 8.1 或更高版本
      复制
      已复制!
                  

      [root@xenserver ~]# xe vgpu-param-set uuid=vgpu-uuid extra_args=disable_vnc=0

    • Citrix Hypervisor 8.1 之前的版本
      复制
      已复制!
                  

      [root@xenserver ~]# xe vm-param-set uuid=vm-uuid platform:vgpu_extra_args="disable_vnc=0"

声明

本文档仅供参考,不应被视为对产品特定功能、条件或质量的保证。NVIDIA Corporation(“NVIDIA”)对本文档中包含信息的准确性或完整性不作任何明示或暗示的陈述或保证,并且对本文档中包含的任何错误不承担任何责任。NVIDIA 对因使用此类信息或因使用此类信息而可能导致的任何专利或第三方其他权利的侵犯不承担任何责任。本文档不构成对开发、发布或交付任何材料(如下所定义)、代码或功能的承诺。

NVIDIA 保留随时对此文档进行更正、修改、增强、改进和任何其他更改的权利,恕不另行通知。

客户在下订单之前应获取最新的相关信息,并应验证此类信息是否为最新且完整。

NVIDIA 产品的销售受订单确认时提供的 NVIDIA 标准销售条款和条件的约束,除非 NVIDIA 和客户的授权代表签署的单独销售协议(“销售条款”)另有约定。NVIDIA 在此明确反对将任何客户通用条款和条件应用于购买本文档中引用的 NVIDIA 产品。本文档既不直接也不间接地构成任何合同义务。

NVIDIA 产品并非设计、授权或保证适用于医疗、军事、航空、航天或生命维持设备,也不适用于 NVIDIA 产品的故障或故障可能合理预期会导致人身伤害、死亡、或财产或环境损害的应用。NVIDIA 对在上述设备或应用中包含和/或使用 NVIDIA 产品不承担任何责任,因此,此类包含和/或使用由客户自行承担风险。

NVIDIA 不保证或声明基于本文档的产品将适用于任何特定用途。NVIDIA 不一定执行每个产品所有参数的测试。客户全权负责评估和确定本文档中包含的任何信息的适用性,确保产品适合且适用于客户计划的应用,并为应用执行必要的测试,以避免应用或产品的默认设置。客户产品设计中的缺陷可能会影响 NVIDIA 产品的质量和可靠性,并可能导致超出本文档中包含的附加或不同条件和/或要求。NVIDIA 对任何可能基于或归因于以下原因的默认设置、损坏、成本或问题不承担任何责任:(i) 以任何违反本文档的方式使用 NVIDIA 产品或 (ii) 客户产品设计。

本文档未授予 NVIDIA 专利权、版权或 NVIDIA 其他知识产权下的任何明示或暗示的许可。NVIDIA 发布的关于第三方产品或服务的信息不构成 NVIDIA 授予使用此类产品或服务的许可,也不构成对其的保证或认可。使用此类信息可能需要获得第三方专利或其他知识产权下的第三方许可,或获得 NVIDIA 专利或其他知识产权下的 NVIDIA 许可。

只有在事先获得 NVIDIA 书面批准的情况下,才能复制本文档中的信息,并且复制必须在不更改且完全符合所有适用的出口法律和法规的情况下进行,并且必须附带所有相关的条件、限制和声明。

本文档和所有 NVIDIA 设计规范、参考板、文件、图纸、诊断程序、列表和其他文档(统称和单独称为“材料”)均按“原样”提供。NVIDIA 对材料不作任何明示、暗示、法定或其他保证,并且明确否认对不侵权、适销性和特定用途适用性的所有暗示保证。在法律未禁止的范围内,在任何情况下,NVIDIA 均不对因使用本文档而引起的任何损害(包括但不限于任何直接、间接、特殊、附带、惩罚性或后果性损害,无论如何造成且不论责任理论如何)承担责任,即使 NVIDIA 已被告知可能发生此类损害。尽管客户可能因任何原因而遭受任何损害,但 NVIDIA 对本文所述产品的对客户的累计总责任应根据产品的销售条款中的规定进行限制。

VESA DisplayPort

DisplayPort 和 DisplayPort Compliance Logo、DisplayPort Compliance Logo for Dual-mode Sources 以及 DisplayPort Compliance Logo for Active Cables 是 Video Electronics Standards Association 在美国和其他国家/地区拥有的商标。

HDMI

HDMI、HDMI 标志和 High-Definition Multimedia Interface 是 HDMI Licensing LLC 的商标或注册商标。

OpenCL

OpenCL 是 Apple Inc. 的商标,已获得 Khronos Group Inc. 的许可使用。

商标

NVIDIA、NVIDIA 标志、NVIDIA GRID、NVIDIA GRID vGPU、NVIDIA Maxwell、NVIDIA Pascal、NVIDIA Turing、NVIDIA Volta、GPUDirect、Quadro 和 Tesla 是 NVIDIA Corporation 在美国和其他国家/地区的商标或注册商标。其他公司和产品名称可能是与其相关的各自公司的商标。

1帧缓冲区小于 1 GB 的 NVIDIA vGPU 在 Windows 10 客户操作系统上仅支持 1 个虚拟显示头。

2 -1B4 和 -2B4 vGPU 类型在此版本中已弃用,并可能在未来的版本中删除。为了准备可能删除这些 vGPU 类型,请使用以下 vGPU 类型,它们提供等效的功能
  • 对于 -1B4 vGPU 类型,请使用 -1B vGPU 类型。
  • 对于 -2B4 vGPU 类型,请使用 -2B vGPU 类型。

3 在许多工作负载下,-1B 和 -1B4 vGPU 仅使用每个 vGPU 2 个 2560×1600 虚拟显示器即可充分发挥性能。如果您想每个 vGPU 使用超过 2 个 2560×1600 虚拟显示器,请使用具有更多帧缓冲区的 vGPU,例如 -2B 或 -2B4 vGPU。有关更多信息,请参阅 NVIDIA GRID vPC 尺寸调整指南 (PDF)

4 A 系列 NVIDIA vGPU 支持以低分辨率的单个显示器用作远程应用程序环境(如 RDSH 和 Citrix Virtual Apps and Desktops)中的控制台显示器。A 系列 NVIDIA vGPU 的最大分辨率和虚拟显示头数量仅适用于控制台显示器。每个 RDSH 或 Citrix Virtual Apps and Desktops 会话的最大分辨率由远程解决方案决定,并且受 vGPU 最大分辨率的限制。同样,每个会话支持的虚拟显示头数量由远程解决方案决定,并且受 vGPU 的限制。

5 每个 GPU 的最大 vGPU 数量限制为 32 个。

6 每个 GPU 的最大 vGPU 数量限制为 32 个。

7 每个 GPU 的最大 vGPU 数量限制为 32 个。

8 每个 GPU 的最大 vGPU 数量限制为 32 个。

9 每个 GPU 的最大 vGPU 数量限制为 32 个。

10 每个 GPU 的最大 vGPU 数量限制为 32 个。

11 每个 GPU 的最大 vGPU 数量限制为 32 个。

12 每个 GPU 的最大 vGPU 数量限制为 32 个。

13 每个 GPU 的最大 vGPU 数量限制为 32 个。

© 2013-2025 NVIDIA Corporation 及关联公司。保留所有权利。 上次更新时间:2025 年 1 月 14 日。