NCCL Benchmark Analyzer
analyze_nccl_benchmarkAnalyzes nccl-tests / rccl-tests results (paste raw all_reduce_perf output, or give size/busbw points). Detects node and GPU counts from the output, compares large-message bus bandwidth with the fabric's NIC line rate (InfiniBand HDR/NDR/XDR, RoCE 100G to 800G), and flags data errors, degraded bandwidth, dips as message size grows and unstable run-to-run results, with likely causes. Returns a health status and a bandwidth-loss figure for calculate_fabric_degradation_cost.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| nodes | No | Number of nodes in the run. Detected from raw_output when omitted. | |
| fabric | No | Inter-node fabric and per-port speed. Use 'other' with link_gbps for anything else. | infiniband_ndr |
| results | No | Alternative to raw_output: measured points as {size_bytes, busbw_gbs}. | |
| link_gbps | No | Per-NIC link speed in Gb/s. Overrides the speed implied by fabric. | |
| collective | No | Collective that was benchmarked. Default all_reduce. | all_reduce |
| raw_output | No | Raw stdout of an nccl-tests or rccl-tests run (e.g. all_reduce_perf -b 8 -e 8G -f 2 -g 1). Paste it unchanged; rank/host lines are used to detect node count. | |
| gpus_per_node | No | GPUs per node. Detected from raw_output when omitted; default 8. | |
| nics_per_node | No | Compute-fabric NICs per node (rails). Default: one per GPU. | |
| expected_busbw_gbs | No | Expected healthy bus bandwidth in GB/s, e.g. from an acceptance test. Overrides the line-rate reference; required to judge single-node runs. |