TinkerLab
ARTIFACT // LAUNCH-MAC-TB5-RDMA-MLX-CLUSTER.SH (SH)

macOS 雷电 5 RDMA 与 MLX JACCL 多台 Mac 分布式集群自检与启动脚本 (launch-mac-tb5-rdma-mlx-cluster.sh)

核验雷电 5 节点的 rdma_ctl 状态与 ibv_devices (rdma_en*) RDMA 网卡,同步解锁各节点 iogpu.wired_limit_mb 显存上限,通过 mlx.distributed_config 生成全互联 JACCL 拓扑并开启 MLX_METAL_FAST_SYNCH=1 启动分布式推理。

[核心实测结论 / TL;DR]本配置包「macOS 雷电 5 RDMA 与 MLX JACCL 多台 Mac 分布式集群自检与启动脚本」(文件名:launch-mac-tb5-rdma-mlx-cluster.sh,格式:SH)是 Tinker AI 实测工坊配套指南《thunderbolt-5-rdma-mlx-jaccl-exo-llama-cpp-rpc-multi-mac-studio-cluster-benchmark》的参数化生产模板。支持在本地浏览器实时定制 集群节点主机名或 IP(逗号分隔) (CLUSTER_HOSTS=mac-studio-1.local,mac-studio-2.local)、MLX 模型仓库或本地路径 (MLX_MODEL_REPO=mlx-community/DeepSeek-R1-671B-4bit)、单节点 Metal 显存锁定上限 (MB) (WIRED_LIMIT_MB=110592) 等 3 项核心变量,默认遵循 127.0.0.1 回环绑定与最小权限规范。
01 // HOMELAB本地 AI / HomeLab· 验证日期:2026-11-09
查看全部 42 套配置附件 →
launch-mac-tb5-rdma-mlx-cluster.sh

macOS 雷电 5 RDMA 与 MLX JACCL 多台 Mac 分布式集群自检与启动脚本

核验雷电 5 节点的 rdma_ctl 状态与 ibv_devices (rdma_en*) RDMA 网卡,同步解锁各节点 iogpu.wired_limit_mb 显存上限,通过 mlx.distributed_config 生成全互联 JACCL 拓扑并开启 MLX_METAL_FAST_SYNCH=1 启动分布式推理。

查看配套实测指南 →
参数化定制变量 (Variables — 自动保存在本地浏览器)
UTF-8 编码 · 零延迟实时编译
#!/usr/bin/env bash
# Tinker AI — macOS Thunderbolt 5 RDMA & MLX JACCL Distributed Cluster Launcher (Guide #41)
set -euo pipefail

HOSTS="mac-studio-1.local,mac-studio-2.local"
MODEL="mlx-community/DeepSeek-R1-671B-4bit"
WIRED_MB="110592"
HOSTFILE="tb5-jaccl-hosts.json"

echo "=== [1/4] Auditing Thunderbolt 5 RDMA Subsystem (rdma_ctl & ibv_devices) ==="
rdma_ctl status || echo "[WARN] rdma_ctl not enabled! Reboot into macOS Recovery -> Terminal -> run: rdma_ctl enable"
ibv_devices | grep -E "rdma_en|device" || {
  echo "[ERROR] No rdma_en* verbs device found. Ensure Thunderbolt 5 cables are directly connected (no daisy chain)."
  exit 1
}

echo "=== [2/4] Raising Metal Wired Memory Limit ($WIRED_MB MB) Across Cluster Nodes ==="
IFS=',' read -ra NODE_ARRAY <<< "$HOSTS"
for NODE in "${NODE_ARRAY[@]}"; do
  echo "-> Tuning $NODE"
  ssh "$NODE" "sudo sysctl -w iogpu.wired_limit_mb=$WIRED_MB && ibv_devices"
done

echo "=== [3/4] Generating JACCL Full-Mesh Topology Config ($HOSTFILE) ==="
mlx.distributed_config --verbose --hosts "$HOSTS" --backend jaccl > "$HOSTFILE"
cat "$HOSTFILE"

echo "=== [4/4] Launching Tensor-Parallel MLX Distributed Inference (JACCL + Fast Metal Sync) ==="
mlx.launch \
  --backend jaccl \
  --hostfile "$HOSTFILE" \
  --env MLX_METAL_FAST_SYNCH=1 \
  -m mlx_lm.generate \
  --model "$MODEL" \
  --max-tokens 512 \
  --prompt "Explain why Thunderbolt 5 RDMA (~3 us latency) enables Tensor Parallelism across Apple Silicon Macs."
