| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(comm): add async RDMA support for HNS1825 Co-authored-by: mengxun<xunmeng20000327@163.com> # message auto-generated for no-merge-commit merge: !1374 merge feature/hns_1825_read_write into master feat(comm): add async RDMA support for HNS1825 Created-by: mengxun233 Commit-by: mengxun Merged-by: cann-robot Description: ## 描述 为 TPUT_ASYNC / TGET_ASYNC 增加 RDMA 引擎支持,并适配 HNS1825 网卡平台。RDMA 与现有 SDMA、URMA 引擎并存,当前支持在 A5 上执行异步 RDMA WRITE / READ。 mermaid flowchart TB A["Host:RdmaWorkspaceManager"] --> B["HCOMM:Endpoint / MR / RoCE Channel"] B --> C["Device Workspace"] C --> D["BuildAsyncSession<DmaEngine::RDMA>"] D --> E["TPUT_ASYNC / TGET_ASYNC(显式 peer)"] E --> F["HNS1825:WQE / Doorbell / CQE"] ### 主要改动 - 新增 DmaEngine::RDMA、RDMA session/workspace/event 处理,并为 A5 异步 PUT/GET 接入显式 peer 接口。 - 新增 Host 侧 RDMA workspace 管理,通过 HCOMM 完成 endpoint 创建、通信内存注册、RoCE channel 建链、Device workspace 生成和资源释放。 - 实现 HNS1825 RDMA WRITE / READ 的 WQE 构造、Doorbell、CQE 轮询、状态校验及本地/远端 MR 范围校验。 - 增加 A5 RDMA PUT/GET 独立 ST target、测试启动与拓扑解析,并补充接口及测试说明。 ### 约束与兼容性 - HNS1825 网卡平台当前仅支持 A5;非 A5 环境在 Host Preflight() 阶段返回错误。 - RDMA 可与 SDMA、URMA 同时存在,不改变现有引擎的执行路径。 - Host 控制面依赖 HCOMM;相关 channel/MR/SQ/CQ 布局通过编译期 size/offset 校验约束 ABI 一致性。 - 传输地址必须位于已注册的本地及远端通信内存范围内;单次传输长度上限为 0x7fffffff 字节。 ## 关联的Issue 暂未关联。 ## 测试 在UBX上跑通rdma st ## 文档更新 - 更新 TPUT_ASYNC / TGET_ASYNC 中英文接口文档及通信模块 README。 - 增加 RDMA 异步 ST 的构建、端点发现和问题定位说明。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/pto-isa!1374 | 22 天前 | |
feat(package): add pkg_inc for internal non-exposed headers Co-authored-by: zoujiangjiang<zoujiangjiang@h-partners.com> # message auto-generated for no-merge-commit merge: !1452 merge feature/pkg_inc into master feat(package): add pkg_inc for internal non-exposed headers Created-by: zoujiangjiang Commit-by: zoujiangjiang Merged-by: cann-robot Description: Per the CANN packaging convention, external headers live in include/ while non-exposed (internal) headers belong under pkg_inc/. Changes: - cmake/package.cmake: install pkg_inc/ alongside include/ into <arch>-linux/pkg_inc (COMPONENT pto-isa). - pkg_inc/pto/{comm,common,costmodel,cpu,npu}: skeleton mirroring the include/pto/ layout for future internal headers. Headers already placed under include/ are left unchanged. Installation: the CANN installer already creates the top-level pkg_inc -> <arch>-linux/pkg_inc symlink, so new internal headers become reachable at <install_path>/pkg_inc/pto/... after install, alongside the existing external headers under <install_path>/include/pto/.... See merge request: cann/pto-isa!1452 | 26 天前 | |
feat(package): add pkg_inc for internal non-exposed headers Co-authored-by: zoujiangjiang<zoujiangjiang@h-partners.com> # message auto-generated for no-merge-commit merge: !1452 merge feature/pkg_inc into master feat(package): add pkg_inc for internal non-exposed headers Created-by: zoujiangjiang Commit-by: zoujiangjiang Merged-by: cann-robot Description: Per the CANN packaging convention, external headers live in include/ while non-exposed (internal) headers belong under pkg_inc/. Changes: - cmake/package.cmake: install pkg_inc/ alongside include/ into <arch>-linux/pkg_inc (COMPONENT pto-isa). - pkg_inc/pto/{comm,common,costmodel,cpu,npu}: skeleton mirroring the include/pto/ layout for future internal headers. Headers already placed under include/ are left unchanged. Installation: the CANN installer already creates the top-level pkg_inc -> <arch>-linux/pkg_inc symlink, so new internal headers become reachable at <install_path>/pkg_inc/pto/... after install, alongside the existing external headers under <install_path>/include/pto/.... See merge request: cann/pto-isa!1452 | 26 天前 |
pkg_inc/
该目录用于存放非对外暴露(内部使用)的头文件,遵循 CANN 打包约定:
- 对外、构成公共 API 的头文件放在
include/下; - 非对外、仅内部模块使用的头文件放在
pkg_inc/下。
打包与安装
cmake/package.cmake 会将该目录与 include/ 并列安装到 <arch>-linux/pkg_inc。
CANN 安装器已自动创建顶层 pkg_inc -> <arch>-linux/pkg_inc 软链接,因此新增的
内部头文件安装后即可在 <安装路径>/pkg_inc/pto/... 访问。
新增内部头文件应放到对应的 pto/ 子目录下,而不是 include/pto/;已经放在
include/ 下的头文件保持不变。
目录结构
新增内部头文件与 include/pto/ 的布局保持一致:
pto/comm/:通信内部实现pto/common/:平台无关的共享内部实现pto/costmodel/:cost model 内部实现pto/cpu/:CPU 侧内部实现pto/npu/:NPU 侧内部实现(按 SoC 代际划分)