NVIDIA RTX vWS:虚拟化工作负载的尺寸调整和 GPU 选择指南

部署最佳实践

IT 基础设施非常复杂,涉及多种服务器类型,它们具有不同的 CPU、内存、存储和网络资源。部署通常涉及地理上分散的用户群、多个数据中心以及基于云的计算和存储资源的混合。围绕这些变量定义部署范围并为每种部署类型进行概念验证 (POC) 至关重要。

需要考虑的其他因素包括您选择的 NVIDIA vGPU 认证 OEM 服务器、该平台支持的 NVIDIA GPU 以及数据中心的任何电源和散热限制。有关安装和服务器配置步骤的更多信息,请参阅 NVIDIA vGPU on VMware vSphereCitrix Hypervisor 部署指南。

最成功的部署在用户密度(可扩展性)和高质量用户体验之间取得平衡。这种平衡是通过在生产环境中使用 NVIDIA RTX vWS 虚拟机,同时收集客观测量数据和最终用户的主观反馈来实现的。

表 20 - 平衡用户密度和用户体验的指标

客观测量

主观反馈

应用程序加载时间 整体用户体验
数据集加载时间 应用程序性能
利用率(CPU、GPU、网络) 缩放和平移体验
每秒帧数 (FPS) 视频流

如前一章所述,几种 NVIDIA 特定的和第三方行业工具可以帮助验证您的部署,并确保其提供可接受的最终用户体验和最佳密度。未能利用这些工具可能会导致不必要的风险和糟糕的最终用户体验。

在部署之前执行 POC 的另一个好处是,它可以更准确地对每个虚拟应用程序的用户行为和 GPU 需求进行分类。客户通常将最终用户划分为每个应用程序的用户类型,并将相似的用户类型捆绑在主机上。轻度用户可以在较小的 vGPU 配置文件大小上获得支持,而重度用户则需要更多的 GPU 资源,以及像 L40S 可以实现的那样的大配置文件大小。

请注意,虽然 NVIDIA A16 板的总帧缓冲区大小为 64GB,但 A16 上的每个 GPU 都有 16GB,因此 A16 上支持的最大配置文件大小为 16Q。但是,L40S 在一个板上有一个 GPU,最多支持 48Q 配置文件大小。与您的应用程序 ISV 和 NVIDIA 代表合作,以帮助您确定适合您部署需求的正确许可证和 NVIDIA GPU。

像 SPECviewperf 这样的基准测试工具对于调整部署规模很有价值,但也有局限性。这些基准测试模拟峰值工作负载,代表所有虚拟机中 GPU 需求最高的时期。它们没有考虑到系统利用率不足的时候,也没有考虑到虚拟机监控程序的功能(如尽力而为调度),这些功能可以在保持一致性能的同时提高用户密度。

下图说明了用户工作流程通常是交互式的,其特点是频繁的短暂空闲期,此时用户需要的虚拟机监控程序和 NVIDIA vGPU 资源较少。可扩展性提高的程度取决于典型的用户活动,如会议、休息、多任务处理和其他因素。

vgpu-013.png

图 13 - 基准测试与典型最终用户的比较

注意

为了进行准确的基准测试,建议禁用帧率限制器 (FRL)。有关如何禁用 FRL 的详细说明,请参阅 NVIDIA 虚拟 GPU 软件文档中您选择的虚拟机监控程序的发行说明。

NVIDIA RTX vWS 提供三种 GPU 调度选项,旨在满足客户的各种服务质量 (QoS) 要求。有关 GPU 调度的更多信息,请访问 此处

  • 固定份额调度:基于预定义的时间片,确保为同一物理 GPU 上的每个 vGPU 提供一致的、专用的 QoS。这通过允许使用像 SPECviewperf 这样的通用基准测试来比较物理工作站和虚拟工作站之间的性能,从而简化了 POC。

  • 尽力而为调度:在更高的可扩展性下提供一致的性能,降低每个用户的总拥有成本 (TCO)。此调度器使用轮询算法根据实时需求共享 GPU 资源,动态分配时间片。它优化了空闲期间的资源利用率,从而提高用户密度和 QoS。

  • 平均份额调度:通过平均分配时间片,为每个正在运行的 VM 分配相等的 GPU 资源。这种方法在添加或删除 vGPU 时动态调整资源分配,在低利用率期间提高性能,并在高需求期间平衡资源。

组织通常采用尽力而为 GPU 调度器策略,以最大化 GPU 利用率,在每台服务器上支持更多用户,同时降低 QoS 并改善每个用户的 TCO。

vgpu-014.png

图 14 - 基于专用性能与尽力而为配置的每 GPU VM 性能利用率比较

