Preflight checks configuration file reference for Cluster Validation Suite (CVS)#
2026-09-24
4 min read time
The preflight checks validate cluster health and configuration consistency before running performance tests, RCCL training, or inference workloads. Checks include GPU node health, optional MI4XX scale-up fabric admission, IFoE L2 and TransferBench gates, RDMA inventory and connectivity, and optional Node Smoke Tier 1, Tier 2, and Tier 3 Primus checks.
Configuration file location: cvs/input/config_file/preflight/preflight_config.json
For the full parameter reference, examples, and troubleshooting, see README_preflight_config.md in the repository.
Run preflight checks#
Use the following commands to run the full preflight suite or individual Node Smoke tiers.
cvs run preflight_checks \
--cluster_file cluster.json \
--config_file cvs/input/config_file/preflight/preflight_config.json
Run individual Node Smoke tiers:
cvs run preflight_checks test_node_smoke_tier1 \
--cluster_file cluster.json \
--config_file preflight_config.json
cvs run preflight_checks test_node_smoke_tier3 \
--cluster_file cluster.json \
--config_file preflight_config.json
Configuration structure#
preflight/
├── node_check/ # GPU visibility, ROCm, optional MI4XX fabric
├── connectivity_check/
│ ├── rdma/ # GID, interfaces, ibv_rc_pingpong connectivity
│ └── ifoe/ # L2 ping and TransferBench smoketest
├── node_smoke_tier1/ # Node Smoke Tier 1/2 (Primus node_smoke)
├── node_smoke_tier3/ # Node Smoke Tier 3 (Primus preflight --host --gpu --network)
├── reporting/ # HTML report and artifact paths
└── debug/ # ScriptLet and troubleshooting options
Legacy keys node_smoke and tier3_info are normalized to
node_smoke_tier1 and node_smoke_tier3 at load time.
Node Smoke tiers#
Node Smoke checks are opt-in. Preflight reports each tier separately in the console summary and HTML report.
Tier |
Config |
Primus command |
Count (8 GPU) |
|---|---|---|---|
Tier 1 |
|
|
39 per node |
Tier 2 |
|
|
17 per node |
Tier 3 |
|
|
27 cluster-wide |
Tier 1 and Tier 2 counts are per node (the summary does not multiply by node count). Tier 3 is cluster-wide (27 collector checks from the validation tracker, not the 13 aggregated markdown report sections).
Example console output:
✅ Node Smoke Tier 1: PASS - 2/2 nodes passed Node Smoke Tier 1; 39 tests run per node
✅ Node Smoke Tier 2: PASS - 2/2 nodes passed Node Smoke Tier 2; 17 tests run per node
✅ Node Smoke Tier 3: PASS - 2/2 nodes passed Node Smoke Tier 3; 27 tests run cluster-wide
Sample configuration#
Note
In this configuration file, {user-id} is resolved to the current username
at runtime.
Minimal Node Smoke Tier 1 + Tier 3
{
"preflight": {
"node_smoke_tier1": {
"connectivity_mode": "run",
"auto_setup": true,
"primus_dir": "/home/{user-id}/INSTALL/Primus",
"venv_activate": "/home/{user-id}/envs/preflight/.venv/bin/activate",
"gpus_per_node": 8
},
"node_smoke_tier3": {
"connectivity_mode": "run",
"ssh_timeout": 600
},
"reporting": {
"artifacts_root_dir": "/home/{user-id}/preflight"
}
}
}
Key parameters#
Node check (node_check)#
enabled— GPU visibility, AMDGPU/KFD, kernel health, ROCm validationgpus_per_node— Expected GPU count on every nodeexpected_rocm_version— ROCm version string (must matchamd-smi version)
RDMA connectivity (connectivity_check.rdma)#
connectivity_mode—"basic","full_mesh", or"skip"interfaces— Expected RDMA device names on all nodesgid_index— GID index validated on those interfacesibv_test_timeout/ibv_test_port_range—ibv_rc_pingpongtest tuning
Node Smoke Tier 1 (node_smoke_tier1)#
connectivity_mode—"run"or"skip"(default"skip")auto_setup— Clone Primus and create venv before runningprimus_dir/venv_activate— Required whenconnectivity_modeis"run"tier2_perf— Enable Node Smoke Tier 2 perf sanity checksgemm_tflops_min/hbm_gbs_min/rccl_gbs_min— Tier 2 thresholds
Node Smoke Tier 3 (node_smoke_tier3)#
connectivity_mode—"run"or"skip"(independent of Tier 1)primus_dir/venv_activate— Optional; empty inherits from Tier 1dist_timeout_sec—torch.distributedinit timeoutreport_file_name— Base name for Primus markdown report (defaultnode_smoke_tier3)