| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[refactor]: extract SoC detection to hixl_utils and auto-select HixlEngine for A5 Co-authored-by: zhujingjing<zhujingjing6@huawei.com> # message auto-generated for no-merge-commit merge: !713 merge refactor/extract-soc-detection-to-utils into master [refactor]: extract SoC detection to hixl_utils and auto-select HixlEngine for A5 Created-by: zhujingjing Commit-by: zhujingjing Merged-by: cann-robot Description: **提交 PR 前,请先阅读 [HIXL贡献指南](https://gitcode.com/cann/hixl/blob/master/CONTRIBUTING.md) ,查看 PR 提交方式并遵守相关提交规范。** ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [x] 代码重构 - [ ] 文档更新 - [ ] 其他,请描述: ## 描述 将 SoC 芯片类型检测逻辑(GetSocName/GetSocTypeByName/GetSocType)从 EndpointGenerator 私有方法提取到 common/hixl_utils 工具方法中,消除多处重复的 SoC 检测代码(endpoint_generator、virtual_memory_manager),并在 EngineFactory::CreateEngine() 中新增 A5 芯片自动选择 HixlEngine 的逻辑,无需用户手动配置选项。 ## 测试项 - hixl_utils_unittest:新增 GetSocTypeByName(A2/A3/A5/Unknown)、GetSocName(成功/失败)、GetSocType 单元测试 - endpoint_generator_ut:迁移原有 SoC 相关测试 - 全量 hixl suite 测试(683 个用例) ## 测试结果 - bash build.sh:构建成功 - bash tests/run_test.sh -s hixl:683 tests PASSED ## Checklist - [x] 该Pull Request的代码风格和项目的代码风格一致 - [x] 提交的代码已经过充分的验证 - [x] 涉及的相关文档修改已更新 - [x] 标题中正确使用了类型标签(例如:feat/bugfix/refactor/docs/test等) ## 其它(可选) 涉及文件: - src/hixl/common/hixl_utils.h/.cc:新增 SocType 枚举和工具函数 - src/hixl/engine/endpoint_generator.h/.cc:删除重复 SoC 检测逻辑 - src/hixl/engine/engine_factory.cc:A5 自动选 HixlEngine - src/hixl/fabric_mem/virtual_memory_manager.cc:消除重复 A3 检测 - tests/cpp/hixl/engine/endpoint_generator_ut.cc:迁移 SoC 测试 - tests/cpp/hixl/engine/hixl_utils_unittest.cc:新增 SoC 工具方法测试 See merge request: cann/hixl!713 | 2 天前 | |
[bugfix]按endpoint位置注册对应内存 Co-authored-by: jiazhaoyang<jiazhaoyang7@huawei.com> # message auto-generated for no-merge-commit merge: !754 merge fixRegMem-master into master [bugfix]按endpoint位置注册对应内存 Created-by: jiazhaoyang Commit-by: jiazhaoyang Merged-by: cann-robot Description: ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 代码重构 - [ ] 文档更新 - [ ] 其他,请描述: ## 描述 修复 HixlCSServer 在 UB endpoint 场景下注册内存时未按 endpoint 位置筛选的问题。 此前 HixlCSServer::RegisterMem 会将同一块内存注册到 server 持有的所有 endpoint 上,导致 HOST 内存也可能注册到 DEVICE 侧 UB endpoint,或 DEVICE 内存注册到 HOST 侧 UB endpoint。 本次修改后,对于 UB endpoint: - COMM_MEM_TYPE_HOST 只注册到 ENDPOINT_LOC_TYPE_HOST endpoint; - COMM_MEM_TYPE_DEVICE 只注册到 ENDPOINT_LOC_TYPE_DEVICE endpoint; - 若没有匹配 endpoint,则返回 PARAM_INVALID。 非 UB endpoint 保持原有注册行为不变。 ## 测试项 - 新增 HIXL CS server 单元测试: - DEVICE 内存注册时跳过 HOST 侧 UB endpoint; - HOST 内存注册时跳过 DEVICE 侧 UB endpoint; - 仅存在 DEVICE 侧 UB endpoint 时注册 HOST 内存返回 PARAM_INVALID。 - 使用 HCCL 测试桩记录 HcommMemReg 调用,校验实际注册次数和注册内存类型。 - 执行 HIXL 测试: - bash tests/run_test.sh -s hixl - 单独执行新增用例。 ## 测试结果 全部通过 ## Checklist - [x] 该Pull Request的代码风格和项目的代码风格一致 - [x] 提交的代码已经过充分的验证 - [x] 涉及的相关文档修改已更新 - [x] 标题中正确使用了类型标签(例如:feat/bugfix/refactor/docs/test等) ## 其它(可选) See merge request: cann/hixl!754 | 4 天前 | |
[bugfix]: fix flaky LlmLocalCommResSt cluster link cleanup in Python UT Co-authored-by: lbjyx<youxiao@huawei.com> # message auto-generated for no-merge-commit merge: !684 merge fix/python-local-comm-res-flaky into master [bugfix]: fix flaky LlmLocalCommResSt cluster link cleanup in Python UT Created-by: youyx Commit-by: lbjyx Merged-by: cann-robot Description: **提交 PR 前,请先阅读 [HIXL贡献指南](https://gitcode.com/cann/hixl/blob/master/CONTRIBUTING.md) ,查看 PR 提交方式并遵守相关提交规范。** ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 代码重构 - [ ] 文档更新 - [ ] 其他,请描述: ## 描述 **Commits** a2431e5 [bugfix]: fix flaky LlmLocalCommResSt cluster link cleanup in Python UT **变更文件** tests/python/test_enable_local_comm_res.py | 120 +++++++++++++++++------------ 1 file changed, 69 insertions(+), 51 deletions(-) ## 测试项 - 本地执行相关模块单元测试(bash tests/run_test.sh -t <module>) ## 测试结果 (请粘贴本地 UT 执行结果,例如 run_test.sh 输出的 PASSED 行数) 本地未跑 UT 前禁止填写 PASS。 ## Checklist <!-- [x] 表示选中 --> - [x] 该Pull Request的代码风格和项目的代码风格一致 - [x] 提交的代码已经过充分的验证 - [x] 涉及的相关文档修改已更新 - [x] 标题中正确使用了类型标签(例如:feat/bugfix/refactor/docs/test等) ## 其它(可选) 无 See merge request: cann/hixl!684 | 16 天前 | |
[feat]: UBG scale-out 协议支持 Co-authored-by: tangjie66<tangjie66@huawei.com> # message auto-generated for no-merge-commit merge: !612 merge ubg into master [feat]: UBG scale-out 协议支持 Created-by: tangjie66 Commit-by: tangjie66 Merged-by: cann-robot Description: **提交 PR 前,请先阅读 [HIXL贡献指南](https://gitcode.com/cann/hixl/blob/master/CONTRIBUTING.md) ,查看 PR 提交方式并遵守相关提交规范。** ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 代码重构 - [ ] 文档更新 - [ ] 其他,请描述: ## 描述 <!--简要描述本次改动的背景,包括改动的原因、解决的问题等。--> 新增 UBG(Unified Bus Gateway)ScaleOut 传输协议,用于 A5 平台跨超节点 NPU 间数据传输。UBG 走 NPU 内置 URMA 硬件口,以 EID 寻址,对标 UBoE 性能。 ### 1. UBG Endpoint 自动生成 - 新增 GenDefaultUbgEndpointConfig:通过 DCMI 查询 URMA EID 列表,按 byte[7]&0xC0==0x80 过滤出 UBG EID - 新增 GetScaleOutNetInstanceId:通过 DCMI 查询 super_pod_id,动态生成 net_instance_id(替代原 UBoE 硬编码 "default_superpod1_1") - 新增 GenerateKv5EndpointByInterconType:无 protocol_desc 时按 DSMI InterconType 自动选择 UBG/UBoE/RoCE - 新增 InterconType 交叉校验:protocol_desc=ubg 但 InterconType≠4 时报错 ### 2. 协议匹配器重构 - 从硬编码 kCrossInstanceRules/kSameInstanceRules 规则数组重构为 MatchScenario + PriorityTable 模式 - 新增 ProtocolLock 机制:protocol_desc 指定 ubg 时锁定匹配,过滤非 ubg 协议 - 新增 kForceRoce 场景:HCCL_INTRA_ROCE_ENABLE=1 时强制只走 RoCE - 优先级表新增 UBG 条目(跨超节点 UBoE>UBG>RoCE,同超节点 UB>HCCS>UBoE>UBG>RoCE) ### 3. Host 内存映射泛化 - 新增 IsHostRegisterMappedProtocol(),将 UBoE 特有的 host→device 地址映射逻辑泛化覆盖 UBG - ConvertUboeDescs 改名 ConvertHostMappedDescs ### 4. UBG/UBoE 互斥校验 - protocol_desc 层:ubg+uboe 同时配 → kConflict → 拒绝 - local_comm_res 层:endpoint_list 同时含 ubg+uboe → 拒绝 - EngineFactory 层:最早拦截 ### 5. DSMI Proxy 扩展 - 新增 GetInterconType():查 DSMI super_pod_intercon_type - 新增 IsInterconTypeSupported():判断驱动是否支持该接口(老驱动降级) - dsmi_get_device_info 作为可选符号加载,失败不影响 GetDevSlotId ### 6. 其他 - endpoint_store::operator== 默认返回从 true 改为 false,修复未知协议误匹配 - ConvertToEndpointDesc UBG 分支走 ParseEidAddress + FillDeviceLocInfo - 全部 benchmark/脚本新增 --transport ubg 支持 - 补充关键路径日志(eid/net_instance_id EVENT、EndpointCreate 完整信息、MemReg host-mapped 路径) ## 测试项 <!--描述进行了哪些测试来验证本次改动,或新增了哪些测试用例。--> 见下方 ## 测试结果 <!--描述上述测试项的测试结果,可通过表格、图片等形式展示。--> ut用例流水线均执行通过 ## Checklist <!-- [x] 表示选中 --> - [x] 该Pull Request的代码风格和项目的代码风格一致 - [x] 提交的代码已经过充分的验证 - [x] 涉及的相关文档修改已更新 - [x] 标题中正确使用了类型标签(例如:feat/bugfix/refactor/docs/test等) ## 其它(可选) <!--可以在这里描述任何和该Pull Request相关的说明。--> - hcomm 需包含 PR #2899(COMM_PROTOCOL_UBG=9 + UbgEndpoint + AicpuTsUbgChannel) - 驱动需支持 DSMI dsmi_get_device_info 接口和 InterconType=4 ### 端到端传输(4) | 用例 | 验证点 | |------|--------| | EndToEndUbgBatchTransferHostToHost | UBG H2H 双向传输(READ+WRITE) | | EndToEndUbgBatchTransferHostToDevice | UBG H2D 双向传输 | | EndToEndUbgBatchTransferDeviceToHost | UBG D2H 双向传输 | | EndToEndUbgBatchTransferDeviceToDevice | UBG D2D 双向传输 | See merge request: cann/hixl!612 | 18 天前 | |
[refactor]: resolve notify address in transfer pool Co-authored-by: zhaozhihui<zhaozhihui3@yeah.net> # message auto-generated for no-merge-commit merge: !720 merge feat/notify-addr-resolver-pool into master [refactor]: resolve notify address in transfer pool Created-by: zhaozhihui Commit-by: zhaozhihui Merged-by: cann-robot Description: **提交 PR 前,请先阅读 [HIXL贡献指南](https://gitcode.com/cann/hixl/blob/master/CONTRIBUTING.md) ,查看 PR 提交方式并遵守相关提交规范。** ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 代码重构 - [ ] 文档更新 - [ ] 其他,请描述: ## 描述 <!--简要描述本次改动的背景,包括改动的原因、解决的问题等。--> 本次改动将 CS transfer pool 的 notify 地址解析前移到 slot 初始化阶段,避免 HIXL CS client 在传输路径重复解析 notify 地址。 主要变更: - 新增 NotifyAddrResolver,A2/A3 SOC 使用 HCCP 获取 notify 地址,其它 SOC 使用 rtGetDevResAddress。 - TransferPool 初始化 slot notify 后解析并保存 notify_addr/notify_len,对外通过 SlotHandle 暴露。 - HIXL CS client 移除本地 notify 地址缓存和重复解析逻辑,直接使用 slot 中的 notify 地址。 - abort 过程中 notify 只 reset,不在 abort fallback 中销毁。 - abort 后 slot reinit 失败时清理 context/stream/thread,但不把异常 slot 放回 free list,避免后续复用半初始化 slot。 ## 测试项 <!--描述进行了哪些测试来验证本次改动,或新增了哪些测试用例。--> 新增/更新 UT: - TransferPoolTest.NotifyAddressResolvedDuringInitialize - TransferPoolTest.AbortReinitKeepsNotifyAddressResolved - TransferPoolTest.AbortReinitFailureDoesNotReturnSlotToFreeList 执行验证: - git diff --cached --check - cmake --build build_test --target hixl_test -- -j8 - ASAN_OPTIONS=detect_leaks=0 LSAN_OPTIONS=detect_leaks=0 build_test/tests/cpp/hixl/hixl_test --gtest_filter='TransferPoolTest.*:HixlCSClientFixture.*:HixlCSClientDeviceFixture.*:HixlCSClientSlotReuseFixture.*' - ASAN_OPTIONS=detect_leaks=0 LSAN_OPTIONS=detect_leaks=0 build_test/tests/cpp/hixl/hixl_test --gtest_filter='HixlCSTest.TestHixlCSServer:HixlCSTest.TestHixlCSClient2Server' ## 测试结果 <!--描述上述测试项的测试结果,可通过表格、图片等形式展示。--> | 测试项 | 结果 | | --- | --- | | git diff --cached --check | 通过 | | cmake --build build_test --target hixl_test -- -j8 | 通过 | | TransferPoolTest.*:HixlCSClientFixture.*:HixlCSClientDeviceFixture.*:HixlCSClientSlotReuseFixture.* | 51/51 通过 | | HixlCSTest.TestHixlCSServer:HixlCSTest.TestHixlCSClient2Server | 2/2 通过 | ## Checklist <!-- [x] 表示选中 --> - [x] 该Pull Request的代码风格和项目的代码风格一致 - [x] 提交的代码已经过充分的验证 - [x] 涉及的相关文档修改已更新 - [x] 标题中正确使用了类型标签(例如:feat/bugfix/refactor/docs/test等) ## 其它(可选) <!--可以在这里描述任何和该Pull Request相关的说明。--> 无文档接口变更;本次改动仅调整 CS transfer pool 内部 notify 地址解析和 abort 异常恢复行为。 See merge request: cann/hixl!720 | 11 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 天前 | ||
| 4 天前 | ||
| 16 天前 | ||
| 18 天前 | ||
| 11 天前 |