SuperAPI AI 工具集

dynamo-interconnect-check

部署与运维

查看项目

更新于 10-16 03:49

技能介绍

用途:确认分离式服务(disagg)依赖的传输层真正可用。部署可能通过端点冒烟测试,但 NIXL/UCX 无法通过 RDMA 或 NVLink 到达对端 worker 时,KV 传输会回退到缓慢或损坏的路径。该技能以只读方式检查,不改动集群、不打印密钥。

前置条件:操作机需 Python 3.10+;对目标 Dynamo 部署的 worker pod 有 kubectl exec 权限;对 recipe 目录有读权限;节点检查需要 worker 镜像中提供 ibstat、nvidia-smi、lsmod 等工具(缺失会记为 skipped 而非失败)。

何时使用:在 dynamo-recipe-runner 部署 disagg 或多节点 recipe 之后;报告 disagg 吞吐/延迟之前;agg 正常但 disagg 缓慢、挂起或输出错误并怀疑是网络结构而非模型问题时。若 pod 已崩溃或不可调度,应先用 dynamo-troubleshoot。

主要能力与用法:

  1. 检查 recipe 传输环境变量:python3 scripts/check_interconnect.py env recipes/<model>/<framework>/<mode>,报告 NIXL/UCX/NCCL 传输变量并标记缺失的关键项(如 UCX_TLS、UCX_NET_DEVICES、NCCL_IB_HCA)。缺失仅为警告,可能已打包进镜像。
  2. 检查节点能力:python3 scripts/check_interconnect.py node --namespace "${NAMESPACE}" --pod <worker-pod>,只读探测 InfiniBand 设备与 Active 链路、GPUDirect RDMA(nvidia_peermem)、GDRCopy、GPU 拓扑中的 NVLink。
  3. 验证 NIXL 可达性:python3 scripts/check_interconnect.py nixl --namespace "${NAMESPACE}" --pod <worker-pod>,查找 NIXL 测试工具并给出运行成对 prefill↔decode 传输测试的下一步命令。

也可通过 agentskills.io 的 run_script() 协议调用:run_script("scripts/check_interconnect.py", args=["env", "recipes/qwen3-coder-480b/sglang/disagg"])。

输出:每项检查返回 ok / warn / fail / skipped 及一行详情,并给出 disagg 传输就绪总判定,包括环境变量情况、RDMA/GPUDirect/NVLink 能力状态、NIXL 可达性是否验证及下一步命令。

限制:只读探测,不运行完整成对 NIXL 传输(需两个已调度的 GPU pod 及 pod 内 NIXL 测试工具);缺失工具导致的 skipped 不确定,不等于通过;环境变量检查只读 recipe 文本,运行时经 initContainers 或算子注入的值无法检测;单节点 agg 部署不经该传输,本技能面向 disagg/多节点验证。