MemHandlesOfChannelDesc & ChannelReuse [PLS]
Co-authored-by: renyumin<renyumin1@huawei.com>
# message auto-generated for no-merge-commit merge:
!1207 merge MemHandleForChannel into master
MemHandlesOfChannelDesc & ChannelReuse [PLS]
Created-by: renyumin
Commit-by: renyumin
Merged-by: cann-robot
Description: ## 描述
当前memHandle使用不符合预期:实际往下传的memHandle中包含的tag信息在同一块内存不同tag注册的场景仅与第一次注册的tag相同
改动点:
1.CommMemHandle中新增成员用于存储实际buffer对应handle和tag信息;
2.BatchCreateChannel中改为将包含对应tag信息的CommMemHandle向下传递:新增CommMems::SetMemHandles接口构造CommMemHandle用于向下传递;
3.AIV、CCU和AICPU场景channel和transport创建流程对应修改为将handle转换为CommMemHandle*类型;
单边通信场景为节约资源对注册内存行为增加了交集和子集情况的报错拦截,图模式需要将其放开,暂时规避增加AddWithoutCheck接口,将报错拦截去除;
channel复用时需要将内存信息更新而非直接返回channelHandle(当前仅支持AICPU场景):
1.新增HcommChannelUpdateMemInfo->ChannelProcess::ChannelUpdateMemInfo->AicpuTsUrmaChannel::UpdateMemInfo->UbMemTransport::UpdateMemInfo->UbMemTransport::CheckSocketStatus接口增加增量内存信息交换更新的动作;
2.为尽可能复用已有代码对部分接口进行修改或者将代码封装为接口:UbMemTransport::BufferVecPack,AicpuTsUrmaChannel::Makebufs,AicpuTsUrmaChannel::BuildBuffer
## 测试
<!--描述进行了哪些测试来验证你的改动。包括但不限于构造对应xx测试用例、二级冒烟、算子泛化等。-->
## 文档更新
<!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。-->
## 类型标签
<!-- [x] 表示选中 -->
- [ ] Bug修复
- [x] 新特性
- [ ] 性能优化
- [ ] 文档更新
- [ ] 其他,请描述:
See merge request: cann/hcomm!1207