← 返回信息流
AI 资讯Hacker News·2 小时前

AMD Strix Halo RDMA集群搭建指南

原标题:AMD Strix Halo RDMA Cluster Setup Guide

速览

AMD发布了针对其Strix Halo处理器的RDMA(远程直接内存访问)集群搭建指南。该指南旨在帮助开发者更高效地构建高性能计算集群,优化数据传输效率。此举对于提升AI训练及大规模并行计算性能具有重要意义。

AI 深度解读

AMD Strix Halo RDMA 集群搭建指南深度解读

背景

随着 AMD Ryzen AI MAX+ "Strix Halo" APU 的发布,高性能边缘计算和小型集群部署迎来了新的可能性。Strix Halo 拥有高达 128GB 的统一内存(Unified Memory),这使其能够处理远超传统消费级 GPU 显存限制的模型。然而,要充分发挥其潜力,特别是在分布式推理场景下,节点间的通信延迟成为关键瓶颈。

本指南源自 Hacker News 社区分享,详细阐述了如何构建一个由两个节点组成的 AMD Strix Halo 集群。该集群通过 Intel E810 网卡(支持 RoCE v2 协议)进行高速互联,旨在运行基于 vLLM 框架的大语言模型分布式推理。其核心目标是通过张量并行(Tensor Parallelism, TP)将大模型拆分到两个节点上协同工作,并利用 RDMA(远程直接内存访问)技术消除 CPU 和操作系统内核的开销,实现微秒级的通信延迟,从而让两个节点在逻辑上“感觉”像一台拥有巨大显存的单机。

核心内容

本指南提供了从硬件准备到软件配置的全流程步骤,主要涵盖以下几个关键阶段:

1. 硬件架构与 prerequisites

  • 计算节点:使用 2 块 Framework 桌面主板,搭载 AMD Ryzen AI MAX+ "Strix Halo" APU,配备 128GB 统一内存。
  • 网络硬件:每节点配备 Intel Ethernet Controller E810-CQDA1(或类似 100GbE QSFP28 网卡)。
  • 连接方式:使用 DAC(直连铜缆,如 QSFPTEK 100G QSFP28 DAC)直接连接两个节点,无需交换机。
  • PCIe 适配注意:Framework 主板的物理 PCIe 插槽为 x4 规格,因此需要使用扩展卡(Riser,如 CY PCI-E Express 4x to 16x Extender)来安装 x16 的网卡。虽然测试中有一块主板经过超声波刀切割修改以直接支持 x16 卡,但官方建议使用扩展卡,因为更便宜、安全且性能无差异(带宽约 50Gbps,延迟约 5µs)。

2. 主机操作系统配置 (Fedora 43)

  • 内核与驱动:推荐使用 Fedora 43。无需专有 Intel 驱动,内核内置驱动即可完美工作。
    • 以太网驱动:ice
    • RDMA 驱动:irdma(支持 RoCE v2 和 iWARP 的统一驱动)
    • 需安装 rdma-core, libibverbs-utils, perftest 等用户态工具。
  • 固件检查:使用 ethtool -i <iface> 检查 Intel E810 固件版本,建议至少为 4.91 或更高。若版本过低,需使用 Intel NVM Update Tool 更新。
  • BIOS 与内核参数优化
    • BIOS 设置:将 iGPU 内存分配设置为最小值(512MB),以便通过 GTT(图形转换表)动态将系统内存作为统一内存分配给 GPU。
    • GRUB 参数:在 /etc/default/grub 中追加以下参数以优化性能和稳定性:
      • iommu=pt:启用 IOMMU 直通模式,降低 RDMA 和统一内存访问的开销。
      • pci=realloc:重新分配 PCI BARs,确保大地址空间设备(如 E810 和 Strix Halo)正确映射。
      • pcie_aspm=off:禁用 PCIe 主动状态电源管理,防止 100GbE 连接出现延迟尖峰或协商问题。
      • amdgpu.gttsize=126976 & ttm.pages_limit=32505856:限制 GPU GTT 大小和 TTM 页面限制约为 124GiB,定义 GPU 可寻址的系统 RAM 范围。

3. 网络配置

  • IP 与 MTU
    • 节点 1 (Head): 192.168.100.1/30
    • 节点 2 (Worker): 192.168.100.2/30
    • 设置 MTU 为 9000(Jumbo Frames)以优化大数据传输效率。
  • 防火墙:将 RDMA 接口(如 enp194s0np0)永久添加到 trusted 区域,因为 Ray 和 NCCL 等工具会使用随机高位端口。
  • SSH 配置:配置节点间免密 SSH 登录,以便集群管理脚本能远程执行命令。

4. 软件栈与容器化 (Toolbox)

  • 关键补丁:上游 ROCm 包目前缺失对 Strix Halo (gfx1151) 的 RDMA 支持。本指南提供的 refresh_toolbox.sh 脚本会自动编译并打包一个自定义的 librccl.so 库(基于 kyuz0/rocm-systems 分支),以启用 gfx1151 的 RDMA 功能。
  • 自动检测:脚本会检测宿主机的 /dev/infiniband 设备,并在创建容器时通过标志位暴露 iGPU 访问权限(/dev/dri, /dev/kfd)和 RDMA 访问权限。

5. 运行集群

  • 启动 Ray 集群:运行 start-vllm-cluster 脚本,选择 "2. Start Ray Cluster",按照 TUI(文本用户界面)提示完成 Ray 分布式计算框架的初始化。Ray 负责控制平面,协调各节点上的 worker 进程。
  • 启动 vLLM 服务:选择 "4. Launch VLLM Serve" 并选择模型。对于 gated models(受限模型),需先导出 HF_TOKEN
  • 工作流程:vLLM 利用 Ray 进行集群编排,利用 RCCL(ROCm 的 NCCL 等价物)进行数据平面上的张量数据同步。在 TP=2 模式下,两个节点需在神经网络每一层计算后交换部分结果,频率高达每秒数千次。

关键要点

  • RDMA 的核心价值
    • 无 RDMA (TCP/IP):延迟约为 70-100µs,受 CPU 和 OS 内核开销影响。
    • 有 RDMA (RoCE v2):延迟降至约 5µs。RoCE v2 允许 RCCL 直接将数据从一个节点的内存写入另一个节点的内存,绕过 CPU。
    • 影响:对于交互式 token 生成,高延迟会严重破坏性能。RDMA 使得两个节点在逻辑上融合为一台机器,是分布式推理可行的前提。
  • 统一内存策略:Strix Halo 的强大之处在于其 128GB 统一内存。通过 BIOS 最小化 iGPU 预留内存,并在内核中配置 GTT 大小,可以将大部分系统 RAM 作为 GPU 显存使用,从而加载超大模型。
  • 驱动与固件依赖:必须确保 Intel E810 网卡固件版本较新(建议 >= 4.91),且使用内核内置的 iceirdma 驱动,无需专有驱动。
  • 自定义库编译:由于 Strix Halo (gfx1151) 较新,上游 ROCm 尚未完全支持其 RDMA 功能。必须使用指南中提供的 refresh_toolbox.sh 脚本,该脚本会自动从 GitHub Action 获取编译好的 librccl.so 补丁,这是集群能否正常通信的关键。
  • 网络拓扑简化:两个节点之间可直接使用 DAC 线缆直连,无需交换机,降低了搭建成本和复杂度,同时保持了 ~50Gbps
查看原文 →github.com