已关闭
[Question|问题咨询]: DoublePlane Dispatch/Combine 自适应传输策略的 segment size 阈值 #469
Bug_制造者创建于  8月3日关闭于  8月11日
 Bug_制造者
Bug_制造者
8月3日 创建

Welcome to ask questions and discuss with other members.

问题描述

examples/dispatchexamples/combine 中引入了基于 segment size 的自适应传输策略(DoublePlane 路径),在 direct MTE 与 SDMA 之间按段大小选择传输 plane。

请问:

  1. 当前 segment size 的切换阈值具体是多少?在代码中如何配置?
  2. 该阈值是否有推荐值?在不同卡数(2/4/8)下是否需要调整?
  3. 对于小包(如 < 1KB)和大包(如 > 1MB)场景,当前策略的吞吐表现如何?
likedislike
JJoyce_An成员
8月4日 将 Crane-Liu 设为负责人
JJoyce_An成员
8月4日 将 xionglan2 设为负责人
JJoyce_An成员
8月4日 issue类型由 任务 改变为 咨询
liuchangwen成员
8月4日 评论:
  1. 当前切换阈值及配置方式

当前不是单一阈值。远端 segment 只有同时满足以下条件才走 SDMA:

segment_size >= 2 MiB
且
segment_size > 当前 PE 的远端平均 segment size

其他情况走 MTE。2 MiB 在 Dispatch 和 Combine kernel 中由 MIN_SDMA_BYTES 编译期常量配置,目前未提供运行时配置接口。

  1. 推荐值及不同卡数的调整方式

当前推荐沿用默认的 2 MiB,2/4/8 卡不需要分别调整。动态阈值的计算已经包含 pe_size,会随卡数和路由分布自适应变化。

但实际使用时仍需要结合全局数据量进行适配:全局数据量较小时,应避免 SDMA 固定开销;全局数据量较大且存在明显大 segment 时,可让大段更多地使用 SDMA。具体阈值建议结合业务 shape 和性能测试确定。

  1. 小包和大包场景的吞吐表现

小 segment 固定走 MTE,以避免 SDMA 的提交和同步开销;大 segment 满足上述条件后走 SDMA。当前测试结果如下:

Case DataSize 范围 Peak BW (GB/s) 56 MB BW (GB/s) 结论
combine 0.008-56 MB 38.26 37.57 MTE 基线,1.75 MB 达到峰值
combine_doubleplane 0.008-56 MB 43.63 43.63 56 MB 时比 combine 提升约 16.1%
dispatch 0.219-56 MB 41.11 41.11 4P 更新数据,56 MB 达到峰值
dispatch_doubleplane 0.219-56 MB 41.94 41.94 56 MB 时比 dispatch 提升约 2.0%

从测试结果看,DoublePlane 的收益主要体现在大数据量场景,其中 Combine 的提升更明显;小包场景仍优先使用 MTE。具体性能还会受到数据分布、路由倾斜程度和硬件环境影响。

likedislike
 Bug_制造者
Bug_制造者
8月4日 评论:

收到,感谢感谢

likedislike
 Bug_制造者 Bug_制造者
8月5日 issue状态由 进行中 改变为 已完成
 Bug_制造者 Bug_制造者
8月5日 关闭了 issue
 Bug_制造者 Bug_制造者
8月7日 issue状态由 已完成 改变为 进行中
 Bug_制造者 Bug_制造者
8月7日 重新打开了 issue
JJoyce_An成员
8月11日 issue状态由 进行中 改变为 已完成
JJoyce_An成员
8月11日 关闭了 issue