物理 GPU 具有固定数量的通道。分配给每个 vGPU 配置文件的通道数量与配置文件相对于 GPU 的大小成正比。当分配给 vGPU 的通道耗尽,并且分配了 vGPU 的客户机 VM 无法为 vGPU 分配通道时,就会发生问题。

为了避免通道错误,请使用具有更多帧缓冲区的 vGPU 配置文件,这样可以获得更多通道。请注意,增加 vGPU 大小意味着物理 GPU 上支持的实例数量会减少。因此,分配给每个 vGPU 的通道数量会增加。

Ampere 及更高版本的 GPU 每个 GPU 引擎(计算/图形、复制引擎、视频编码器/解码器)有 2048 个通道。

Ampere 及更高版本上每个 vGPU 的通道数由以下公式给出

(小于(2048 / vGPU 类型最大实例数)的最大 2 的幂)- 3。

例如,NVIDIA L4 上的 1B vGPU 配置文件的最大数量为 24。2048 个通道除以 24,得到 85 个通道,小于 85 的最大 2 的幂是 64,这在开销之前为每个 VM 提供 64 个通道。接下来,从 64 个通道中减去 3 个通道,这为每个 L4-1B vGPU 实例提供 61 个通道。

(小于 (2048/24) 的最大 2 的幂)- 3 = 每个 L4-1B vGPU 实例 61 个通道。

每个 GPU 配置文件的通道分配示例

表 21 - 每个 GPU 配置文件的通道分配示例

GPU 配置文件

每个 vGPU 实例的通道数

A16-1B 每个 A16-1B vGPU 实例 125 个通道(16 x 4 卡 = 最大 64 个)
A16-2B 每个 A16-2B vGPU 实例 253 个通道
L4-1B 每个 L4-1B vGPU 实例 61 个通道
L4-2B 每个 L4-2B vGPU 实例 125 个通道

通道利用率与 vGPU VM 中运行的单线程和多线程应用程序以及操作系统和启动开销有关。因此,不同的应用程序将具有不同的通道利用率。

当分配给 vGPU 的通道耗尽,并且客户机 VM 无法分配通道时,虚拟机监控程序主机上或 NVIDIA 错误报告中会报告以下错误

复制
已复制!
            

Jun 26 08:01:25 srvxen06f vgpu-3[14276]: error: vmiop_log: (0x0): Guest attempted to allocate channel above its max channel limit 0xfb Jun 26 08:01:25 srvxen06f vgpu-3[14276]: error: vmiop_log: (0x0): VGPU message 6 failed, result code: 0x1a Jun 26 08:01:25 srvxen06f vgpu-3[14276]: error: vmiop_log: (0x0): 0xc1d004a1, 0xff0e0000, 0xff0400fb, 0xc36f, Jun 26 08:01:25 srvxen06f vgpu-3[14276]: error: vmiop_log: (0x0): 0x1, 0xff1fe314, 0xff1fe038, 0x100b6f000, 0x1000, Jun 26 08:01:25 srvxen06f vgpu-3[14276]: error: vmiop_log: (0x0): 0x80000000, 0xff0e0200, 0x0, 0x0, (Not logged), Jun 26 08:01:25 srvxen06f vgpu-3[14276]: error: vmiop_log: (0x0): 0x1, 0x0 Jun 26 08:01:25 srvxen06f vgpu-3[14276]: error: vmiop_log: (0x0): , 0x0

在 POC 期间监控 GPU 通道使用情况

为了帮助评估工作负载是否接近 GPU 通道限制,可以配置新的 channel_usage_threshold_percentage 参数,以便在 GPU 通道使用率超过设定的阈值时发出警告。此功能有助于了解 POC 期间的通道使用情况,从而降低由于通道耗尽而造成的生产风险。

对于要设置插件参数的每个 vGPU,请按照特定于虚拟机监控程序的设置步骤操作

默认情况下,警告处于禁用状态,但在 POC 期间可以启用以观察通道使用率是否接近耗尽。使用以下命令设置阈值

复制
已复制!
            

echo "channel_usage_threshold_percentage=<percentage>" > /sys/bus/mdev/devices/<UUID>/nvidia/vgpu_params

示例:将阈值设置为 80%

复制
已复制!
            

echo "channel_usage_threshold_percentage=80" > /sys/bus/mdev/devices/<UUID>/nvidia/vgpu_params

当使用率超过阈值时,警告会出现在 syslog 中

复制
已复制!
            

Sep 10 08:39:52 smc120-0003 nvidia-vgpu-mgr[313728]: notice: vmiop_log: Guest current channel usage 81% on engine 0x1 exceeds threshold channel usage 80%

注意

此通道阈值监控 POC 不能在 Ada 和 Hopper vGPU 类型上执行。

上一页 示例 VDI 部署配置
下一页 结论
© 版权所有 © 2013-2025,NVIDIA Corporation。 上次更新于 2025 年 1 月 14 日。