Dynamo 互联检查
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/dynamo-interconnect-check。
技能介绍
问题从哪来
分离式(disagg)Dynamo 部署里,prefill 与 decode 往往跑在不同 worker 上,KV 要靠 NIXL/UCX 经 RDMA 或 NVLink 传到对端。端点冒烟可能一切正常,但互联若不可用,传输会悄悄回退到慢路径甚至失效——你在跑基准或汇报吞吐之前,需要先确认「传输层真的通」。
本技能是只读的:不修改集群,不打印密钥。
技能如何工作
通过 scripts/check_interconnect.py 分三层检查:
- env:读取 recipe 目录,报告已设置的 NIXL/UCX/NCCL 变量,并标记 disagg 关键项(如
UCX_TLS、UCX_NET_DEVICES、NCCL_IB_HCA)是否缺失——缺失仅为警告,可能已烘焙进镜像。 - node:在 GPU 节点或 worker pod 内探查 InfiniBand 链路、GPUDirect RDMA(
nvidia_peermem)、GDRCopy、NVLink 拓扑;缺工具则记为skipped,不算失败。 - nixl:评估 pod 是否具备 NIXL 测试工具,并给出成对 prefill↔decode 传输测试的下一步;完整跨 pod 测试需要两个已调度的 GPU pod。
输出契约为每项 ok / warn / fail / skipped 加一行细节,并汇总 disagg 传输是否可信、未验证时应先修什么。
适用边界
- 单节点 agg 不演练传输;用于 disagg / 多节点 recipe 部署后、或 agg 正常而 disagg 慢/挂起时。
- 不替代完整成对 NIXL 传输(需双 pod + 镜像内测试工具);
skipped因缺ibstat、nvidia-smi等工具时结论无定论。 - env 检查只看 recipe 文本,运行时由 initContainer/operator 注入的变量检测不到——此时应在 pod 内跑 node 核对实际环境。
- Pod 已崩溃或无法调度时,先用 dynamo-troubleshoot 再谈互联。
使用场景
- 用 dynamo-recipe-runner 上线 disagg 或多节点 recipe 后,在跑吞吐基准前先确认 NIXL/UCX 传输路径可用
- disagg 延迟或吞吐数字要对外汇报前,用只读检查排除 RDMA/NVLink 回退到慢路径的情况
- agg 端点正常但 prefill↔decode 跨 worker 传输慢、挂起或报错,需区分是互联结构还是模型/recipe 问题
- 部署前扫描 recipes 目录,核对 UCX_TLS、NCCL_IB_HCA 等 disagg 关键环境变量是否在 recipe 中显式配置
适合人员
- 在 GPU + InfiniBand 集群上维护 Dynamo disagg 部署、需 kubectl exec 进 worker pod 的 K8s 平台工程师
- 负责 NIXL/UCX 传输基准与 NVCARPS 类评估、要在数字可信前提下写性能报告的 ML 基础设施同学
- 编写或评审 Dynamo recipe 的工程师,想在上线路径前对照 interconnect-env-vars 清单检查传输相关变量
- disagg 故障排查中已排除模型问题、持有 recipe 只读权限并能在节点或 pod 内跑 ibstat/nvidia-smi 的 SRE