已合并
[feat] add ReduceScatterPipelineFor91093 #2071
[feat] add ReduceScatterPipelineFor91093 #2071
已合并
p_ch创建于 5月8日
p_ch
p_ch
5月8日

描述

在现有 CollReduceScatterRingFor91093Executor 串行执行 Level0 → Level1 → Level2 的基础上,实现 Level0+Level1 与 Level2 的流水并行,降低多超节点场景下 ReduceScatter 的端到端延迟。
新增 CollReduceScatterPipelineFor91093Executor,继承于 CollReduceScatterRingFor91093Executor(与 DoubleRing 平级)。Override RunIntraSeverReduceScatter实现 Level 0 算法选择(支持 DoubleRing / SingleRing),Level 1 / Level 2 的模板选择逻辑复用基类 KernelRun 中的模式。需将基类约 8 个关键方法从 private 改为 protected。

约束 说明
workflowMode OP_BASE 非图模式
zeroCopy false 非零拷贝场景
L2 > 1 多超节点
dataType 不含 INT64 排除 INT64
reduceOp 不含 Prod 排除乘法归约
稳态流水切片(block)大小 4~8MB 避免切片过小导致流水收益被启动开销抵消,也不要太大导致pipeline流水收益过小
总数据量 > 608 MB 实测,保障切片后一定的轮数,避免轮数过少流水调度开销超过收益
isAHCalgo false 不支持通信绕路
multiSuperPodDiffDeviceNumMode_ false 各超节点总设备数相同

变更类型

请选择本次引入的变更类型:

关联的Issue

N/A

测试

已完成的 ST 用例和场景:

# 用例名 GenTopoMeta topoType dataType reduceOp HCCL_ALGO / algName count countDataPerLoop numBlockTotal numLoopTotal 测试目的
1 pipeline_DR_2pod_2server_int32_sum_4blk_equal (2, 2, 8) NP_DOUBLE_RING INT32 SUM 默认 + Pipeline 16384 4096 4 5 DoubleRing + Level1 默认 NHR(server=2)+ Level2 默认 NHR;4 块等大(偶数),完整预热→稳态→排空
2 pipeline_DR_3pod_4rank_bfp16_max_3blk_smallA (3, 1, 4) NP_DOUBLE_RING BFP16 MAX 默认 + Pipeline 49104 21824 3 4 3 SuperPod + 最小偶数 rank(4) + BFP16/MAX;3 块(奇数)尾块小落 bufferA(blockIdx=2, 2%2==0)
3 pipeline_DR_fp32_min_4blk_smallB (2, 1, 8) NP_DOUBLE_RING FP32 MIN 默认 + Pipeline 26624 8192 4 5 FP32/MIN;4 块(偶数)尾块小落 bufferB(blockIdx=3, 3%2==1),互补用例 2
4 pipeline_DR_force_ring_int8_sum (2, 2, 8) NP_DOUBLE_RING INT8 SUM level1:ring;level2:ring + Pipeline 49152 16384 3 4 强制 RING 模板;server=2 时 Level1 默认为 NHR、Level2 默认为 NHR,本例覆盖默认不覆盖的 Level1/Level2 RING 路径,并覆盖 INT8
5 pipeline_DR_force_nb_int16_max (2, 2, 8) NP_DOUBLE_RING INT16 MAX level1:NB;level2:NB + Pipeline 24576 8192 3 4 强制 NB 模板路径覆盖;同时覆盖 INT16/MAX
6 pipeline_SR_3pod_7rank_bfp16_sum (3, 1, 7) NP_SINGLE_RING BFP16 SUM 默认 + Pipeline 37440 12480 3 4 SingleRing:奇数 rank(7) 触发 SINGLE_RING;3 SuperPod + Level1 默认 RING(server=1)+ Level2 默认 NHR
7 pipeline_SR_2pod_3server_1rank_int32_sum (2, 3, 1) NP_SINGLE_RING INT32 SUM 默认 + Pipeline 65520 21840 3 4 rank/server=1 边界:L0 退化(机内仅 1 rank 无归约),Pipeline 流水主要覆盖 Level1 默认 RING(3 server 非 2 的幂)+ Level2 默认 NHR
8 pipeline_DR_one_block_degenerate_fp16_sum (2, 1, 8) NP_DOUBLE_RING FP16 SUM 默认 + Pipeline 8192 16384 1 2 指定 Pipeline executor 的小数据量场景;单 rank 数据量 16KB(count × sizeof(FP16)),仅产生 1 个 block,无 L0+L1 与 L2 稳态并行重叠,Pipeline 时序退化为串行

文档更新

N/A

合入检查

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 p_ch 的贡献)
CANN-robotCANN-robot成员
5月8日 添加了label:stat/needs-squash
CANN-robot
CANN-robot成员
5月8日 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here
You can get sig-info at here


PR Approval Progress

Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
repo-cann/hcomm yanzhenghang, chenhao_, yanglianxiang2, chengym (4/2) chengym, yanzhenghang, chenhao_ (3/1)
src chenhao_, chengym, yanglianxiang2 (3/2) chenhao_, chengym (2/1)
src/framework/CMakeLists.txt yanzhenghang, yanglianxiang2 (2/2) yanzhenghang (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

p_ch, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
CANN-robotCANN-robot成员
5月8日 添加了label:cann-cla/yes
CANN-robotCANN-robot成员
5月8日 将leabclove,chengym,ccl_ligang,yanzhenghang,yanyefeng,dingweiqin_57,songmingyang,wenxuemin,yangxiaoyuan,laodazhao1,chenke2026,zhongqin2020,Innoecho,chenyia,temper7620,zhangxp1030,lilin_137,lilianlin_hw,ouyangxizi设为评审人
CANN-robotCANN-robot成员
5月8日 将leabclove,chengym,ccl_ligang,yanzhenghang,yanyefeng,dingweiqin_57,songmingyang,wenxuemin,yangxiaoyuan,laodazhao1,chenke2026,zhongqin2020,Innoecho,chenyia,temper7620,zhangxp1030,lilin_137,lilianlin_hw,ouyangxizi设为审查人
此处折叠了249条消息 查看更多
ChengYM
ChengYM成员
5月15日 评论:

/approve

likedislike
严正行
严正行成员
5月15日 评论:

/approve

likedislike
CANN-robotCANN-robot成员
5月15日 添加了label:lgtmapproved
CANN-robot
CANN-robot成员
5月15日 评论:

Review Guide

This pull-request passes review.
Committers who wrote a comment of /approve are: chenhao_, chengym, yanzhenghang.
Reviewers who wrote a comment of /lgtm are: chenhao_, chengym, yanglianxiang2, yanzhenghang.

likedislike
CANN-robotCANN-robot成员
5月15日 合入了pull request