fr-analysis

por nvidia

Analizar volcados del registrador de vuelo (FR) de NCCL de PyTorch para identificar bloqueos en operaciones colectivas y aislar los rangos responsables mediante CollectiveAnalyzer. Usar cuando un…

npx skills add https://github.com/nvidia/nvidia-resiliency-ext --skill fr-analysis

Skill: fr_analysis

Analyze PyTorch NCCL flight-recorder (FR) dumps to identify the collective operation hang and isolate the ranks responsible, using CollectiveAnalyzer.

Script: scripts/fr_attribution.pyattribution/trace_analyzer/fr_attribution.py


What it does

  1. Loads all FR dump files matching a glob pattern under --fr-path.
  2. Parses each dump into Collective records (op type, ranks, process group, timing, state).
  3. Groups collectives by process group and sequence ID across ranks to detect mismatches.
  4. Identifies the wavefront — the process group boundary where collectives diverge — and returns the missing ranks at that boundary as the root-cause suspects.
  5. Optionally runs an LLM pass (--llm-analyze) over the structured findings for a human-readable summary.

CLI

python scripts/fr_attribution.py \
    --fr-path /path/to/fr_dumps/ \
    [-p "_dump_*"] \
    [--verbose] \
    [--health-check] \
    [--llm-analyze] \
    [--model MODEL] \
    [--debug]
FlagDefaultDescription
--fr-pathrequiredPath to a directory (or single file) containing FR dump files
--pattern, -p_dump_*Glob pattern for dump files within --fr-path
--verbose, -voffPrint detailed per-rank collective tables
--health-check, -coffInclude node health check results in output
--llm-analyze, -loffPass structured findings to the LLM for a narrative summary
--model, -mnvidia/nemotron-3-super-120b-a12bLLM model (only used with --llm-analyze)
--debugoffConvert binary trace files to JSON for inspection

Programmatic API

from nvidia_resiliency_ext.attribution.trace_analyzer.fr_attribution import CollectiveAnalyzer

analyzer = CollectiveAnalyzer({
    "fr_path": "/path/to/fr_dumps/",
    "pattern": "_dump_*",
    "verbose": False,
    "health_check": False,
    "llm_analyze": False,
    "model": "nvidia/nemotron-3-super-120b-a12b",
})
results = analyzer.run_sync({
    "fr_path": "/path/to/fr_dumps/",
})
# results: tuple[FRAnalysisResult | str, AttributionState]

Output

Returns (result, AttributionState) where result is the FR analysis table and describes:

  • The selected wavefront/front process group
  • Missing ranks at that process group (root-cause suspects)
  • Per-rank collective status tables (when --verbose)
  • Node health summary (when --health-check)
  • LLM narrative (when --llm-analyze)

AttributionState.STOP indicates the hang is unrecoverable; CONTINUE indicates the job may be restartable after isolating the identified ranks.


Dump file formats

FormatNotes
_dump_* filesPyTorch FR dump prefix pattern used by the feedback loop
Binary pickle / JSON payloadsDetected automatically; use --debug to convert binary traces to JSON

FR dumps are typically written to the directory specified by TORCH_NCCL_DEBUG_INFO_TEMP_FILE or triggered automatically on NCCL timeout.


Prerequisites

  • FR dump files produced by PyTorch NCCL (set TORCH_NCCL_TRACE_BUFFER_SIZE > 0)
  • LLM_API_KEY required only when using --llm-analyze
  • langchain-openai required only when using --llm-analyze
  • FR_DEBUG=1 env var enables verbose debug logging in the script

Más skills de nvidia

compileiq-debug
nvidia
Úsalo cuando algo esté mal: Search() se cuelga, todas las evaluaciones devuelven INVALID_SCORE, las puntuaciones no mejoran, cada configuración devuelve el mismo número, errores de ptxas…
create-github-pr
nvidia
Crear solicitudes de extracción de GitHub usando la CLI gh. Usar cuando el usuario quiera crear un nuevo PR, enviar código para revisión o abrir una solicitud de extracción. Palabras clave de activación -…
nemoclaw-maintainer-cross-issue-sweep
nvidia
Escanea otros issues abiertos para encontrar aquellos que un PR dado también podría corregir o romper accidentalmente. Genera oportunidades de corrección adyacente y riesgos de contradicción con archivo:línea…
fhir-basics
nvidia
Enseña a los agentes cómo funcionan las APIs de FHIR R4, qué recursos están disponibles, cómo consultarlos con parámetros de búsqueda y cómo analizar correctamente todos los formatos de respuesta…
compileiq-validate-result
nvidia
Usar DESPUÉS de que una Búsqueda haya finalizado y ANTES de reclamar cualquier aceleración o enviar un ACF. Carga el CSV de dump_results, extrae los mejores K candidatos (de un solo objetivo)…
changelog-audit
nvidia
Auditar el CHANGELOG.md de Warp antes de un lanzamiento: recuperar entradas perdidas, ordenar por impacto en el usuario, refinar el lenguaje de las entradas, ajustar saltos de línea y (en modo rama de lanzamiento) incrementar comparación…
maintain-dynamic-plugins
nvidia
Mantener los cargadores de plugins dinámicos de NeMo Relay, manifiestos, SDKs nativos de Rust, protocolo de trabajador gRPC, SDK de trabajador Python, documentación, pruebas y cobertura del flujo de trabajo de lanzamiento
dgx-diagnose
nvidia
Diagnostica problemas comunes de la DGX Station GB300: fallos de CUDA, direccionamiento incorrecto de GPU, errores de contenedores vLLM/SGLang, problemas de estado MIG, errores de NVLink/Fabric Manager,…