已合并
feat(comm): add async RDMA support for HNS1825 #1374
feat(comm): add async RDMA support for HNS1825 #1374
已合并
xun创建于 7月24日
xun
xun
7月24日

描述

为 TPUT_ASYNC / TGET_ASYNC 增加 RDMA 引擎支持,并适配 HNS1825 网卡平台。RDMA 与现有 SDMA、URMA 引擎并存,当前支持在 A5 上执行异步 RDMA WRITE / READ。

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 的构建、端点发现和问题定位说明。

类型标签

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 xun 的贡献)
xunxun
7月24日 创建了 pull request,commit 472dc4e7
atomgit-bot
atomgit-bot
7月24日 评论:

🤖 正在生成合并请求摘要,请稍候…

likedislike
不准确?
atomgit-bot
atomgit-bot
7月24日 评论:

🤖 AI 代码检视正在进行中,请稍候…

likedislike
不准确?
CANN-robotCANN-robot成员
7月24日 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
7月24日 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here。
You can get sig-info at here
For more, you also can visit HICANN


PR Approval Progress

✅ Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
docs ✅ kerwinair, echo_stone (2/2) ✅ kerwinair, echo_stone (2/1)
repo-cann/pto-isa ✅ kerwinair, echo_stone (2/2) ✅ kerwinair, echo_stone (2/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

mengxun233, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
此处折叠了138条消息 查看更多
XuWenquan成员
8月17日 评论:

/approve

likedislike
CANN-robotCANN-robot成员
8月17日 添加了label:approved
liulei成员
8月17日 评论:

/approve

likedislike
CANN-robotCANN-robot成员
8月17日 添加了label:lgtm
CANN-robotCANN-robot成员
8月17日 合入了pull request