Настройка кластера AMD Strix Halo с RDMA для распределённого вывода vLLM

Настройка кластера AMD Strix Halo с RDMA для распределённого вывода vLLM

Детальный технический гайд охватывает настройку кластера из двух узлов на базе AMD Ryzen AI MAX (Strix Halo) на Framework Desktop Mainboards, каждый с 128 ГБ унифицированной памяти, связанных через прямое подключение Intel Ethernet E810 (100GbE, RoCE v2).

Архитектура основана на трёх ключевых компонентах: vLLM (высокопроизводительный движок вывода для больших языковых моделей), Ray (фреймворк для распределённых вычислений, управляющий worker-процессами) и RCCL (ROCm Collective Communication Library, AMD-аналог NVIDIA NCCL для синхронизации тензорных данных между узлами). Через RoCE v2 достигается RDMA (Remote Direct Memory Access), прямое копирование данных из памяти одного узла в другой, минуя CPU и ядро ОС.

Критическая разница в производительности: без RDMA задержка ~70, 100 микросекунд (TCP/IP), с RDMA, ~5 микросекунд. Для интерактивной генерации токенов эта разница делает два отдельных узла эффективно одной машиной. Статья включает пошаговые инструкции по установке: подготовка Fedora 43, конфигурация BIOS (iGPU 512MB GTT), параметры ядра (IOMMU Pass-Through, PCI reallocation, отключение PCIe power management), установка userspace RDMA-tools (rdma-core, libibverbs, perftest), конфигурация статических IP и MTU 9000, настройка SSH без пароля, инсталляция toolbox-контейнера с поддержкой gfx1151 (Strix Halo) и кастомной librccl.so.

Для запуска кластера используется TUI-утилита start-vllm-cluster: выбор роли Head/Worker, запуск Ray, выбор модели, установка Tensor Parallelism=2 (один GPU на узел), Eager Mode (во избежание deadlock'ов CUDA Graphs на APU кластерах). Гайд покрывает также альтернативу через Thunderbolt 4/USB4 для тех, у кого нет 100GbE NIC, и устранение неполадок (обновление прошивки E810, гейт-модели требуют HF_TOKEN, и т.д.).

Ключевые факты

  • Двух-узловой кластер Strix Halo + E810 RoCE v2 даёт RDMA-задержку ~5µs вместо 70, 100µs TCP, критично для интерактивной генерации при Tensor Parallelism
  • Унифицированная память (GTT, 126 ГБ на узел) + vLLM Tensor Parallelism=2 позволяет делить большие модели между APU-узлами без избыточного копирования
  • Кастомная librccl.so с поддержкой gfx1151 бандлена в контейнер; upstream ROCm её ещё не включил
  • Fedora 43 + IOMMU Pass-Through + отключение PCIe power management обязательны для стабильности; CUDA Graphs на распределённых APU нестабильны, Eager Mode безопаснее
  • Гайд требует 100GbE E810 или Thunderbolt4/USB4, Framework PCIe x4→x16 рисер, passwordless SSH, предзагрузку HF моделей на обе машины, управление через TUI

Почему это важно

Стандартные GPU-кластеры (NVIDIA) требуют дорогостоящего дополнительного оборудования (InfiniBand switch, многосекционная топология). AMD Strix Halo на consumer-платформе (Framework Desktop) + прямое подключение 100GbE NIC показывает, что RDMA-кластеризация становится доступнее. Гайд проверен на боевом оборудовании и включает кастомный RCCL с поддержкой новой архитектуры gfx1151, которой нет в официальных ROCm릴iases. Для исследователей и small-scale deployment'ов это путь к мультиузловому выводу больших моделей за пределами single-GPU лимита, не покупая «enterprise» стек.

Кому это важно

Разработчикам и исследователям, которые хотят распределять вывод больших моделей (27B+) между несколькими узлами на базе Strix Halo; владельцам Framework Desktop, интересующимся RDMA и розничной кластеризацией; инженерам, изучающим альтернативы NVIDIA-доминируемым стекам распределённых вычислений; авторам, заинтересованным в воспроизводимых, полностью задокументированных гайдах по инфраструктуре.

Как это применить

Гайд, это готовая пошаговая инструкция: закупить два Framework Desktop Mainboards, два Intel E810 NIC (100GbE QSFP28), DAC-кабель прямого подключения, сборка железа (PCIe x4→x16 рисер), инсталляция Fedora 43 с указанными kernel params на обе машины, установка userspace RDMA-tools, конфигурация IP (192.168.100.1/2), SSH, затем запуск ./refresh_toolbox.sh и start-vllm-cluster. Проверить RDMA через /opt/compare_eth_vs_rdma.sh (должна показать ~5µs latency). Выбрать модель, установить Tensor Parallelism=2, Enable Eager Mode, запустить. Для гейт-моделей экспортировать HF_TOKEN.

Можно ли доверять

Гайд размещён в открытом GitHub-репозитории (kyuz0/amd-strix-halo-vllm-toolboxes) и включает конкретные версии (Fedora 43, Intel E810 прошивка 4.91+, ROCm, kernel params). Контейнер-образ использует кастомную librccl.so из отдельного репозитория той же группы (kyuz0/rocm-systems, ветка gfx1151-rccl), собираемый GitHub Actions. Гайд включает примеры выходных данных (ethtool, rdma link, latency/bandwidth тесты), позволяя верифицировать каждый шаг. На HackerNews обсуждение привлекло 78 очков и 12 комментариев за 4 часа, что указывает на практический интерес. Caveat: это нишевый стек, и если официальный ROCm ещё не включил gfx1151-RCCL, потребуется полагаться на кастомный build от авторов или собрать самостоятельно.

Риски и подводные камни

Framework Desktop, это consumer-платформа, не enterprise, поэтому отличная стабильность не гарантирована. PCIe slot физически x4, что требует рисер-адаптера для x16 карты E810; в гайде упомянут modified slot от Framework (ultrasonically cut), но рекомендуется дешёвый рисер. Thunderbolt 4 как альтернатива медленнее RDMA. CUDA Graphs на распределённых APU кластерах нестабильны и вызывают deadlock'и, требуется Eager Mode, теряя 1, 3% производительности. Гейт-модели (Gemma, Llama 3.1) требуют HF_TOKEN и access request на Hugging Face перед скачиванием. На первый запуск каждый узел независимо скачивает веса модели, может быть долгим при медленном интернете. Firmware E810 должна быть 4.91+; старые версии требуют обновления intel-nvm-tool, иначе возможны ошибки синхронизации. SSH должен быть настроен без пароля (по ключам), иначе TUI-скрипты зависнут при ввода пароля.

«Для интерактивной генерации токенов высокая задержка убивает производительность. RoCE делает два узла ощущаться как одна машина.»

— AMD Strix Halo RDMA Cluster Setup Guide (kyuz0)