
Dynamo Interconnect Check
OfficialFreeValidate your Dynamo deployment's interconnect readiness.
Free · Opens the source repo
What Dynamo Interconnect Check does
The Dynamo Interconnect Check skill is designed to ensure that your Dynamo deployment's interconnect setup is functioning correctly for disaggregated serving over RDMA or NVLink. This skill is particularly useful after deploying a disaggregated or multi-node recipe using the dynamo-recipe-runner. It helps to confirm that the key-value (KV) transport is operating correctly, which is crucial for accurate performance metrics. By performing read-only checks, it allows users to catch potential issues with the interconnect before relying on the deployment's benchmark results.
This skill operates in a read-only mode, meaning it does not alter the cluster state or expose sensitive information. It performs several checks, including verifying environment variables related to NIXL, UCX, and NCCL, assessing node capabilities for InfiniBand and NVLink, and validating NIXL reachability. Each of these checks provides feedback on the transport's readiness, allowing users to diagnose problems effectively.
The prerequisites for using this skill include having Python 3.10 or higher installed on the operator machine, kubectl exec access to a worker pod in the target deployment, and read access to the recipe directory. The skill also requires that certain tools are available in the worker pod image for node capability checks. If any required tools are missing, the skill will report them as skipped rather than failing, providing a clear picture of the deployment's status.
Ideal for developers and engineers working with NVIDIA's Dynamo framework, this skill is essential for ensuring that disaggregated deployments are configured correctly before performance evaluations. It is particularly beneficial when encountering issues with disaggregated performance, allowing users to pinpoint fabric-related problems rather than model issues.
When to use it
Use this skill after deploying a disaggregated or multi-node recipe to confirm the interconnect is functioning correctly.
When not to use it
This skill is not suitable for single-node aggregated deployments, as it is specifically designed for validating disaggregated configurations.
What you can build with it
Post-Deployment Validation
After deploying a disaggregated recipe, run this skill to confirm the interconnect is functioning as expected.
Performance Troubleshooting
If you notice performance issues with disaggregated deployments, use this skill to diagnose potential interconnect problems.
Environment Checks
Before benchmarking, validate that the necessary environment variables for NIXL/UCX/NCCL are set correctly.
How to install Dynamo Interconnect Check
View source1. Install with the skills CLI
npx skills add nvidia/skills/dynamo-interconnect-check --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by nvidiaDynamo Interconnect Check
<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: CC-BY-4.0 -->Purpose
Confirm that the transport disaggregated serving depends on actually works. A deployment can pass an endpoint smoke test while disagg is silently wrong: if NIXL/UCX cannot reach the peer worker over RDMA or NVLink, KV transfer falls back to a slow or broken path. Catch that with read-only checks before trusting a disagg deployment or its benchmark numbers.
This skill is read-only. It never mutates the cluster and never prints secrets.
Prerequisites
- Python 3.10+ on the operator machine.
kubectl execaccess to a worker pod in the target Dynamo deployment.- Read access to the recipe directory (
recipes/<model>/<framework>/<mode>). - For node-capability checks: tools like
ibstat,nvidia-smi,lsmodavailable in the worker pod image (missing tools are reported asskipped, not failures).
When To Use
- After
dynamo-recipe-runnerdeploys a disagg or multi-node recipe. - Before reporting disagg throughput/latency, so numbers reflect the real transport.
- When agg works but disagg is slow, hangs, or returns wrong output and you suspect the fabric rather than the model.
For diagnosing pods that are already crashing or unschedulable, use
dynamo-troubleshoot first.
Instructions
1. Check Transport Env Vars On The Recipe
python3 scripts/check_interconnect.py env recipes/<model>/<framework>/<mode>
Reports which NIXL/UCX/NCCL transport variables are set and flags
disagg-critical ones (e.g. UCX_TLS, UCX_NET_DEVICES, NCCL_IB_HCA) that are
absent. Missing here is only a warning — they may be baked into the image — so
confirm with the node and NIXL checks. See
references/interconnect-env-vars.md for what each variable does.
2. Check Node Capabilities
Locally on a GPU node, or inside a running worker pod:
python3 scripts/check_interconnect.py node \
--namespace "${NAMESPACE}" --pod <worker-pod>
Probes (read-only) for: InfiniBand devices and Active links, GPUDirect RDMA
(nvidia_peermem), GDRCopy, and NVLink in the GPU topology. Missing tools are
reported as skipped, not failures.
3. Validate NIXL Reachability
python3 scripts/check_interconnect.py nixl \
--namespace "${NAMESPACE}" --pod <worker-pod>
Looks for NIXL test tooling in the pod and surfaces the exact next step to run a pairwise prefill↔decode transfer test. A full cross-pod transfer test requires two scheduled GPU pods on the fabric.
Available Scripts
| Script | Purpose | Arguments |
|---|---|---|
scripts/check_interconnect.py env | Inspect NIXL/UCX/NCCL env vars on a recipe | positional recipe path |
scripts/check_interconnect.py node | Probe InfiniBand, GPUDirect RDMA, GDRCopy, NVLink on a node or pod | --namespace, --pod |
scripts/check_interconnect.py nixl | Surface NIXL transfer-test readiness for a pod | --namespace, --pod |
Invoke via the agentskills.io run_script() protocol:
run_script("scripts/check_interconnect.py", args=["env", "recipes/qwen3-coder-480b/sglang/disagg"])
run_script("scripts/check_interconnect.py", args=["node", "--namespace", "dynamo-demo", "--pod", "qwen-worker-0"])
Examples
Verify a disagg recipe's transport env shape before deploy:
python3 scripts/check_interconnect.py env recipes/qwen3-coder-480b/sglang/disagg
After deploy, validate a worker pod's fabric:
python3 scripts/check_interconnect.py node \
--namespace dynamo-demo --pod qwen-worker-0
python3 scripts/check_interconnect.py nixl \
--namespace dynamo-demo --pod qwen-worker-0
Equivalent through the agent protocol:
run_script("scripts/check_interconnect.py", args=["nixl", "--namespace", "dynamo-demo", "--pod", "qwen-worker-0"])
Output Contract
Each check returns ok / warn / fail / skipped with a one-line detail,
plus a rolled-up verdict on disagg transport readiness. Report:
- transport env vars present vs. disagg-critical ones missing
- RDMA / GPUDirect / NVLink capability status
- whether NIXL reachability was validated, and the next command if not
- a clear statement of whether disagg can be trusted, or what to fix first
Limitations
- Read-only fabric probe; does not run a full pairwise NIXL transfer (requires two scheduled GPU pods and the in-pod NIXL test tools).
skippedresults for missing tools (ibstat,nvidia-smi,lsmod) are inconclusive, not a pass.- Env-var check inspects the recipe text; values injected at runtime via initContainers or operator-applied envs are not detected.
- Single-node agg deployments do not exercise the transport — this skill is for disagg / multi-node validation.
Troubleshooting
| Symptom | Likely cause | Next step |
|---|---|---|
env reports all critical vars missing | Vars baked into image or injected by operator | Run the node check inside the worker pod to verify actual env |
node reports no Active IB link | Fabric down or HCA not provisioned to the node | Contact cluster admin; verify kubectl describe node shows nvidia.com/gpu and IB labels |
nvidia_peermem missing | GPUDirect RDMA module not loaded | Ask cluster admin to load nvidia-peermem; without it, NIXL falls back to staged copies |
nixl finds no test tools | Worker image lacks NIXL test harness | Use a NIXL-enabled image or run the standalone transfer test from a debug pod |
Benchmark
See BENCHMARK.md for the NVCARPS-EVAL performance report (auto-generated by the NVSkills CI pipeline). To refresh, re-run /nvskills-ci on an upstream PR touching this skill.
References
references/interconnect-env-vars.md— NIXL/UCX/NCCL env var catalog and IB capability checklist.- Use
scripts/check_interconnect.pyfor all read-only checks.
Frequently asked questions about Dynamo Interconnect Check
Similar skills
Turborepo
Optimized build system for JavaScript/TypeScript monorepos.
Azure Pipelines Validation
Streamline your Azure DevOps pipeline changes locally.
Azure Developer CLI
Streamline your Azure project workflows with best practices.
Azure Container Registry CLI
Manage Azure Container Registry resources with ease.
Aspire
Build and orchestrate polyglot distributed applications seamlessly.
Vercel CLI
Manage and deploy Vercel projects from the command line.