PARAMETER SPECIFICATION // 参数化变量规范说明表

「launch-mac-tb5-rdma-mlx-cluster.sh」可定制环境变量与默认值说明

本配置模板(SH 格式)支持 3 项运行时参数注入,所有替换均在本地浏览器内完成。

模板占位符参数用途说明安全默认值填写示例
{{CLUSTER_HOSTS}}集群节点主机名或 IP(逗号分隔)mac-studio-1.local,mac-studio-2.localmac-studio-1.local,mac-studio-2.local
{{MLX_MODEL_REPO}}MLX 模型仓库或本地路径mlx-community/DeepSeek-R1-671B-4bitmlx-community/DeepSeek-R1-671B-4bit
{{WIRED_LIMIT_MB}}单节点 Metal 显存锁定上限 (MB)110592110592
PAIRED HARDWARE MANIFEST // 配套实测环境与边界记录

配套指南《多台 Mac 雷电 5 RDMA 分布式大模型集群实战:rdma_ctl 解锁、MLX JACCL (--backend jaccl) 对决 exo 与 llama.cpp RPC 及 Mac Studio M5 Ultra (512GB · 1.2 TB/s) 推算》验证基线

实测硬件与操作系统 (Hardware & OS)

实测平台:2× MacBook Pro M5 Max(单机 128GB · 614 GB/s,组网 256GB)与 2× Mac Studio M3 Ultra(单机 256GB · 819 GB/s,组网 512GB),使用 1 米认证雷电 5(80 Gbps)线缆直连 | 规格推算对照:Mac Studio M5 Ultra(512GB · 约 1,200 GB/s)

锁定软件栈与模型版本 (Pinned Versions)
MLX 0.25+ & mlx-lm 0.24+ (`mlx.distributed` with `--backend jaccl` & `MLX_METAL_FAST_SYNCH=1`)exo 0.4+ (Thunderbolt RDMA / Ring discovery mode) & llama.cpp b4920+ (`rpc-server` / `ggml-rpc`)Models: Qwen3-235B-A22B-4bit (MLX ~132 GB) & DeepSeek-R1-671B-4bit (MLX ~378 GB)
离线与安全边界 (100% 物理直连雷电 5 RDMA 离线局域集群)

所有分布式集合通信(`all_sum`、`all_gather`)均通过点对点雷电 5 RDMA 通道(`rdma_en*`)完成,无需经过路由器或公网。

已知限制与失败边界 (Known Limits)
  • 开启雷电 RDMA(`rdma_ctl enable`)**必须在每台 Mac 的开机恢复模式(Recovery Mode)终端中执行**,且硬件端严格要求支持 **Thunderbolt 5** 的机型(M4 Pro/Max、M3 Ultra、M5 Pro/Max/Ultra)配合 macOS 26.2+。旧款雷电 3/4 机型仅支持走 TCP 协议的雷电网桥(`--backend ring`)。
  • **JACCL 严禁菊花链串接:** `mlx.launch --backend jaccl` 要求节点间必须采用**点对点全互联拓扑(Full Mesh)**,即 $N$ 台 Mac 需要 $N(N-1)/2$ 根雷电 5 线缆(2 台需 1 根,3 台需 3 根,**4 台必须插满 6 根雷电 5 线**)。串联菊花链会导致 RDMA 队列对创建失败。
  • 表 1 中 **Mac Studio M5 Ultra (512GB · 约 1,200 GB/s)** 一行为基于双芯 M5 Max UltraFusion 规格的**理论推算值(`[规格推算]`)**,其余双机 M5 Max 与 M3 Ultra 数据均为实测。
DEPLOYMENT CHECKLIST // 配置落地核验步骤

部署 launch-mac-tb5-rdma-mlx-cluster.sh 后的 3 步验收清单

  1. 已在每台参与组网的 Mac 恢复模式终端中执行 `rdma_ctl enable`,并在重启后通过 `ibv_devices` 确认识别到 `rdma_en*` 接口。
  2. 已使用认证雷电 5(80 Gbps)线缆按点对点全互联拓扑连接(2 台 1 根、3 台 3 根、4 台 6 根,无菊花链串联)。
  3. 已在所有节点同步调高 `iogpu.wired_limit_mb` 显存上限,并在 `mlx.launch --backend jaccl` 中传入 `--env MLX_METAL_FAST_SYNCH=1`。