跳至主要内容

什么是GPU直通?

GPU直通

GPU 直通是一种虚拟化技术,它允许将物理图形处理单元(GPU) 直接分配给单个虚拟机 (VM)。这使得虚拟机能够像在裸机硬件上运行一样访问 GPU 的全部功能。GPU 直通绕过了虚拟机管理程序的抽象层,为图形密集型或计算密集型工作负载提供接近原生性能。

此功能在虚拟桌面基础架构(VDI)、人工智能(AI)、机器学习(ML) 和高性能计算(HPC) 等应用场景中至关重要,因为在这些场景中,GPU加速对于实现最佳性能必不可少。与共享或模拟的 GPU 资源不同,直通功能将整个 GPU 分配给单个虚拟机,从而提供最大的吞吐量和最小的延迟。

GPU 直通通常使用 KVM(基于内核的虚拟机)、VMware ESXi 和 Citrix Hypervisor 等虚拟化平台来实现,并且通常与现代中央处理器 (CPU) 和主板中提供的 IOMMU(输入/输出内存管理单元)技术结合使用。

GPU直通的工作原理

GPU 直通是通过硬件和软件层面的虚拟化支持相结合的方式实现的,特别是 PCI Express( PCIe )利用IOMMU技术实现设备直通。这使得物理GPU可以直接映射到客户虚拟机,绕过主机系统的控制,并使虚拟机能够直接、低延迟地访问GPU。

硬件配置

要使 GPU 直通功能正常工作,服务器必须支持 IOMMU(输入/输出内存管理单元),该单元可实现设备隔离和内存地址重映射。 PCIe 设备。在英特尔平台上,此功能称为英特尔 VT-d;在AMD 系统,它被称为AMD -六、两者都必须得到CPU、主板芯片组和固件的支持。

要激活 IOMMU,用户必须在系统 BIOS 或 UEFI 设置中启用它。这通常涉及启用虚拟化扩展(VT-d 或 UEFI)。 AMD -Vi)并确保PCIe 如果平台支持,则启用访问控制服务 (ACS)。某些系统可能还需要禁用安全启动或快速启动等功能才能实现完整的直通功能。

驱动程序安装

将 GPU 分配给虚拟机后,必须在客户操作系统 (OS) 上安装相应的厂商特定驱动程序,例如NVIDIAAMDIntel GPU 驱动程序。这些驱动程序使客户操作系统能够识别和利用物理 GPU 的全部功能,包括 3D 加速、用于并行计算的CUDA核心以及硬件加速渲染管线。

在某些情况下,可能需要在客户机中禁用虚拟机管理程序级别的图形接口,以防止驱动程序冲突,从而确保只使用直通 GPU。

虚拟机管理程序设置

IOMMU 激活后,下一步是配置支持该功能的虚拟机管理程序。 PCIe 直通模式。常用的选择包括 KVM/QEMU、VMware ESXi 和 Citrix Hypervisor(以前称为 XenServer)。这些平台使用底层虚拟化驱动程序和 API 来实现直接连接。 PCIe 设备分配给客户虚拟机。

例如,在 KVM 环境中,设备直通通过 vfio-pci 内核模块进行配置,从而确保安全隔离的设备访问。VMware ESXi 使用 DirectPath I/O 将 GPU 直接暴露给虚拟机,以最小的虚拟化开销实现接近原生性能。

设备绑定

GPU 直通的关键步骤是将 GPU 从宿主机系统分离并绑定到虚拟机。这可以通过解除 GPU 的绑定来实现。 PCIe 从任何默认主机驱动程序获取地址,并将其绑定到直通驱动程序,例如 vfio-pci。

GPU 绑定后,宿主机操作系统将完全无法访问该 GPU,只能由指定的虚拟机使用。这可以防止冲突并确保独占 GPU 访问权限,这对于实时渲染、仿真或深度学习模型训练等对延迟敏感的工作负载至关重要。

GPU直通的优势与挑战

GPU 直通使虚拟机能够直接访问物理 GPU,绕过虚拟机管理程序的抽象层,从而提供接近原生性能。这使其非常适合计算密集型工作负载,例如 AI 训练、计算机辅助设计 (CAD) 渲染和实时仿真。为虚拟机分配专用 GPU 还可以提高隔离性和性能一致性,这在生产环境中至关重要。

除了提升原始性能之外,直通功能还能通过在虚拟桌面、远程工作站和容器化应用程序中启用 GPU 加速来扩展虚拟化功能。它使企业能够在更少的物理服务器上整合工作负载,同时保持每个虚拟机的高性能,从而提高硬件利用率和运营效率。

然而,GPU 直通存在一些技术挑战。它需要 CPU 和主板层面的 IOMMU 支持、正确的 BIOS 或 UEFI 配置,以及支持直通的 GPU。许多消费级 GPU 缺乏完整的虚拟化支持,这可能导致在客户操作系统中出现兼容性问题或驱动程序问题。

设置复杂性是另一个因素,通常需要修改内核、精确绑定设备以及进行虚拟机管理程序级别的调优。故障排除通常非常耗时,尤其是在无头服务器上,而且更改通常需要重启,因为直通 GPU 的热插拔支持有限或不可用。

GPU直通的硬件要求

实现 GPU 直通需要支持 IOMMU 虚拟化功能的服务器硬件,例如 Intel VT-d 或AMD -Vi,以及正确的 BIOS 或 UEFI 配置。CPU、主板芯片组和固件必须全部兼容,GPU 必须支持直通功能,这通常见于 NVIDIA A100 或 NVIDIA A100 等企业级显卡。 AMD 本能 MI 系列。

此外,系统应提供足够的PCIe 提供充足的通道和电源,以支持全尺寸 GPU。服务器平台针对高密度 GPU 工作负载进行了优化,通常配备先进的PCIe 为了在管理良好的数据中心环境中实现高效的直通配置,需要拓扑结构、强大的冷却架构和固件级直通支持。

常见问题

  1. 如何启用GPU直通?
    通过激活 IOMMU 支持(VT-d 或)来启用 GPU 直通。 AMD在系统 BIOS 或 UEFI 中找到相应的设置(-Vi),然后配置您的虚拟机管理程序(例如 KVM 或 VMware ESXi),将 GPU 直接分配给虚拟机。您还需要将 GPU 从主机驱动程序中解绑,并在客户虚拟机中安装相应的 GPU 驱动程序。
  2. GPU直通需要两块GPU吗?
    虽然并非绝对必要,但建议使用两块GPU。一块专用于主机系统,另一块专用于虚拟机。这样可以确保主机能够维持显示输出和系统稳定性,同时虚拟机使用的GPU完全隔离。
  3. GPU直通功能是否支持容器?
    是的,如果虚拟机本身具有直接的 GPU 访问权限,则可以在容器中使用 GPU 直通。此外,诸如 NVIDIA Docker 或 GPU 操作框架之类的容器专用解决方案也为 Kubernetes 环境提供了 GPU 访问权限。