Skip to content

feat(issue10): NCCL algorithm auto-selector for collective operations - #18

Open
xyaohubery wants to merge 1 commit into
Tencent:mainfrom
xyaohubery:feat/issue10-nccl-algorithm-selector
Open

feat(issue10): NCCL algorithm auto-selector for collective operations#18
xyaohubery wants to merge 1 commit into
Tencent:mainfrom
xyaohubery:feat/issue10-nccl-algorithm-selector

Conversation

@xyaohubery

Copy link
Copy Markdown

Summary

Topology- and message-size-aware algorithm selector for NCCL collective operations, addressing Issue #10.

What It Does

Automatically selects the optimal algorithm (Ring/Tree/NVLS/PAT) for AllReduce, AllGather, and ReduceScatter based on:

  • Message size
  • Communication domain (intranode NVLink vs internode RDMA)
  • Determinism requirements

Key Design

Algorithm Best For SM Overhead Deterministic
Tree < 16KB 1 SM No (dynamic parent)
NVLS 16KB - 1GB+ 0 SM (NVSwitch) Yes (hardware)
Ring All sizes 2 SM Yes (fixed order)
PAT 512KB+ 4 SM No (atomic ops)

Usage

python algorithm_selector.py --select 64MB --op allreduce
python algorithm_selector.py --generate-table --output selection.json

🤖 Generated with Claude Code

Topology- and message-size-aware algorithm selector for AllReduce,
AllGather, and ReduceScatter. Automatically selects optimal algorithm
(Ring/Tree/NVLS/PAT) based on message size and communication domain.

Includes:
- Pre-calibrated algo characteristics for H800 GPU topology
- Intra-node (NVLink) and inter-node (RDMA) selection modes
- Determinism-aware selection
- Full selection table generation (240+ configurations)
- Visualization heatmap generation

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant