AMD Strix Halo RDMA クラスター セットアップ ガイド
大規模言語モデル (LLM) の分散推論には、通常、テンソル データを同期するための高帯域幅かつ低遅延のインターコネクト が必要です。AMD Strix Halo プラットフォームでは、Intel E810 NIC を介した RDMA over Converged Ethernet (RoCE v2) を使用することで、ノード間遅延を ~70-100µs (TCP/IP) から ~5µs に削減でき、Tensor Parallelism (TP) において 2 つの別々のノードを実質的に 1 つの単一のマシンとして動作させることが可能になります。
アーキテクチャとコア コンセプト
Strix Halo で分散推論を実現するために、3 つの主要なソフトウェア レイヤーがワークロードをオーケストレーションします。
- vLLM: Tensor Parallelism を使用してモデルをノード間で分割する推論エンジン。
- Ray: コントロール プレーンを管理し、クラスター全体でワーカー プロセスをオーケストレーションする分散コンピューティング フレームワーク。
- RCCL (ROCm Collective Communication Library): NVIDIA の NCCL に相当する AMD のライブラリ。データ プレーンを管理し、GPU 間のテンソル データの高速同期を処理します。
RoCE v2 は、RCCL が CPU や OS カーネルをバイパスして、あるノードのメモリから別のノードのメモリへ直接データを書き込むことを可能にするため、ここで非常に重要です。これは、インタラクティブなトークン生成速度を維持するために不可欠です。
ハードウェア 要件
2 ノードの Strix Halo クラスターを構築するには、以下のハードウェア が必要です。
- Compute Nodes: 2x Framework Desktop Mainboards with AMD Ryzen AI MAX+ "Strix Halo" and 128GB of Unified Memory.
- Network Interface Cards (NICs): 2x Intel Ethernet Controller E810-CQDA1 (or similar 100GbE QSFP28 cards).
- Interconnect: Direct Attach Copper (DAC) cable (e.g., QSFP28 DAC) for a direct node-to-node connection without a switch.
- Physical Interface: Since the Framework motherboard PCIe slot is physically x4, a PCIe 4x to 16x riser/extender is required to accommodate the x16 NICs.
Host Configuration (Fedora 43)
両ノードは Fedora 43 (検証済みカーネル 6.18.5-200.fc43.x86_64 および 6.18.6-200.fc43.x86_64) で構成されている必要があります。
Driver and Package Installation
DNF を使用して、コア RDMA ユーザー空間ツールをインストールします。
sudo dnf install rdma-core libibverbs-utils perftest
セットアップには、カーネル内の ice (Ethernet) および irdma (RDMA) ドライバーが使用されます。プロプライエタリな Intel ドライバーは不要です。
Network Setup
CPU オーバーヘッドを削減するために、静的 IP を割り当て、Jumbo Frames (MTU 9000) を有効にします。192.168.100.0/30 のサブネットの場合:
- Node 1:
192.168.100.1/30 - Node 2:
192.168.100.2/30
rdma link を使用してリンク状態を確認します。状態が ACTIVE および LINK_UP と表示されるはずです。
BIOS and Kernel Optimization
iGPU 用の利用可能なユニファイド メモリを最大化し、RDMA パフォーマンスを最適化するために、以下の設定を適用します。
- BIOS: iGPU Memory Allocation を最小 (512MB) に設定します。
- Kernel Parameters:
/etc/default/grub内のGRUB_CMDLINE_LINUXに以下を追加します。iommu=pt pci=realloc pcie_aspm=off amdgpu.gttsize=126976 ttm.pages_limit=32505856
Parameter Breakdown:
iommu=pt: NIC および iGPU のオーバーヘッドを削減するために Pass-Through モードを有効にします。pci=realloc: 大きなアドレス空間をマッピングするために PCI BARs を再割り当てします。pcie_aspm=off: レイテンシ スパイクを防止するために Active State Power Management を無効にします。amdgpu.gttsize&ttm.pages_limit: GPU GTT サイズを ~124GiB に制限し、GPU がシステム RAM を VRAM としてアドレス指定できるようにします。
Software Installation and vLLM Deployment
The RCCL Patch
このセットアップには、カスタムビルドされた librccl.so ライブラリが不可欠です。アップストリームの ROCm パッケージは、現在 gfx1151 (Strix Halo) RDMA をサポートしていません。kyuz0/vllm-therock-gfx1151 Docker イメージには、このパッチ適用済みライブラリが含まれています。
Toolbox Setup
両ノードで ./refresh_toolbox.sh を実行します。このスクリプトは、パッチ適用済みイメージをプルし、コンテナが /dev/dri, /dev/kfd, および /dev/infiniband を公開するように構成し、DMA メモリ固定 (pinning) のために --ulimit memlock=-1 を設定します。
Running the Cluster
- Orchestration:
start-vllm-clusterTUI ユーティリティを使用して、IP を設定し、Ray クラスターを起動します。Node 1 は "Head"、Node 2 は "Worker" として指定されます。 - vLLM Launch: "Launch VLLM Serve" を選択し、希望するモデル (例: Llama-3.1-8B-Instruct) を選択します。
- Configuration: Tensor Parallelism (TP) を
2に設定します。分散 APU クラスターでは CUDA Graph キャプチャがデッドロックを引き起こす可能性があるため、"Force Eager Mode" を有効にすることを強く推奨します。
Alternative: Thunderbolt Networking
100GbE NICs を持たないユーザーの場合、ノードードは Thunderbolt 4 / USB4 ケーブルを介して接続できます。RDMA マイクロプロセッサ レベルの低遅延は得られませんが、標準的な Ethernet のよりも大幅に高い帯域幅を提供します。
Connection:
thunderbolt0インターフェースを確立し、静的 IP (例:192.168.2.1と192.168.2.2) を割り当てます。Configuration:
start-vllm-clusterユーティリティを使用して、Head と Worker の IP を Thunderbolt インターフェースのアドレスに明示的に設定します。
Community Insights and Performance
コミュニティの議論では、Strix Halo が RTX 4090 のようなコンシューマー GPU と比較して利用可能なメモリ (ノード間で最大 256GB) が大幅に向上している一方で、Apple Silicon と比較して生の実効効能 (raw performance) にはトレードオフがあることが強調されています。
"The M3 Ultra has ~900GB/s memory bandwidth... [Strix Halo] is still double these mini AI boxes [compared to some alternatives], but the limiting factor... is memory bandwidth, both under 300GB/s."
ユーザーはまた、DeepSeek V4 Flash のような特定のモデルについては、推論速度はインタラクティブな読解には使用可能ですが、prefill と generation スピードがハイエンド Mac Studio の構成と比較して遅れる可能性があることも指摘しています。
Sources
関連
- プロジェクト
- Dispatch
- Dispatch
- プロジェクト
- Dispatch