| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
using official cann path in example Co-authored-by: liragnarosf<lijian120@huawei.com> # message auto-generated for no-merge-commit merge: !110 merge master into master using official cann path in example Created-by: liragnarosf Commit-by: liragnarosf Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 将ain用例中使用的cann路径改为cann官方路径 ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes # ### 希望检视人员了解: ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [ ] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [ ] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [ ] 代码符合规范 / Code follows style guide - [ ] 测试添加并通过 / Tests added and passed - [ ] 文档已更新 / Docs updated if needed - [ ] 无硬编码敏感信息 / No secrets hardcoded - [ ] 提交信息符合规范 / Commit message follows convention See merge request: cann/asc-comm!110 | 2 个月前 | |
add hostlaunch Co-authored-by: bluesky901<qianxinhai@huawei.com> # message auto-generated for no-merge-commit merge: !60 merge add_host_launch_br into master add hostlaunch Created-by: bluesky901 Commit-by: bluesky901 Merged-by: cann-robot Description: ### PR功能描述 / 为什么需要这个合入**: 本次提交新增 CCU Host Launch 能力,提供 asccomm_ccu_host_kernel_launch 和 asccomm_ccu_get_launch_hash_tag 接口, 支持通过直调 <<<>>> 方式拉起 CCU kernel。同时新增 ccu_direct 下 AllGather、AllGather+Add、Add+AllGather 三个样 例,以及对应 UT 和构建配置。 该能力用于打通 asc-comm 中 CCU 数据面 kernel 的 host 侧直调路径,便于业务样例直接验证 CCU 通信流程,并为后续 asc-devkit 集成、run 包独立构建和 CCU direct 调用提供基础接口与示例支撑。 ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [x] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [x] 单元测试通过 / UT passed - [x] 集成测试通过 / ST passed - [x] 人工验证通过 / Manual verified See merge request: cann/asc-comm!60 | 1 个月前 | |
feat: 多P组成环形拓扑,AIV直驱URMA样例优化 Co-authored-by: zhengdun<zhengdongwen@h-partners.com> # message auto-generated for no-merge-commit merge: !46 merge master into master feat: 多P组成环形拓扑,AIV直驱URMA样例优化 Created-by: zhengdun Commit-by: zhengdun Merged-by: cann-robot Description: ## 变更描述 / Description 多P组成环形拓扑,AIV直驱URMA样例优化 <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [x] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 关联 Issue / Related Issues <!-- Closes #000 可自动关闭 / Closes #000 to auto-close --> - Closes # - References # ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [x] 人工验证通过 / Manual verified ## 检查清单 / Checklist - [x] 代码符合规范 / Code follows style guide - [x] 测试添加并通过 / Tests added and passed - [x] 文档已更新 / Docs updated if needed - [x] 无硬编码敏感信息 / No secrets hardcoded - [x] 提交信息符合规范 / Commit message follows convention See merge request: cann/asc-comm!46 | 2 个月前 | |
feat(examples): add one multi path sample Co-authored-by: hbhdhd<luxianbin1@huawei.com> # message auto-generated for no-merge-commit merge: !67 merge onepath into master feat(examples): add one multi path sample Created-by: hbhdhd Commit-by: hbhdhd Merged-by: cann-robot Description: <!-- Thanks for sending a pull request! --> ### Was This PR authored or co-authored using generative AI tooling? [x] No [ ] Yes __1. AI Agent : __2. AI Model : __3. Prompt : ### What this PR does / why we need it: <!-- What does this PR do and why / 本 PR 做了什么,为什么需要 --> Adds the one_multi_path Ascend C sample for Ascend 950PR/Ascend 950DT. The sample queries COMM_PROTOCOL_UB_MEM links, creates pathMode=2 and pathMode=3 channels for each peer in one communication domain, and uses two streams to copy and verify separate data shards concurrently. It includes single-host and multi-host launch instructions. ### Which issue this PR fixes *(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)*: fixes # ### Special notes for your reviewer: ## Change Type / 改动类型 - [ ] Bug Fix / Bug 修复 - [x] New Feature / 新功能 - [ ] Performance / 性能优化 - [ ] Refactoring / 代码重构 - [ ] Documentation / 文档更新 - [ ] Test / 测试相关 - [ ] Other / 其它 ## Testing / 测试信息 <!-- Brief test description or key results / 简要测试说明或关键结果 --> - [ ] UT passed / 单元测试通过 - [ ] ST passed / 集成测试通过 - [ ] Manual verified / 人工验证通过 ## Checklist / 检查清单 - [ ] Code follows style guide / 代码符合规范 - [ ] Tests added and passed / 测试添加并通过 - [ ] Docs updated if needed / 文档已更新 - [ ] No secrets hardcoded / 无硬编码敏感信息 - [ ] Commit message follows convention / 提交信息符合规范 See merge request: cann/asc-comm!67 | 2 个月前 | |
feat(hcomm): 支持 SIMT URMA Write/Read/Notify/Atomic 接口 Co-authored-by: mizuki_p<wanghan157@huawei.com> Co-authored-by: pengqihw<pengqi33@huawei.com> # message auto-generated for no-merge-commit merge: !71 merge feat/simt-notify-atomic into master feat(hcomm): 支持 SIMT URMA Write/Read/Notify/Atomic 接口 Created-by: pengqihw Commit-by: pengqi;pengqihw;mizuki_p Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 补齐 SIMT URMA 通信链路,支持以下接口: - WriteNbi:将本地数据异步写入远端注册内存。 - ReadNbi:从远端注册内存异步读取数据到本地。 - WriteWithNotifyNbi:写入远端数据,并同时更新指定的远端通知地址。 - AtomicFAA:原子读取远端旧值并累加指定值,旧值写回本地 fetchAddr。 - AtomicCAS:比较远端值,相等时写入新值,同时将远端旧值写回本地 fetchAddr。 接口覆盖远端注册信息解析、SQ 空间预留、WQE 组装、普通 SQ 写入、DWQE 发布及 CQ 完成等待。 ## 主要修改 - Write/Read 根据提交方式生成对应的 SQE/SGE 布局。 - Notify/FAA/CAS 使用每 lane 独立 UB 空间组装完整 128B WQE。 - commit=false 仅将 WQE 写入普通 SQ。 - commit=true 将 WQE同步写入普通 SQ 和 DWQE window,发布当前累计任务。 - FAA/CAS 将远端旧值写回本地 fetchAddr。 - 通过 CAS 原子更新 SQ head,保证并发 deferred WQE 获得不同 SQ slot。 - SQ 空间不足时轮询 CQ 释放容量并重试,避免覆盖尚未完成的 WQE。 - 对跨越 SQ 环尾的 2BB WQE进行分段写入,第二个 BB 回绕至 SQ 起始位置。 - PollCq 根据 CQE entryIdx推进 SQ tail,正确处理不同 BB 数量的 WQE。 ## 提交方式与并发约束 支持两种提交方式: - Immediate:单 lane 使用 commit=true 立即发布。 - Last Commit:多个 lane 可并发执行 commit=false;同步后由一个 lane 执行最终 commit=true,统一发布并调用 Drain。 不支持多个 lane 同时对同一 channel 执行 commit=true。 ## 样例与性能工具 simt_write 样例覆盖: - 单 lane Immediate Write - 单 lane Last Commit - 多 lane deferred Write + 单 lane最终提交 simt_notify_atomic 样例覆盖: - Notify、FAA、CAS 单接口 - 串行组合调用 - 单 lane Last Commit - 多 lane deferred + 单 lane最终提交 - 连续 Immediate Notify 性能样例支持 Notify、FAA、CAS 的 t1 Immediate 及 t1/t32/t1024 Last Commit,并输出平均下发时延和 Completion 带宽。 ## 验证结果 以下功能场景均验证通过: - Write single - Write batch_last - Write multi_lane - Notify - FAA - CAS - Notify/FAA/CAS 串行组合 - Notify/FAA/CAS Last Commit - 多 lane deferred + 单 lane最终提交 - 连续 Immediate Notify Notify、FAA、CAS 性能用例的 t1 Immediate 及 t1/t32/t1024 Last Commit 均可正常完成,DrainStatus=0。   ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes # ### 希望检视人员了解: ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [x] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [x] 人工验证通过 / Manual verified  ## 检查清单 / Checklist - [x] 代码符合规范 / Code follows style guide - [x] 测试添加并通过 / Tests added and passed - [x] 文档已更新 / Docs updated if needed - [x] 无硬编码敏感信息 / No secrets hardcoded - [x] 提交信息符合规范 / Commit message follows convention See merge request: cann/asc-comm!71 | 2 个月前 | |
feat(hcomm): 支持 SIMT URMA Write/Read/Notify/Atomic 接口 Co-authored-by: mizuki_p<wanghan157@huawei.com> Co-authored-by: pengqihw<pengqi33@huawei.com> # message auto-generated for no-merge-commit merge: !71 merge feat/simt-notify-atomic into master feat(hcomm): 支持 SIMT URMA Write/Read/Notify/Atomic 接口 Created-by: pengqihw Commit-by: pengqi;pengqihw;mizuki_p Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 补齐 SIMT URMA 通信链路,支持以下接口: - WriteNbi:将本地数据异步写入远端注册内存。 - ReadNbi:从远端注册内存异步读取数据到本地。 - WriteWithNotifyNbi:写入远端数据,并同时更新指定的远端通知地址。 - AtomicFAA:原子读取远端旧值并累加指定值,旧值写回本地 fetchAddr。 - AtomicCAS:比较远端值,相等时写入新值,同时将远端旧值写回本地 fetchAddr。 接口覆盖远端注册信息解析、SQ 空间预留、WQE 组装、普通 SQ 写入、DWQE 发布及 CQ 完成等待。 ## 主要修改 - Write/Read 根据提交方式生成对应的 SQE/SGE 布局。 - Notify/FAA/CAS 使用每 lane 独立 UB 空间组装完整 128B WQE。 - commit=false 仅将 WQE 写入普通 SQ。 - commit=true 将 WQE同步写入普通 SQ 和 DWQE window,发布当前累计任务。 - FAA/CAS 将远端旧值写回本地 fetchAddr。 - 通过 CAS 原子更新 SQ head,保证并发 deferred WQE 获得不同 SQ slot。 - SQ 空间不足时轮询 CQ 释放容量并重试,避免覆盖尚未完成的 WQE。 - 对跨越 SQ 环尾的 2BB WQE进行分段写入,第二个 BB 回绕至 SQ 起始位置。 - PollCq 根据 CQE entryIdx推进 SQ tail,正确处理不同 BB 数量的 WQE。 ## 提交方式与并发约束 支持两种提交方式: - Immediate:单 lane 使用 commit=true 立即发布。 - Last Commit:多个 lane 可并发执行 commit=false;同步后由一个 lane 执行最终 commit=true,统一发布并调用 Drain。 不支持多个 lane 同时对同一 channel 执行 commit=true。 ## 样例与性能工具 simt_write 样例覆盖: - 单 lane Immediate Write - 单 lane Last Commit - 多 lane deferred Write + 单 lane最终提交 simt_notify_atomic 样例覆盖: - Notify、FAA、CAS 单接口 - 串行组合调用 - 单 lane Last Commit - 多 lane deferred + 单 lane最终提交 - 连续 Immediate Notify 性能样例支持 Notify、FAA、CAS 的 t1 Immediate 及 t1/t32/t1024 Last Commit,并输出平均下发时延和 Completion 带宽。 ## 验证结果 以下功能场景均验证通过: - Write single - Write batch_last - Write multi_lane - Notify - FAA - CAS - Notify/FAA/CAS 串行组合 - Notify/FAA/CAS Last Commit - 多 lane deferred + 单 lane最终提交 - 连续 Immediate Notify Notify、FAA、CAS 性能用例的 t1 Immediate 及 t1/t32/t1024 Last Commit 均可正常完成,DrainStatus=0。   ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes # ### 希望检视人员了解: ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [x] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [x] 人工验证通过 / Manual verified  ## 检查清单 / Checklist - [x] 代码符合规范 / Code follows style guide - [x] 测试添加并通过 / Tests added and passed - [x] 文档已更新 / Docs updated if needed - [x] 无硬编码敏感信息 / No secrets hardcoded - [x] 提交信息符合规范 / Commit message follows convention See merge request: cann/asc-comm!71 | 2 个月前 | |
feat(hcomm): 支持 SIMT URMA Write/Read/Notify/Atomic 接口 Co-authored-by: mizuki_p<wanghan157@huawei.com> Co-authored-by: pengqihw<pengqi33@huawei.com> # message auto-generated for no-merge-commit merge: !71 merge feat/simt-notify-atomic into master feat(hcomm): 支持 SIMT URMA Write/Read/Notify/Atomic 接口 Created-by: pengqihw Commit-by: pengqi;pengqihw;mizuki_p Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 补齐 SIMT URMA 通信链路,支持以下接口: - WriteNbi:将本地数据异步写入远端注册内存。 - ReadNbi:从远端注册内存异步读取数据到本地。 - WriteWithNotifyNbi:写入远端数据,并同时更新指定的远端通知地址。 - AtomicFAA:原子读取远端旧值并累加指定值,旧值写回本地 fetchAddr。 - AtomicCAS:比较远端值,相等时写入新值,同时将远端旧值写回本地 fetchAddr。 接口覆盖远端注册信息解析、SQ 空间预留、WQE 组装、普通 SQ 写入、DWQE 发布及 CQ 完成等待。 ## 主要修改 - Write/Read 根据提交方式生成对应的 SQE/SGE 布局。 - Notify/FAA/CAS 使用每 lane 独立 UB 空间组装完整 128B WQE。 - commit=false 仅将 WQE 写入普通 SQ。 - commit=true 将 WQE同步写入普通 SQ 和 DWQE window,发布当前累计任务。 - FAA/CAS 将远端旧值写回本地 fetchAddr。 - 通过 CAS 原子更新 SQ head,保证并发 deferred WQE 获得不同 SQ slot。 - SQ 空间不足时轮询 CQ 释放容量并重试,避免覆盖尚未完成的 WQE。 - 对跨越 SQ 环尾的 2BB WQE进行分段写入,第二个 BB 回绕至 SQ 起始位置。 - PollCq 根据 CQE entryIdx推进 SQ tail,正确处理不同 BB 数量的 WQE。 ## 提交方式与并发约束 支持两种提交方式: - Immediate:单 lane 使用 commit=true 立即发布。 - Last Commit:多个 lane 可并发执行 commit=false;同步后由一个 lane 执行最终 commit=true,统一发布并调用 Drain。 不支持多个 lane 同时对同一 channel 执行 commit=true。 ## 样例与性能工具 simt_write 样例覆盖: - 单 lane Immediate Write - 单 lane Last Commit - 多 lane deferred Write + 单 lane最终提交 simt_notify_atomic 样例覆盖: - Notify、FAA、CAS 单接口 - 串行组合调用 - 单 lane Last Commit - 多 lane deferred + 单 lane最终提交 - 连续 Immediate Notify 性能样例支持 Notify、FAA、CAS 的 t1 Immediate 及 t1/t32/t1024 Last Commit,并输出平均下发时延和 Completion 带宽。 ## 验证结果 以下功能场景均验证通过: - Write single - Write batch_last - Write multi_lane - Notify - FAA - CAS - Notify/FAA/CAS 串行组合 - Notify/FAA/CAS Last Commit - 多 lane deferred + 单 lane最终提交 - 连续 Immediate Notify Notify、FAA、CAS 性能用例的 t1 Immediate 及 t1/t32/t1024 Last Commit 均可正常完成,DrainStatus=0。   ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes # ### 希望检视人员了解: ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [x] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [x] 人工验证通过 / Manual verified  ## 检查清单 / Checklist - [x] 代码符合规范 / Code follows style guide - [x] 测试添加并通过 / Tests added and passed - [x] 文档已更新 / Docs updated if needed - [x] 无硬编码敏感信息 / No secrets hardcoded - [x] 提交信息符合规范 / Commit message follows convention See merge request: cann/asc-comm!71 | 2 个月前 | |
feat(hcomm): 支持 SIMT URMA Write/Read/Notify/Atomic 接口 Co-authored-by: mizuki_p<wanghan157@huawei.com> Co-authored-by: pengqihw<pengqi33@huawei.com> # message auto-generated for no-merge-commit merge: !71 merge feat/simt-notify-atomic into master feat(hcomm): 支持 SIMT URMA Write/Read/Notify/Atomic 接口 Created-by: pengqihw Commit-by: pengqi;pengqihw;mizuki_p Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 补齐 SIMT URMA 通信链路,支持以下接口: - WriteNbi:将本地数据异步写入远端注册内存。 - ReadNbi:从远端注册内存异步读取数据到本地。 - WriteWithNotifyNbi:写入远端数据,并同时更新指定的远端通知地址。 - AtomicFAA:原子读取远端旧值并累加指定值,旧值写回本地 fetchAddr。 - AtomicCAS:比较远端值,相等时写入新值,同时将远端旧值写回本地 fetchAddr。 接口覆盖远端注册信息解析、SQ 空间预留、WQE 组装、普通 SQ 写入、DWQE 发布及 CQ 完成等待。 ## 主要修改 - Write/Read 根据提交方式生成对应的 SQE/SGE 布局。 - Notify/FAA/CAS 使用每 lane 独立 UB 空间组装完整 128B WQE。 - commit=false 仅将 WQE 写入普通 SQ。 - commit=true 将 WQE同步写入普通 SQ 和 DWQE window,发布当前累计任务。 - FAA/CAS 将远端旧值写回本地 fetchAddr。 - 通过 CAS 原子更新 SQ head,保证并发 deferred WQE 获得不同 SQ slot。 - SQ 空间不足时轮询 CQ 释放容量并重试,避免覆盖尚未完成的 WQE。 - 对跨越 SQ 环尾的 2BB WQE进行分段写入,第二个 BB 回绕至 SQ 起始位置。 - PollCq 根据 CQE entryIdx推进 SQ tail,正确处理不同 BB 数量的 WQE。 ## 提交方式与并发约束 支持两种提交方式: - Immediate:单 lane 使用 commit=true 立即发布。 - Last Commit:多个 lane 可并发执行 commit=false;同步后由一个 lane 执行最终 commit=true,统一发布并调用 Drain。 不支持多个 lane 同时对同一 channel 执行 commit=true。 ## 样例与性能工具 simt_write 样例覆盖: - 单 lane Immediate Write - 单 lane Last Commit - 多 lane deferred Write + 单 lane最终提交 simt_notify_atomic 样例覆盖: - Notify、FAA、CAS 单接口 - 串行组合调用 - 单 lane Last Commit - 多 lane deferred + 单 lane最终提交 - 连续 Immediate Notify 性能样例支持 Notify、FAA、CAS 的 t1 Immediate 及 t1/t32/t1024 Last Commit,并输出平均下发时延和 Completion 带宽。 ## 验证结果 以下功能场景均验证通过: - Write single - Write batch_last - Write multi_lane - Notify - FAA - CAS - Notify/FAA/CAS 串行组合 - Notify/FAA/CAS Last Commit - 多 lane deferred + 单 lane最终提交 - 连续 Immediate Notify Notify、FAA、CAS 性能用例的 t1 Immediate 及 t1/t32/t1024 Last Commit 均可正常完成,DrainStatus=0。   ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes # ### 希望检视人员了解: ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [x] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [x] 人工验证通过 / Manual verified  ## 检查清单 / Checklist - [x] 代码符合规范 / Code follows style guide - [x] 测试添加并通过 / Tests added and passed - [x] 文档已更新 / Docs updated if needed - [x] 无硬编码敏感信息 / No secrets hardcoded - [x] 提交信息符合规范 / Commit message follows convention See merge request: cann/asc-comm!71 | 2 个月前 | |
feat(hcomm): 支持 SIMT URMA Write/Read/Notify/Atomic 接口 Co-authored-by: mizuki_p<wanghan157@huawei.com> Co-authored-by: pengqihw<pengqi33@huawei.com> # message auto-generated for no-merge-commit merge: !71 merge feat/simt-notify-atomic into master feat(hcomm): 支持 SIMT URMA Write/Read/Notify/Atomic 接口 Created-by: pengqihw Commit-by: pengqi;pengqihw;mizuki_p Merged-by: cann-robot Description: <!-- 感谢您的合入申请! --> ### 当前PR是否有AI参与: [x] 否 [ ] 是 __1. AI Agent 平台: __2. AI 模型: __3. Prompt上下文 : ### PR功能描述 / 为什么需要这个合入**: <!-- 本 PR 做了什么,为什么需要 / What does this PR do and why --> 补齐 SIMT URMA 通信链路,支持以下接口: - WriteNbi:将本地数据异步写入远端注册内存。 - ReadNbi:从远端注册内存异步读取数据到本地。 - WriteWithNotifyNbi:写入远端数据,并同时更新指定的远端通知地址。 - AtomicFAA:原子读取远端旧值并累加指定值,旧值写回本地 fetchAddr。 - AtomicCAS:比较远端值,相等时写入新值,同时将远端旧值写回本地 fetchAddr。 接口覆盖远端注册信息解析、SQ 空间预留、WQE 组装、普通 SQ 写入、DWQE 发布及 CQ 完成等待。 ## 主要修改 - Write/Read 根据提交方式生成对应的 SQE/SGE 布局。 - Notify/FAA/CAS 使用每 lane 独立 UB 空间组装完整 128B WQE。 - commit=false 仅将 WQE 写入普通 SQ。 - commit=true 将 WQE同步写入普通 SQ 和 DWQE window,发布当前累计任务。 - FAA/CAS 将远端旧值写回本地 fetchAddr。 - 通过 CAS 原子更新 SQ head,保证并发 deferred WQE 获得不同 SQ slot。 - SQ 空间不足时轮询 CQ 释放容量并重试,避免覆盖尚未完成的 WQE。 - 对跨越 SQ 环尾的 2BB WQE进行分段写入,第二个 BB 回绕至 SQ 起始位置。 - PollCq 根据 CQE entryIdx推进 SQ tail,正确处理不同 BB 数量的 WQE。 ## 提交方式与并发约束 支持两种提交方式: - Immediate:单 lane 使用 commit=true 立即发布。 - Last Commit:多个 lane 可并发执行 commit=false;同步后由一个 lane 执行最终 commit=true,统一发布并调用 Drain。 不支持多个 lane 同时对同一 channel 执行 commit=true。 ## 样例与性能工具 simt_write 样例覆盖: - 单 lane Immediate Write - 单 lane Last Commit - 多 lane deferred Write + 单 lane最终提交 simt_notify_atomic 样例覆盖: - Notify、FAA、CAS 单接口 - 串行组合调用 - 单 lane Last Commit - 多 lane deferred + 单 lane最终提交 - 连续 Immediate Notify 性能样例支持 Notify、FAA、CAS 的 t1 Immediate 及 t1/t32/t1024 Last Commit,并输出平均下发时延和 Completion 带宽。 ## 验证结果 以下功能场景均验证通过: - Write single - Write batch_last - Write multi_lane - Notify - FAA - CAS - Notify/FAA/CAS 串行组合 - Notify/FAA/CAS Last Commit - 多 lane deferred + 单 lane最终提交 - 连续 Immediate Notify Notify、FAA、CAS 性能用例的 t1 Immediate 及 t1/t32/t1024 Last Commit 均可正常完成,DrainStatus=0。   ### 该PR关联的issue *(格式为fixes #<issue号>, 或者resolves #<issue号>)*: fixes # ### 希望检视人员了解: ## 改动类型 / Change Type - [ ] Bug 修复 / Bug Fix - [x] 新功能 / New Feature - [ ] 性能优化 / Performance - [ ] 代码重构 / Refactoring - [ ] 文档更新 / Documentation - [ ] 测试相关 / Test - [ ] 其它 / Other ## 测试信息 / Testing <!-- 简要测试说明或关键结果 / Brief test description or key results --> - [ ] 单元测试通过 / UT passed - [ ] 集成测试通过 / ST passed - [x] 人工验证通过 / Manual verified  ## 检查清单 / Checklist - [x] 代码符合规范 / Code follows style guide - [x] 测试添加并通过 / Tests added and passed - [x] 文档已更新 / Docs updated if needed - [x] 无硬编码敏感信息 / No secrets hardcoded - [x] 提交信息符合规范 / Commit message follows convention See merge request: cann/asc-comm!71 | 2 个月前 |
asc-comm样例
本目录提供asc-comm API的使用样例。
样例列表
| 样例 | 说明 | 支持产品 |
|---|---|---|
| ain/basic_ring | 演示多卡环形场景下AIV Kernel通过AIN接口调用Put/Get进行点对点单边通信,并通过AinBarrierSession完成同步与结果校验。 |
Ascend 950PR/Ascend 950DT |
| hcomm_write_read_nbi | 演示多卡场景下AIV Kernel通过URMA路径调用Hcomm::WriteNbi和Hcomm::ReadNbi,并校验通信结果。 |
Ascend 950PR/Ascend 950DT |
| one_multi_path | 查询UB_MEM链路,为每个peer创建one path/multi path Channel,逐个处理peer,并通过双Stream并发搬运和校验该peer的远端数据。 |
Ascend 950PR/Ascend 950DT |
| simt_notify_atomic | 演示并验证 SIMT URMA WriteWithNotifyNbi、AtomicFAA 和 AtomicCAS 的单次、批量及多 lane 提交。 |
Ascend 950PR / Ascend 950DT |
| simt_notify_atomic_perf | 测量SIMT URMA WriteWithNotifyNbi、AtomicFAA和AtomicCAS的下发时延与完成带宽。 |
Ascend 950PR / Ascend 950DT |
simt_notify_atomic
simt_notify_atomic验证SIMT Kernel通过URMA路径调用WriteWithNotifyNbi、AtomicFAA和AtomicCAS。样例包含三个单接口用例,以及串行提交、batch-last和多lane批量提交场景。
编译运行方式参见simt_notify_atomic/README.md。
性能测试及结果汇总方式参见simt_notify_atomic_perf/README.md。
运行约束
- 样例支持Ascend 950PR/Ascend 950DT,CANN软件版本要求为9.1.0或以上。
- 样例运行需要至少2张NPU;单卡环境仅支持编译验证。
- 样例编译依赖CANN ASC CMake能力,并在链接阶段依赖CANN
hcomm库。