Skip to content

[issue10] NCCL 通信算法选择器:CSV 离线标定、区间压缩与混合负载评估 - #33

Open
shsaihdsaiudh wants to merge 1 commit into
Tencent:mainfrom
shsaihdsaiudh:issue10-algo-selector
Open

[issue10] NCCL 通信算法选择器:CSV 离线标定、区间压缩与混合负载评估#33
shsaihdsaiudh wants to merge 1 commit into
Tencent:mainfrom
shsaihdsaiudh:issue10-algo-selector

Conversation

@shsaihdsaiudh

Copy link
Copy Markdown

关联 Issue

#10

提交内容

src/code/issue10/selector_2026.py:集合通信算法的离线标定 + 在线查表选择器

输入为标定 CSV:

collective,topology,world_size,message_bytes,algorithm,protocol,latency_us

处理流程:

  1. 在每个 collective × topology × world_size × message_bytes 点选出最快的 算法 × 协议 组合;
  2. 把相邻且选择相同的点压缩为连续消息区间,得到紧凑的决策边界;
  3. 输出可在线按"消息大小 + 规模"直接查询的 JSON 选择表;
  4. 在混合消息大小的工作负载上,统计自动选择相对固定使用单一算法(如仅 Ring)的整体通信时间差异。

验证

python -m pytest src/code/issue10/test_selector_2026.py -q   # 2 passed
python src/code/issue10/selector_2026.py --synthetic-demo

合成数据可复现出预期的三段切换结构:小消息 Tree、中消息 Ring、大消息 NVLS。结果写入 src/code/issue10/results-2026/(选择表 + 混合负载评估)。

接入真机标定数据时,把 nccl-tests 在目标拓扑上的采集结果整理成上述 CSV,直接:

python src/code/issue10/selector_2026.py --calibration path/to/nccl_calibration.csv

当前边界

本 PR 提交的是验收要求 2 的选择器实现(离线标定 + 在线按消息大小/规模查表)。

results-2026/synthetic_calibration.csv合成标定数据,文件内已显式标注,仅用于验证选择器逻辑,不构成任何性能结论

验收要求 1(各原语在"算法 × 协议 × message size × 拓扑规模"维度上的真实标定数据)需要在含 NVSwitch 的目标拓扑上用 nccl-tests 采集;提交者当前为单卡环境,无 NVSwitch,无法采集。

另外说明:最终收益验证必须使用独立于标定集的混合消息 trace,避免用标定数据自证收益——这一点已写入 README,真机阶段需要遵守。

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