已合并
多jetty:hcomm支持环境变量HCCL_UB_MULTI_CHANNEL_NUM的解析 #4732
huangbolin创建于 8月20日
多jetty:hcomm支持环境变量HCCL_UB_MULTI_CHANNEL_NUM的解析 #4732
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 huangbolin 的贡献)8月20日 创建了 pull request,commit 1f028588
atomgit-bot
8月20日 评论:
8月20日 评论:
变更摘要
本 PR 为 hcomm 新增了对环境变量 HCCL_UB_MULTI_JETTY_NUM 的解析支持,用于配置 UB 多 jetty 数量(多 jetty 特性)。改动在 EnvRdmaConfig 中新增对应的配置字段与读取接口,在 HcclConfigType 枚举中新增配置类型,并将 HcclConfigGetInfo 重构为按配置类型分发的 switch 结构,新增 GetUbMultiJettyNumConfig 以读取并校验该配置值。
主要改动
- 新增环境变量配置字段:在
src/legacy/ascend950/framework/env_config/base_config.h与base_config.cc中,为EnvRdmaConfig新增CfgField<u32> ubMultiJettyNum{"HCCL_UB_MULTI_JETTY_NUM", ...}配置项及GetUbMultiJettyNum()读取接口,并定义了默认值/最小/最大值常量HCCL_UB_MULTI_JETTY_NUM_DEFAULT/MIN/MAX(默认 1,范围 1~16),同时在Parse()中加入该字段的解析与日志输出。 - 新增配置类型枚举:在
include/hccl/hccl_comm.h的HcclConfigType枚举中新增HCCL_CONFIG_TYPE_UB_MULTI_JETTY_NUM = 2,使上层可通过该类型查询多 jetty 数量配置。 - 重构
HcclConfigGetInfo并新增查询处理:在src/legacy/ascend910/framework/op_base/src/op_base.cc中,将HcclConfigGetInfo中原有的条件分支重构为switch分发,抽出GetOpExpansionModeConfig、GetHcclAlgoConfig,并新增GetUbMultiJettyNumConfig:通过Hccl::EnvConfig::GetInstance().GetRdmaConfig().GetUbMultiJettyNum()获取配置值,校验其处于[1, 16]范围后写入info返回。


不准确?
atomgit-bot
8月20日 评论:
8月20日 评论:
8月20日 修改了pull request 的描述
8月20日 添加了label:cann-cla/yes
此处折叠了251条消息 查看更多
9月7日 关联了issue:[Requirement|需求建议]: HCCL_UB_MULTI_CHANNEL_NUM环境变量解析功能迁移到新目录
9月7日 修改了pull request 的描述
57_Viking
9月7日 评论:
9月7日 评论:
/approve


9月7日 添加了label:lgtmapproved
9月7日 合入了pull request
描述
在 CLOS 拓扑 + UB 协议(CTP/RTP)场景下,通过环境变量配置每个 eid 对之间建多个 channel(每个 channel 底层对应一个独立 jetty),类比 ROCE 多 QP 提升通信带宽。
核心思路:同一个 eid 对之间建多个 channel → 每个 channel 一个独立 jetty → 多 jetty 并行搬运。
hcomm需要获取解析环境变量HCCL_CONFIG_TYPE_UB_MULTI_CHANNEL_NUM并暴露给hccl
另外关于ut的main.cc的修改:
本 PR 新增的 UT Ut_HcclConfigGetInfo_When_CfgTypeIs,HCCL_UB_MULTI_CHANNEL_NUM 是该二进制里第一个触发 EnvConfig 全量解析的用例(新分支要读 EnvConfig::GetInstance().GetRdmaConfig().GetUbMultiChannelNum())。
解析时会校验 HCCL_DFS_CONFIG,而 main.cc 原有的值 connection_fault_detction_time:0 用的 key 已被解析器移除(CastDfsConfig 白名单只剩 task_exception / cluster_heartbeat / inconsistent_check),必然抛 InvalidParamsException。
现象实锤过:线上 UT 因此挂 3 个用例(新的 2 个 + 级联无辜的 SymWinGet),改成 task_exception:on 后全量 UT 57/57 通过。
变更类型
请选择本次引入的变更类型:
关联的Issue
后续需要修改:https://gitcode.com/cann/hcomm/issues/851
测试
已完成的测试用例和场景:
补充的UT用例:
文档更新
更新了docs/zh/api_ref/comm_mgr_c/data_type_definition/HcclConfigType.md,关于HcclConfigType这个接口的变更
合入检查