已合并
支持采用HcommChannelDrain实现channel的阻塞完成功能调用 #2771
YantingLiu创建于 8月26日
支持采用HcommChannelDrain实现channel的阻塞完成功能调用 #2771
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 YantingLiu 的贡献)8月26日 创建了 pull request,commit 7421f531
atomgit-bot
8月26日 评论:
8月26日 评论:
变更摘要
该 PR(标题"适配drian")主要将 DPU 侧主机通道的同步语义从"Fence"切换为"Drain":在多个 DPU/Host NIC 算子模板中,将 HcommChannelFenceOnThread 调用替换为 HcommChannelDrainOnThread,并对 HCCL_E_NOT_SUPPORT 返回值做显式错误日志与返回处理,同时为测试桩补充了 HcommChannelDrainOnThread 的实现。该改动主要影响 BatchSendRecv、Send/Recv 及 NHR 批量传输等算子的主机通道同步流程。
主要改动
- BatchSendRecv FENCE 分支改用 Drain: 在
InsTempBatchSendRecvDpu::DPUKernelRun的FENCE分支中,将HcommChannelFenceOnThread替换为HcommChannelDrainOnThread,当返回HCCL_E_NOT_SUPPORT时打印错误日志(提示更新 HCOMM)并返回该错误码,否则继续执行HcommFenceOnThread。 - 数据搬运封装改用 Drain: 在
dpu_alg_data_trans_wrapper.cc的SendRecvWrite、SendWrite、RecvWrite三个接口中,均以HcommChannelDrainOnThread取代原HcommChannelFenceOnThread,并采用一致的HCCL_E_NOT_SUPPORT错误处理与日志输出。 - NHR 批量传输去重通道 Drain: 在
DpuBatchTransfer中,将发送通道与接收通道(samePeer时仅一次的去重逻辑保留)的 Fence 调用替换为 Drain,注释同步由 "Fence" 更新为 "Drain"。 - Host NIC 收发算子改用 Drain:
InsTempRecvHostNicDpu::DPUKernelRun与InsTempSendHostNicDpu::DPUKernelRun中,原先对channels.at(rankIdx)[0]的HcommChannelFenceOnThread均替换为HcommChannelDrainOnThread,并增加HCCL_E_NOT_SUPPORT的错误日志与返回处理。 - 补充测试桩实现: 在
hccl_stub.cc中新增HcommChannelDrainOnThread桩函数,忽略入参并打印 "not support" 警告后返回 0,以支撑测试链路对 Drain 接口的调用。


不准确?
atomgit-bot
8月26日 评论:
8月26日 评论:
8月26日 添加了label:cann-cla/no
CANN-robot
8月26日 评论:
8月26日 评论:
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.
You can self-configure the PR merge rules for this repository. For more details, please refer to 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 |
|---|---|---|
| src | ✅ 李标智, 严正行 (2/2) | ✅ 李标智 (1/1) |
| test/st/algorithm | ✅ 吴昊堃, 严正行 (2/2) | ✅ 吴昊堃 (1/1) |
💡 Tip:
- Committer can comment
/approveor/lgtm- Commenting
/approveimplies both code review (lgtm) and intent to merge (approve)
CLA Signature Pass
YantingLiu, thanks for your pull request. All authors of the commits have signed the CLA. 👍


此处折叠了203条消息 查看更多
严正行
9月4日 评论:
9月4日 评论:
/lgtm


whk_24
9月4日 评论:
9月4日 评论:
/approve


9月4日 添加了label:lgtmapproved
9月4日 合入了pull request
描述
适配A5 Host CPU Channel的数据面Drain能力。
本PR仅修改HCCL仓:将Host-NIC DPU的Send、Recv、BatchSendRecv及公共数据传输模板中,用于等待Channel任务完成的
HcommChannelFenceOnThread替换为HcommChannelDrainOnThread。主要改动:
DpuBatchTransfer分别对TX/RX Channel执行Drain;TX/RX Handle相同时只执行一次。HcommFenceOnThread(0)调用,PCIe Flush流程保持不变。HcommChannelDrainOnThreadWithCompat统一处理Drain返回值。HCCL_E_PTR时,提示当前HCOMM可能尚未支持Host Channel Drain,并透传原错误码,不触发core。HcommChannelDrainOnThread弱声明及弱桩,使使用未声明该接口的旧HCOMM头文件进行编包时能够通过编译。运行时使用Host Channel Drain仍要求配套HCOMM提供对应接口和实现。涉及调用点:
InsTempBatchSendRecvDpuInsTempSendHostNicDpuInsTempRecvHostNicDpuSendRecvWriteSendWriteRecvWriteDpuBatchTransferTX/RX Channel关联的Issue
NA
测试
文档更新
类型标签