AMD Strix Halo RDMA 集群搭建指南
AMD Strix Halo RDMA 集群搭建指南
大语言模型 (LLM) 的分布式推理通常需要高带宽、低延迟的互连技术来同步张量数据。对于 AMD Strix Halo 平台,通过 Intel E810 NIC 使用 RDMA over Converged Ethernet (RoCE v2) 可以将节点间延迟从 ~70-100µs (TCP/IP) 降低到 ~5µs,从而有效地使两个独立的节点在张量并行 (TP) 模式下表现得像一台单一机器。
架构与核心概念
为了在 Strix Halo 上实现分布式推理,三个主要的软件层负责编排工作负载:
- vLLM: 推理引擎,通过张量并行将模型拆分到不同节点。
- Ray: 分布式计算框架,负责管理控制平面,并在集群中编排工作进程。
- RCCL (ROCm Collective Communication Library): AMD 版的 NVIDIA NCCL。它负责管理数据平面,处理 GPU 之间张量数据的高速同步。
RoCE v2 在这里至关重要,因为它允许 RCCL 直接将数据从一个节点的内存写入另一个节点,绕过 CPU 和操作系统内核,这对于维持交互式 Token 生成速度至关重要。
硬件要求
构建两个节点的 Strix Halo 集群需要以下硬件:
- 计算节点: 2x Framework Desktop Mainboards,搭载 AMD Ryzen AI MAX+ "Strix Halo" 并配备 128GB 统一内存。
- 网络接口卡 (NICs): 2x Intel Ethernet Controller E810-CQDA1 (或类似的 100GbE QSFP28 网卡)。
- 互连: 直接附着铜缆 (DAC) (例如 QSFP28 DAC),用于实现无需交换机的节点间直接连接。
- 物理接口: 由于 Framework 主板的 PCIe 插槽物理上为 x4,因此需要一个 PCIe 4x 转 16x 的转接卡/延长线,以适配 x16 的 NIC。
主机配置 (Fedora 43)
两个节点都必须配置在 Fedora 43 上 (已验证内核 6.18.5-200.fc43.x86_64 和 6.18.6-200.fc43.x86_64)。
驱动与软件包安装
使用 DNF 安装核心 RDMA 用户空间工具:
sudo dnf install rdma-core libibverbs-utils perftest
该设置利用内核中的 ice (Ethernet) 和 irdma (RDMA) 驱动;不需要使用 Intel 专有驱动。
网络设置
分配静态 IP 并启用巨型帧 (MTU 9000) 以减少 CPU 开销。对于子网 192.168.100.0/30:
- 节点 1:
192.168.100.1/30 - 节点 2:
192.168.100.2/30
使用 rdma link 验证链路状态,状态应显示为 ACTIVE 和 LINK_UP。
BIOS 与内核优化
为了最大限度地利用 iGPU 的可用统一内存并优化 RDMA 性能,请应用以下设置:
- BIOS: 将 iGPU 内存分配设置为最小值 (512MB)。
- 内核参数: 在
/etc/default/grub的GRUB_CMDLINE_LINUX中追加以下内容:iommu=pt pci=realloc pcie_aspm=off amdgpu.gttsize=126976 ttm.pages_limit=32505856
参数详解:
iommu=pt: 启用透传模式 (Pass-Through) 以减少 NIC 和 iGPU 的开销。pci=realloc: 重新分配 PCI BARs 以映射大地址空间。pcie_aspm=off: 禁用活动状态电源管理 (ASPM) 以防止延迟抖动。amdgpu.gttsize&ttm.pages_limit: 将 GPU GTT 大小限制在 ~124GiB,允许 GPU 将系统 RAM 作为 VRAM 使用。
软件安装与 vLLM 部署
RCCL 补丁
此设置的一个关键要求是自定义构建的 librccl.so 库。上游 ROCm 软件包目前尚不支持 gfx1151 (Strix Halo) RDMA。kyuz0/vllm-therock-gfx1151 Docker 镜像包含了此补丁库。
Toolbox 设置
在两个节点上运行 ./refresh_toolbox.sh。该脚本会拉取补丁镜像并配置容器以暴露 /dev/dri, /dev/kfd, 和 /dev/infiniband,同时设置 --ulimit memlock=-1 以进行 DMA 内存锁定。
运行集群
- 编排: 使用
start-vllm-clusterTUI 工具来配置 IP 并启动 Ray 集群。节点 1 被指定为