The RCCL Topology Explorer is a tool for analyzing and exploring network topologies for RCCL (ROCm Communication Collectives Library) collective operations. It simulates various hardware configurations and displays the actual algo/proto combo selections that RCCL would make.
## Building
### Prerequisites
- ROCm/HIP development environment
- RCCL source code
- hipify-perl (for source transformation)
### Build Instructions
```bash
cd tools/topo_expl
make
```
## Usage
```bash
./topo_expl -m model_id [-n numNodes=1]
```
### Parameters
-`-m model_id`: Specifies the topology model to use (required)
-`-n numNodes`: Number of nodes to simulate (default: 1)
### Available Models
Run `./topo_expl` without arguments to see the list of available models. Each model represents a different hardware configuration. [Each model file](./models) pertains to a particular GPU model and node configuration. It can be output by RCCL through setting the environment variable `NCCL_TOPO_DUMP_FILE`. Model XMLs have been generated for simplicity.
## Example Usage: Print RCCL's algorithm/protocol selections
The tool is typically run with the `NCCL_DEBUG=INFO` environment variable to show the topology information and print out the constructed rings/trees. However, for the convenience of just printing the algo/proto table, we use version `NCCL_DEBUG=version` in this example to avoid printing topo details.