vllm-ascend-distributed-debug · git:20260812.d403d8e · 2026-08-12 · sha256 9c64352dd5095427

vllm-ascend-distributed-debug git:20260812.d403d8eA

Immutable. This exact content is served forever at /api/v1/blob/9c64352dd5095427.

---
name: vllm-ascend-distributed-debug
description: Diagnose vLLM Ascend multi-rank and multi-node startup, rank mapping, process-group, collective, HCCL, Ray, scheduler, connector, and distributed hang failures from structured topology and per-rank evidence. Use when a failure depends on rank count, parallel topology, nodes, collectives, or distributed endpoints. Do not use for graph-only divergence, isolated operator failures, performance benchmarking, or profiler analysis.
---

# vLLM Ascend Distributed Debug

Build a falsifiable diagnosis from rank-aware evidence. Never infer a distributed
root cause from one rank's log alone.

## Workflow

1. Create a case with `scripts/distributed_debug.py init`.
2. Capture the exact failing topology, environment, process tree, endpoints, and
   reproduction command before changing parallelism.
3. Add structured per-rank events with `ingest`. Keep raw rank logs and stack
   dumps in the case directories created by `init`.
4. Run `analyze` to check rank identity, group membership, endpoint collisions,
   collective order, missing participants, entered-without-exit stalls, and
   cross-rank phase divergence.
5. Form one or more falsifiable hypotheses from the report.
6. Reduce one parallel dimension at a time. Record each reduced case separately.
7. After a fix, rerun both the smallest reproducer and the original topology.

## Entry point

`scripts/distributed_debug.py` provides:

- `init`: validate the topology contract and create the complete evidence layout;
- `ingest`: validate and append normalized rank events;
- `analyze`: produce deterministic findings, per-rank last progress, and a Run
  Manifest-linked report.

Read only the reference needed for the current phase:

- [Behavior contract](references/behavior.md)
- [Command recipes](references/command-recipes.md)
- [Acceptance](references/acceptance.md)

## Boundaries

- This skill owns failures whose explanation requires comparing ranks, groups,
  nodes, or distributed endpoints.
- Correct outputs in eager mode with graph-only failure belong to
  `vllm-ascend-graph-debug`.
- A failure reduced to one operator call belongs to `ascend-operator-debug`.
- Kernel timing, throughput, and imbalance quantification belong to profiling or
  performance skills; do not load them until the distributed failure is stable
  and the user asks for that evidence.

## Rules

- Preserve raw evidence; normalize into new files rather than rewriting logs.
- Treat missing ranks as missing evidence, not proof that those ranks crashed.
- Treat a collective mismatch as confirmed only when group, sequence, operation,
  and participating ranks are explicit.
- Redact secrets before storing environment snapshots.
- Keep cases under `.vaws-local/distributed-debug/`.