| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[feat]: add cmake dependencies for device driver and aicpu interfaces Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !758 merge feat/cmake-driver-aicpu-deps into master [feat]: add cmake dependencies for device driver and aicpu interfaces Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: **提交 PR 前,请先阅读 [HIXL贡献指南](https://gitcode.com/cann/hixl/blob/master/CONTRIBUTING.md) ,查看 PR 提交方式并遵守相关提交规范。** ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 代码重构 - [ ] 文档更新 - [ ] 其他,请描述: ## 描述 从 commit 94f7de8 中提炼 CMake 构建基础设施变更,为后续 device 侧调用 driver 和 aicpu 接口做准备。 主要变更: - cmake/device/CMakeLists.txt:新增 ascend_hal、runtime、aicpu_sharder 包查找 - cmake/find_cann_packages.cmake:将 ascend_hal 包查找提升到顶层(测试和非测试场景均可用),移除手动定义的 ascend_hal_headers(现由包自动提供) - src/ops/hixl_kernel/CMakeLists.txt:为 cann_hixl_kernel 链接 runtime_headers、ascend_hal、aicpu_sharder - tests/cpp/hixl/CMakeLists.txt:为 hixl_test 链接 ascend_hal_headers ## 测试项 - [x] Release 构建通过(bash build.sh) - [x] Debug 构建 + 示例编译通过(bash build.sh --build-type=Debug --examples) - [x] 测试二进制编译通过(ascend_hal_headers 链接验证) ## 测试结果 构建全部成功,测试二进制可正常生成并列出测试用例。 ## Checklist - [x] 该Pull Request的代码风格和项目的代码风格一致 - [x] 提交的代码已经过充分的验证 - [x] 涉及的相关文档修改已更新 - [x] 标题中正确使用了类型标签(例如:feat/bugfix/refactor/docs/test等) ## 其它(可选) 本 PR 仅包含 CMake 构建配置变更,不包含源码实现(task_exception_handler 等),源码部分将在后续 PR 中提交。 See merge request: cann/hixl!758 | 2 天前 | |
[refactor]: 重构 TransferContext sync 入口并扩展同步字段 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !726 merge cherry-pick-cc493b85 into master [refactor]: 重构 TransferContext sync 入口并扩展同步字段 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: **提交 PR 前,请先阅读 [HIXL贡献指南](https://gitcode.com/cann/hixl/blob/master/CONTRIBUTING.md) ,查看 PR 提交方式并遵守相关提交规范。** ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [x] 代码重构 - [ ] 文档更新 - [ ] 其他,请描述: ## 描述 本 PR 包含 3 个提交,围绕 HixlSyncTransferContext 设备 kernel 入口进行扩展与重构: 1. **[feat]: extend TransferContext sync entry with stream/notify/err_flag fields** - 为 TransferContextSyncEntry 扩展 user_stream_id、notify_id、err_flag_dev_va、reserved 字段,支持设备侧按 stream/notify 维度管理传输上下文。 - 将 reserved 置于 err_flag_dev_va 之前,使结构体由 40 字节(含两处隐藏 padding)缩减为 32 字节,reserved 真正起到对齐填充作用。 - transfer_pool.cc 中两处位置式聚合初始化改为逐字段赋值,避免后续字段顺序调整导致静默错赋。 - TransferContextManager::Add 接收并写入新增字段。 2. **[refactor]: extract HixlSyncTransferContext into standalone translation unit** - 将 HixlSyncTransferContext(extern "C" kernel 入口)从 hixl_batch_transfer.{h,cc} 独立到 hixl_sync_transfer_context.{h,cc}。 - DoSyncTransferContext 及其校验 helper 移入新 cc 的匿名命名空间,成为文件私有实现,从 transfer_context_manager.h 删除其公有声明。 - 更新 CMakeLists.txt 与测试 include。 3. **[refactor]: add Hixl prefix to global transfer context types to avoid name conflicts** - 为全局命名空间下的 4 个类型加 Hixl 前缀,避免命名冲突: - TransferThreadState -> HixlTransferThreadState - TransferContextOp -> HixlTransferContextOp - TransferContextSyncEntry -> HixlTransferContextSyncEntry - TransferContextSyncParam -> HixlTransferContextSyncParam ## 测试项 - bash build.sh Release 构建通过(含 -Wall -Wextra -Werror) - bash tests/run_test.sh -s hixl 执行 hixl suite(含 hixl_kernel_basic_unittest、transfer_pool_ut 等 46 个测试套) - pre-commit run --files <改动文件> 检查 clang-format / OAT 许可证头 / codespell ## 测试结果 - 构建:成功(exit 0),Build success! hixl package success! - 测试:684/684 PASSED,0 FAILED - pre-commit:全部 Passed(clang-format / OAT / codespell / trailing whitespace 等) ## Checklist - [x] 该Pull Request的代码风格和项目的代码风格一致 - [x] 提交的代码已经过充分的验证 - [x] 涉及的相关文档修改已更新 - [x] 标题中正确使用了类型标签(例如:feat/bugfix/refactor/docs/test等) ## 其它(可选) - 结构体字段重排说明:HixlTransferContextSyncEntry 中将两个 uint64_t(thread、err_flag_dev_va)与 uint32_t 组分别聚集,reserved 收尾填充,消除隐藏 padding,struct 从 40 字节优化为 32 字节。 - 设备侧 kernel 通过具名成员访问读取字段,host/device 共用同一头文件,字段重排对二者透明一致。 See merge request: cann/hixl!726 | 13 天前 | |
[refactor]: 重构 TransferContext sync 入口并扩展同步字段 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !726 merge cherry-pick-cc493b85 into master [refactor]: 重构 TransferContext sync 入口并扩展同步字段 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: **提交 PR 前,请先阅读 [HIXL贡献指南](https://gitcode.com/cann/hixl/blob/master/CONTRIBUTING.md) ,查看 PR 提交方式并遵守相关提交规范。** ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [x] 代码重构 - [ ] 文档更新 - [ ] 其他,请描述: ## 描述 本 PR 包含 3 个提交,围绕 HixlSyncTransferContext 设备 kernel 入口进行扩展与重构: 1. **[feat]: extend TransferContext sync entry with stream/notify/err_flag fields** - 为 TransferContextSyncEntry 扩展 user_stream_id、notify_id、err_flag_dev_va、reserved 字段,支持设备侧按 stream/notify 维度管理传输上下文。 - 将 reserved 置于 err_flag_dev_va 之前,使结构体由 40 字节(含两处隐藏 padding)缩减为 32 字节,reserved 真正起到对齐填充作用。 - transfer_pool.cc 中两处位置式聚合初始化改为逐字段赋值,避免后续字段顺序调整导致静默错赋。 - TransferContextManager::Add 接收并写入新增字段。 2. **[refactor]: extract HixlSyncTransferContext into standalone translation unit** - 将 HixlSyncTransferContext(extern "C" kernel 入口)从 hixl_batch_transfer.{h,cc} 独立到 hixl_sync_transfer_context.{h,cc}。 - DoSyncTransferContext 及其校验 helper 移入新 cc 的匿名命名空间,成为文件私有实现,从 transfer_context_manager.h 删除其公有声明。 - 更新 CMakeLists.txt 与测试 include。 3. **[refactor]: add Hixl prefix to global transfer context types to avoid name conflicts** - 为全局命名空间下的 4 个类型加 Hixl 前缀,避免命名冲突: - TransferThreadState -> HixlTransferThreadState - TransferContextOp -> HixlTransferContextOp - TransferContextSyncEntry -> HixlTransferContextSyncEntry - TransferContextSyncParam -> HixlTransferContextSyncParam ## 测试项 - bash build.sh Release 构建通过(含 -Wall -Wextra -Werror) - bash tests/run_test.sh -s hixl 执行 hixl suite(含 hixl_kernel_basic_unittest、transfer_pool_ut 等 46 个测试套) - pre-commit run --files <改动文件> 检查 clang-format / OAT 许可证头 / codespell ## 测试结果 - 构建:成功(exit 0),Build success! hixl package success! - 测试:684/684 PASSED,0 FAILED - pre-commit:全部 Passed(clang-format / OAT / codespell / trailing whitespace 等) ## Checklist - [x] 该Pull Request的代码风格和项目的代码风格一致 - [x] 提交的代码已经过充分的验证 - [x] 涉及的相关文档修改已更新 - [x] 标题中正确使用了类型标签(例如:feat/bugfix/refactor/docs/test等) ## 其它(可选) - 结构体字段重排说明:HixlTransferContextSyncEntry 中将两个 uint64_t(thread、err_flag_dev_va)与 uint32_t 组分别聚集,reserved 收尾填充,消除隐藏 padding,struct 从 40 字节优化为 32 字节。 - 设备侧 kernel 通过具名成员访问读取字段,host/device 共用同一头文件,字段重排对二者透明一致。 See merge request: cann/hixl!726 | 13 天前 | |
[refactor]: 重构 TransferContext sync 入口并扩展同步字段 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !726 merge cherry-pick-cc493b85 into master [refactor]: 重构 TransferContext sync 入口并扩展同步字段 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: **提交 PR 前,请先阅读 [HIXL贡献指南](https://gitcode.com/cann/hixl/blob/master/CONTRIBUTING.md) ,查看 PR 提交方式并遵守相关提交规范。** ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [x] 代码重构 - [ ] 文档更新 - [ ] 其他,请描述: ## 描述 本 PR 包含 3 个提交,围绕 HixlSyncTransferContext 设备 kernel 入口进行扩展与重构: 1. **[feat]: extend TransferContext sync entry with stream/notify/err_flag fields** - 为 TransferContextSyncEntry 扩展 user_stream_id、notify_id、err_flag_dev_va、reserved 字段,支持设备侧按 stream/notify 维度管理传输上下文。 - 将 reserved 置于 err_flag_dev_va 之前,使结构体由 40 字节(含两处隐藏 padding)缩减为 32 字节,reserved 真正起到对齐填充作用。 - transfer_pool.cc 中两处位置式聚合初始化改为逐字段赋值,避免后续字段顺序调整导致静默错赋。 - TransferContextManager::Add 接收并写入新增字段。 2. **[refactor]: extract HixlSyncTransferContext into standalone translation unit** - 将 HixlSyncTransferContext(extern "C" kernel 入口)从 hixl_batch_transfer.{h,cc} 独立到 hixl_sync_transfer_context.{h,cc}。 - DoSyncTransferContext 及其校验 helper 移入新 cc 的匿名命名空间,成为文件私有实现,从 transfer_context_manager.h 删除其公有声明。 - 更新 CMakeLists.txt 与测试 include。 3. **[refactor]: add Hixl prefix to global transfer context types to avoid name conflicts** - 为全局命名空间下的 4 个类型加 Hixl 前缀,避免命名冲突: - TransferThreadState -> HixlTransferThreadState - TransferContextOp -> HixlTransferContextOp - TransferContextSyncEntry -> HixlTransferContextSyncEntry - TransferContextSyncParam -> HixlTransferContextSyncParam ## 测试项 - bash build.sh Release 构建通过(含 -Wall -Wextra -Werror) - bash tests/run_test.sh -s hixl 执行 hixl suite(含 hixl_kernel_basic_unittest、transfer_pool_ut 等 46 个测试套) - pre-commit run --files <改动文件> 检查 clang-format / OAT 许可证头 / codespell ## 测试结果 - 构建:成功(exit 0),Build success! hixl package success! - 测试:684/684 PASSED,0 FAILED - pre-commit:全部 Passed(clang-format / OAT / codespell / trailing whitespace 等) ## Checklist - [x] 该Pull Request的代码风格和项目的代码风格一致 - [x] 提交的代码已经过充分的验证 - [x] 涉及的相关文档修改已更新 - [x] 标题中正确使用了类型标签(例如:feat/bugfix/refactor/docs/test等) ## 其它(可选) - 结构体字段重排说明:HixlTransferContextSyncEntry 中将两个 uint64_t(thread、err_flag_dev_va)与 uint32_t 组分别聚集,reserved 收尾填充,消除隐藏 padding,struct 从 40 字节优化为 32 字节。 - 设备侧 kernel 通过具名成员访问读取字段,host/device 共用同一头文件,字段重排对二者透明一致。 See merge request: cann/hixl!726 | 13 天前 | |
[refactor]: 重构 TransferContext sync 入口并扩展同步字段 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !726 merge cherry-pick-cc493b85 into master [refactor]: 重构 TransferContext sync 入口并扩展同步字段 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: **提交 PR 前,请先阅读 [HIXL贡献指南](https://gitcode.com/cann/hixl/blob/master/CONTRIBUTING.md) ,查看 PR 提交方式并遵守相关提交规范。** ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [x] 代码重构 - [ ] 文档更新 - [ ] 其他,请描述: ## 描述 本 PR 包含 3 个提交,围绕 HixlSyncTransferContext 设备 kernel 入口进行扩展与重构: 1. **[feat]: extend TransferContext sync entry with stream/notify/err_flag fields** - 为 TransferContextSyncEntry 扩展 user_stream_id、notify_id、err_flag_dev_va、reserved 字段,支持设备侧按 stream/notify 维度管理传输上下文。 - 将 reserved 置于 err_flag_dev_va 之前,使结构体由 40 字节(含两处隐藏 padding)缩减为 32 字节,reserved 真正起到对齐填充作用。 - transfer_pool.cc 中两处位置式聚合初始化改为逐字段赋值,避免后续字段顺序调整导致静默错赋。 - TransferContextManager::Add 接收并写入新增字段。 2. **[refactor]: extract HixlSyncTransferContext into standalone translation unit** - 将 HixlSyncTransferContext(extern "C" kernel 入口)从 hixl_batch_transfer.{h,cc} 独立到 hixl_sync_transfer_context.{h,cc}。 - DoSyncTransferContext 及其校验 helper 移入新 cc 的匿名命名空间,成为文件私有实现,从 transfer_context_manager.h 删除其公有声明。 - 更新 CMakeLists.txt 与测试 include。 3. **[refactor]: add Hixl prefix to global transfer context types to avoid name conflicts** - 为全局命名空间下的 4 个类型加 Hixl 前缀,避免命名冲突: - TransferThreadState -> HixlTransferThreadState - TransferContextOp -> HixlTransferContextOp - TransferContextSyncEntry -> HixlTransferContextSyncEntry - TransferContextSyncParam -> HixlTransferContextSyncParam ## 测试项 - bash build.sh Release 构建通过(含 -Wall -Wextra -Werror) - bash tests/run_test.sh -s hixl 执行 hixl suite(含 hixl_kernel_basic_unittest、transfer_pool_ut 等 46 个测试套) - pre-commit run --files <改动文件> 检查 clang-format / OAT 许可证头 / codespell ## 测试结果 - 构建:成功(exit 0),Build success! hixl package success! - 测试:684/684 PASSED,0 FAILED - pre-commit:全部 Passed(clang-format / OAT / codespell / trailing whitespace 等) ## Checklist - [x] 该Pull Request的代码风格和项目的代码风格一致 - [x] 提交的代码已经过充分的验证 - [x] 涉及的相关文档修改已更新 - [x] 标题中正确使用了类型标签(例如:feat/bugfix/refactor/docs/test等) ## 其它(可选) - 结构体字段重排说明:HixlTransferContextSyncEntry 中将两个 uint64_t(thread、err_flag_dev_va)与 uint32_t 组分别聚集,reserved 收尾填充,消除隐藏 padding,struct 从 40 字节优化为 32 字节。 - 设备侧 kernel 通过具名成员访问读取字段,host/device 共用同一头文件,字段重排对二者透明一致。 See merge request: cann/hixl!726 | 13 天前 | |
[bugfix]: 修复 TransferContext 清理竞争 Co-authored-by: zhaozhihui<zhaozhihui3@yeah.net> Co-authored-by: MingYang119<songmingyang@huawei.com> # message auto-generated for no-merge-commit merge: !689 merge bugfix/transfer-context-guard into master [bugfix]: 修复 TransferContext 清理竞争 Created-by: songmingyang Commit-by: MingYang119;zhaozhihui Merged-by: cann-robot Description: **提交 PR 前,请先阅读 [HIXL贡献指南](https://gitcode.com/cann/hixl/blob/master/CONTRIBUTING.md) ,查看 PR 提交方式并遵守相关提交规范。** ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 代码重构 - [ ] 文档更新 - [ ] 其他,请描述: ## 描述 <!--简要描述本次改动的背景,包括改动的原因、解决的问题等。--> 本次改动独立基于 upgrade/master,不依赖 feat/cs-transfer-resource-limit。 - 新增 kernel 侧 TransferContextManager,以独立文件维护 ThreadHandle 到 TransferContext 的映射;TransferContext 使用结构体保存普通锁和原子状态。 - 新增 SyncTransferContext kernel,TransferPool 在初始化、slot abort 重建、Finalize 时同步 add/destroy context;destroy 最多重试 30s,超时打印 event 日志后按强制清理继续释放资源。 - HixlBatchGet/Put 在 context 缺失、aborting、aborted 时直接返回失败,正常 context 下持普通锁执行原传输逻辑,避免 ThreadFree 与 kernel transfer 并发。 - TransferPool 统一管理 device function handles 和 aclrtBinHandle,确保 aclrtBinaryUnLoad 只在 pool 资源释放时执行一次。 - HixlCSClient 拆分 transfer pool 初始化并增加 rollback guard,后续 client 初始化失败时会释放 pool 引用;Destroy() 重复调用不会重复 Finalize()。 ## 测试项 <!--描述进行了哪些测试来验证本次改动,或新增了哪些测试用例。--> - git diff --cached --check - commit hook: trailing whitespace / eof / merge conflict / private key / clang-format / codespell / OAT - source ${ASCEND_HOME_PATH:-/home/zzh/Ascend/cann-9.1.0}/set_env.sh; bash tests/run_test.sh -s hixl - source ${ASCEND_HOME_PATH:-/home/zzh/Ascend/cann-9.1.0}/set_env.sh; build_test/tests/cpp/hixl/hixl_test --gtest_filter='TransferPoolTest.*:HixlCSClientDeviceFixture.*:LoadKernelFixture.*:HixlBatchTransferTest.*' - source ${ASCEND_HOME_PATH:-/home/zzh/Ascend/cann-9.1.0}/set_env.sh; timeout 60s build_test/tests/cpp/hixl/hixl_test --gtest_filter='HixlEngineUboeTest.InitializeWithUboeProtocol' ## 测试结果 <!--描述上述测试项的测试结果,可通过表格、图片等形式展示。--> - git diff --cached --check:通过。 - commit hook:通过;OAT hook 最终通过,过程中有 PlainReport_*.txt 不存在的日志噪声。 - bash tests/run_test.sh -s hixl:依赖下载和构建成功,输出 build success!;进入 hixl 并行测试后未产出最终 XML,日志停在 HixlEngineUboeTest.InitializeWithUboeProtocol,且当时没有残留 hixl_test 进程,因此中断。完整 hixl suite 结果未能确认。 - 定向 gtest:46 个用例全部通过。 - HixlEngineUboeTest.InitializeWithUboeProtocol 单测:60s timeout 包裹下单独执行通过。 ## Checklist <!-- [x] 表示选中 --> - [x] 该Pull Request的代码风格和项目的代码风格一致 - [x] 提交的代码已经过充分的验证 - [x] 涉及的相关文档修改已更新 - [x] 标题中正确使用了类型标签(例如:feat/bugfix/refactor/docs/test等) ## 其它(可选) <!--可以在这里描述任何和该Pull Request相关的说明。--> 无。 See merge request: cann/hixl!689 | 19 天前 | |
[refactor]: 重构 TransferContext sync 入口并扩展同步字段 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !726 merge cherry-pick-cc493b85 into master [refactor]: 重构 TransferContext sync 入口并扩展同步字段 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: **提交 PR 前,请先阅读 [HIXL贡献指南](https://gitcode.com/cann/hixl/blob/master/CONTRIBUTING.md) ,查看 PR 提交方式并遵守相关提交规范。** ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [x] 代码重构 - [ ] 文档更新 - [ ] 其他,请描述: ## 描述 本 PR 包含 3 个提交,围绕 HixlSyncTransferContext 设备 kernel 入口进行扩展与重构: 1. **[feat]: extend TransferContext sync entry with stream/notify/err_flag fields** - 为 TransferContextSyncEntry 扩展 user_stream_id、notify_id、err_flag_dev_va、reserved 字段,支持设备侧按 stream/notify 维度管理传输上下文。 - 将 reserved 置于 err_flag_dev_va 之前,使结构体由 40 字节(含两处隐藏 padding)缩减为 32 字节,reserved 真正起到对齐填充作用。 - transfer_pool.cc 中两处位置式聚合初始化改为逐字段赋值,避免后续字段顺序调整导致静默错赋。 - TransferContextManager::Add 接收并写入新增字段。 2. **[refactor]: extract HixlSyncTransferContext into standalone translation unit** - 将 HixlSyncTransferContext(extern "C" kernel 入口)从 hixl_batch_transfer.{h,cc} 独立到 hixl_sync_transfer_context.{h,cc}。 - DoSyncTransferContext 及其校验 helper 移入新 cc 的匿名命名空间,成为文件私有实现,从 transfer_context_manager.h 删除其公有声明。 - 更新 CMakeLists.txt 与测试 include。 3. **[refactor]: add Hixl prefix to global transfer context types to avoid name conflicts** - 为全局命名空间下的 4 个类型加 Hixl 前缀,避免命名冲突: - TransferThreadState -> HixlTransferThreadState - TransferContextOp -> HixlTransferContextOp - TransferContextSyncEntry -> HixlTransferContextSyncEntry - TransferContextSyncParam -> HixlTransferContextSyncParam ## 测试项 - bash build.sh Release 构建通过(含 -Wall -Wextra -Werror) - bash tests/run_test.sh -s hixl 执行 hixl suite(含 hixl_kernel_basic_unittest、transfer_pool_ut 等 46 个测试套) - pre-commit run --files <改动文件> 检查 clang-format / OAT 许可证头 / codespell ## 测试结果 - 构建:成功(exit 0),Build success! hixl package success! - 测试:684/684 PASSED,0 FAILED - pre-commit:全部 Passed(clang-format / OAT / codespell / trailing whitespace 等) ## Checklist - [x] 该Pull Request的代码风格和项目的代码风格一致 - [x] 提交的代码已经过充分的验证 - [x] 涉及的相关文档修改已更新 - [x] 标题中正确使用了类型标签(例如:feat/bugfix/refactor/docs/test等) ## 其它(可选) - 结构体字段重排说明:HixlTransferContextSyncEntry 中将两个 uint64_t(thread、err_flag_dev_va)与 uint32_t 组分别聚集,reserved 收尾填充,消除隐藏 padding,struct 从 40 字节优化为 32 字节。 - 设备侧 kernel 通过具名成员访问读取字段,host/device 共用同一头文件,字段重排对二者透明一致。 See merge request: cann/hixl!726 | 13 天前 | |
[refactor]: 重构 TransferContext sync 入口并扩展同步字段 Co-authored-by: lining23666<lining.li@huawei.com> # message auto-generated for no-merge-commit merge: !726 merge cherry-pick-cc493b85 into master [refactor]: 重构 TransferContext sync 入口并扩展同步字段 Created-by: lining23666 Commit-by: lining23666 Merged-by: cann-robot Description: **提交 PR 前,请先阅读 [HIXL贡献指南](https://gitcode.com/cann/hixl/blob/master/CONTRIBUTING.md) ,查看 PR 提交方式并遵守相关提交规范。** ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [x] 代码重构 - [ ] 文档更新 - [ ] 其他,请描述: ## 描述 本 PR 包含 3 个提交,围绕 HixlSyncTransferContext 设备 kernel 入口进行扩展与重构: 1. **[feat]: extend TransferContext sync entry with stream/notify/err_flag fields** - 为 TransferContextSyncEntry 扩展 user_stream_id、notify_id、err_flag_dev_va、reserved 字段,支持设备侧按 stream/notify 维度管理传输上下文。 - 将 reserved 置于 err_flag_dev_va 之前,使结构体由 40 字节(含两处隐藏 padding)缩减为 32 字节,reserved 真正起到对齐填充作用。 - transfer_pool.cc 中两处位置式聚合初始化改为逐字段赋值,避免后续字段顺序调整导致静默错赋。 - TransferContextManager::Add 接收并写入新增字段。 2. **[refactor]: extract HixlSyncTransferContext into standalone translation unit** - 将 HixlSyncTransferContext(extern "C" kernel 入口)从 hixl_batch_transfer.{h,cc} 独立到 hixl_sync_transfer_context.{h,cc}。 - DoSyncTransferContext 及其校验 helper 移入新 cc 的匿名命名空间,成为文件私有实现,从 transfer_context_manager.h 删除其公有声明。 - 更新 CMakeLists.txt 与测试 include。 3. **[refactor]: add Hixl prefix to global transfer context types to avoid name conflicts** - 为全局命名空间下的 4 个类型加 Hixl 前缀,避免命名冲突: - TransferThreadState -> HixlTransferThreadState - TransferContextOp -> HixlTransferContextOp - TransferContextSyncEntry -> HixlTransferContextSyncEntry - TransferContextSyncParam -> HixlTransferContextSyncParam ## 测试项 - bash build.sh Release 构建通过(含 -Wall -Wextra -Werror) - bash tests/run_test.sh -s hixl 执行 hixl suite(含 hixl_kernel_basic_unittest、transfer_pool_ut 等 46 个测试套) - pre-commit run --files <改动文件> 检查 clang-format / OAT 许可证头 / codespell ## 测试结果 - 构建:成功(exit 0),Build success! hixl package success! - 测试:684/684 PASSED,0 FAILED - pre-commit:全部 Passed(clang-format / OAT / codespell / trailing whitespace 等) ## Checklist - [x] 该Pull Request的代码风格和项目的代码风格一致 - [x] 提交的代码已经过充分的验证 - [x] 涉及的相关文档修改已更新 - [x] 标题中正确使用了类型标签(例如:feat/bugfix/refactor/docs/test等) ## 其它(可选) - 结构体字段重排说明:HixlTransferContextSyncEntry 中将两个 uint64_t(thread、err_flag_dev_va)与 uint32_t 组分别聚集,reserved 收尾填充,消除隐藏 padding,struct 从 40 字节优化为 32 字节。 - 设备侧 kernel 通过具名成员访问读取字段,host/device 共用同一头文件,字段重排对二者透明一致。 See merge request: cann/hixl!726 | 13 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 天前 | ||
| 13 天前 | ||
| 13 天前 | ||
| 13 天前 | ||
| 13 天前 | ||
| 19 天前 | ||
| 13 天前 | ||
| 13 天前 |