How danielesavino/unitccl works
unitccl is a Bine-tree NCCL correctness and performance benchmarking toolkit, with a Python CLI for local runs, Slurm sweeps, Nsight profiling, and plotting. The main workflow is CLI request → configured standalone or scaling run → benchmark backend; optional Slurm submission can run sweeps, while profiling and plotting produce analysis outputs. README statements support the native benchmark and test relationships; unsampled CLI subsystems are included by their exact paths, but uncertain internal links are omitted.
Main entry points: cli.py unitccl CLI · fastest_iface.py Fastest Interface · slurm_utils.py Slurm Jobs · nsys_utils.py Nsight Profiling
Components 17
CLI and Configuration
- unitccl CLI
unitccl_py/src/unitccl_cli/cli.py - Configuration
unitccl_py/src/unitccl_cli/config.py - Build Orchestration
unitccl_py/src/unitccl_cli/build_utils.py - CLI Logging
unitccl_py/src/unitccl_cli/logging_utils.py
Tests and Benchmarks
- Correctness Tests
src/standalone - Collective Benchmarks
src/scaling - GPU Benchmark
src/unitccl_bench.cu - Fastest Interface
unitccl_py/src/unitccl_cli/fastest_iface.py - Slurm Jobs
unitccl_py/src/unitccl_cli/slurm_utils.py - Job Dashboard
unitccl_py/src/unitccl_cli/tui_utils.py
Profiling and Analysis
- Nsight Profiling
unitccl_py/src/unitccl_cli/nsys_utils.py - Rank Sweep Plots
unitccl_py/src/unitccl_cli/plotting.py - Sweep Data Schema
unitccl_py/src/unitccl_cli/schema.py
Native NCCL Layer
- Bine Graph Generation
src/nccl_bridge/bine_graph.cpp
Other components
- Engineer
- fastest Runner
- MPI Runtime
Connections 19
- Engineer → unitccl CLI: invokes
README.md - unitccl CLI → Configuration: reads settings
unitccl_py/src/unitccl_cli/cli.py - unitccl CLI → Build Orchestration: runs builds
unitccl_py/src/unitccl_cli/cli.py - unitccl CLI → Fastest Interface: runs tests
unitccl_py/src/unitccl_cli/cli.py - unitccl CLI → Slurm Jobs: submits jobs
unitccl_py/src/unitccl_cli/cli.py - unitccl CLI → Rank Sweep Plots: requests plots
unitccl_py/src/unitccl_cli/cli.py - unitccl CLI → Nsight Profiling: requests profiles
README.md - Fastest Interface → Configuration: loads options
unitccl_py/src/unitccl_cli/fastest_iface.py - Fastest Interface → fastest Runner: registers backend
unitccl_py/src/unitccl_cli/fastest_iface.py - Fastest Interface → Correctness Tests: runs subtests
unitccl_py/src/unitccl_cli/fastest_iface.py - Fastest Interface → Collective Benchmarks: compares suites
README.md - Collective Benchmarks → GPU Benchmark: spawns via MPI
README.md - Correctness Tests → Bine Graph Generation: checks schedules
README.md - Slurm Jobs → Configuration: reads defaults
unitccl_py/src/unitccl_cli/slurm_utils.py - Slurm Jobs → Fastest Interface: runs sweep
unitccl_py/src/unitccl_cli/slurm_utils.py - Slurm Jobs → Nsight Profiling: runs profiles
unitccl_py/src/unitccl_cli/slurm_utils.py - Slurm Jobs → Job Dashboard: shows job status
unitccl_py/src/unitccl_cli/slurm_utils.py - Nsight Profiling → Rank Sweep Plots: exports analysis
- Rank Sweep Plots → Sweep Data Schema: loads sweep data
unitccl_py/src/unitccl_cli/plotting.py