如何在具有多 GPU 设置的 VPS 上配置 NVLink

热门:
升级您的服务器配置! 申请 AVA 并使用 立减 15%
使用优惠码:

在带有 Multi-GPU 设置的 VPS 上配置 NVLink

NVLink,NVIDIA 的高带宽 GPU 互连,通过实现快速内存共享和数据传输,彻底改变了 Multi-GPU 工作负载,远远超越了 PCIe 的限制。对于数据科学家、ML 工程师或 HPC 用户,NVLink 可以加速深度学习模型训练或大规模仿真等任务。例如,你可以将 NVLink 与双 A100 GPUs 一起使用,通过汇总 GPU 内存来更快地训练大型语言模型。然而,在虚拟化环境中配置 NVLink 很复杂,需要特定的硬件和设置。本指南将解释 NVLink、它在 VPS 中的限制,以及如何对其进行配置以获得最佳性能。

限制与注意事项

  • 并非所有 VPS 提供商都支持 NVLink 设置。

  • 只有 基于 bare-metal 的 VPS支持直接直通的专用 GPU 虚拟机才能让 NVLink 正常工作。

  • 在 Docker 等容器化环境中不支持 NVLink,除非直接在主机上运行。

什么是 NVLink?

NVLink 允许两个或更多兼容的 NVIDIA GPUs:

  • 在 GPUs 之间共享内存以处理大型数据集

  • 以高达 600 GB/s total bandwidth 的速度交换数据

  • 无需 CPU 参与即可更快地执行multi-GPU training

支持的 GPUs 包括:

  • NVIDIA A100, V100, RTX 3090, 4090, A6000, 等。

  • 通常需要一个physical NVLink bridge

VPS 中的 NVLink:前提条件

在尝试在 VPS 上配置 NVLink 之前,请确保满足以下条件:

主机硬件

  • physical server必须具备:

    • 至少two NVLink-compatible GPUs

    • 已安装 NVLink bridge(s)

    • 支持 NVLink 的 BIOS 和 firmware

  • 常见的兼容配置包括双 A100 或带 NVLink bridge 的 RTX 3090。

VPS 配置

  • VPS 必须部署在支持GPU passthrough-enabled hypervisor的环境上,例如:

    • KVM/QEMU 配合 VFIO(PCI passthrough)

    • VMware ESXi 配合 DirectPath I/O

    • Proxmox VE 配合 GPU passthrough

⚠️ 注意:NVLink does not work across virtualized devices,除非both GPUs are passed through as full PCIe devices到同一个 VM。

步骤 1:确保 GPUs 直通

主机需要将both physical GPUs直接传递给你的 VPS。

对于带 VFIO 的 KVM/QEMU:

# Example for assigning two GPUs via vfio-pci

echo "vendor_id device_id" > /sys/bus/pci/devices/0000:65:00.0/driver/unbind
echo "vendor_id device_id" > /sys/bus/pci/devices/0000:66:00.0/driver/unbind
echo "vendor_id device_id" > /sys/bus/pci/drivers/vfio-pci/new_id

更新 libvirt qemu XML 以直通两块 GPU。

步骤 2:安装 NVIDIA 驱动

在 VPS(guest OS)内部,安装latest NVIDIA driver

sudo apt update
sudo apt install -y nvidia-driver-535

安装后重启。

进入 guest OS 后:

nvidia-smi topo -m

你应该会看到:

GPU0GPU1CPU Affinity
GPU0XNV10-15
GPU1NV1X0-15

其中 NV1 表示 GPU0 和 GPU1 之间的 NVLink 已激活。

步骤 4:启用 Peer-to-Peer Access(可选但推荐)

nvidia-smi p2p

确保 Peer-to-Peer Access 都标记为 Enabled.

安全注意事项

  • Isolated access:在使用完整 GPU passthrough 时,确保你的 VPS 没有超额分配或与他人共用主机。

  • No shared memory leakage:NVLink 会创建共享内存空间——请将访问限制在受信任的环境中。

  • 审计对 /dev/nvidia devices 的访问*。

 

症状可能原因修复方法
nvidia-smi 中未显示 NVLinkGPUs 未正确桥接关闭主机电源并重新安装 physical NVLink bridge
仅看到一块 GPUPassthrough 配置错误检查 VM XML/device passthrough 设置
Peer-to-peer 已禁用驱动不匹配或 BIOS 设置升级驱动,检查 BIOS 是否支持 NVLink
带宽较低NVLink lanes 利用不足使用 nvidia-smi nvlink –status 验证 lanes

 

NVLink 对 GPU 密集型工作负载来说是一个改变游戏规则的技术,在正确配置后可带来巨大的性能优势——即使在虚拟环境中也是如此。通过直接 GPU passthrough 和仔细设置,你可以在 VPS 上利用 Multi-GPU 互连的强大能力,将其变成一个适用于高要求应用的高性能计算节点。