| UDMA场景支持rootinfo自动生成
Co-authored-by: suqwe<sujianjia@huawei.com>
# message auto-generated for no-merge-commit merge:
!302 merge master into master
UDMA场景支持rootinfo自动生成
Created-by: suqwe
Commit-by: suqwe
Merged-by: cann-robot
Description: ## 描述
<!--在这里详细描述你的改动,包括改动的原因和所采取的方法。-->
UDMA场景支持rootinfo自动生成
### 简介
昇腾芯片在950代际中, 超平面使用Unified Bus总线组网,在不同产品形态中使用多种不同的拓扑组网方式, 本模块用于在发现在不同拓扑下每条边的端点地址
#### 组网介绍
组网主要采用了MESH和CLOS两种类型组网。相关介绍可参考论文:https://arxiv.org/abs/2503.20377
##### mesh组网
即每个NPU之间均有一条直连的物理链路,因此有一对独立的通信地址。 例如在同一个NPU板上有8个NPU,因此存在8*7/2 = 28条物理路径,即28对通信地址
##### CLOS组网
任意两个NPU之间通过交换芯片转发。 因此一个NPU址需要一个地址。 在常见组网中,由于可靠性等原因,CLOS组网通常可以分为多个平面,每个平面对应一个地址。例如在液冷POD中,NPU使用两个独立的逻辑口连接两个分开的网络平面
##### 组网规划
#### 网络层级说明
在950芯片代际中,按通信质量和范围,将网络划分为多层
| 网络层级| 说明 |
|:-------| :-----------|
|0 |通信质量最高,时延最低。多为MESH组网,主要是同一个NPU单板内的fullmesh网络和POD形态的框级网络|
|1 |通信质量次高,时延中等。为CLOS组网, 通信范围较大,为超节点范围, 仍然在scale up范围内 |
|2 |通信质量最低,CLOS组网, 通信范围为整个集群,主要是ROCE或者UBOE这类scale out网络|
##### 网络地址说明
| 网络层级| 说明 |
|:-------| :-----------|
|0 | 由于是mesh组网为主,因此有多对通信地址, 在topo addr info中表达为每个NPU上每个端口的地址, 地址类型为EID |
|1 | 根据组网平面填写地址, 多平面组网时,地址数量于平面数量相同 , 集合通信在不同平面之间做流量分担 ,地址类型为EID|
|2 |地址规划域层1相同, 地址类型为IP地址|
## 关联的Issue
<!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #123-->
<!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。-->
https://gitcode.com/cann/shmem/issues/175
## 测试
<!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。-->
UT用例

测试
[root@localhost aclshmem-master]# ./build/bin/root_info_generate 3
Generating root info for NPU with physical ID: 3
Required buffer size: 2048 bytes
topo_addr_info_get succeeded, actual size: 1329 bytes
Rank info:
{"version": "2.0","topo_file_path": "/usr/local/Ascend/driver/topo/950/atlas_850_1.json","rank_count": 1,"rank_list": [{"device_id": 3,"local_id": 3,"level_list": [{"net_layer": 0,"net_instance_id": "sp-1_srv65535","net_type": "MESH","net_attr": "","rank_addr_list": [{"addr_type": "EID","addr": "000000000000006000100000dfdf008b","plane_id": "plane_1","ports": ["1/0"]},{"addr_type": "EID","addr": "000000000000006000100000dfdf00cb","plane_id": "plane_1","ports": ["1/8"]},{"addr_type": "EID","addr": "000000000000006000100000dfdf00c3","plane_id": "plane_1","ports": ["1/7"]},{"addr_type": "EID","addr": "000000000000006000100000dfdf00ab","plane_id": "plane_1","ports": ["1/4"]},{"addr_type": "EID","addr": "000000000000006000100000dfdf00a3","plane_id": "plane_1","ports": ["1/3"]},{"addr_type": "EID","addr": "000000000000006000100000dfdf009b","plane_id": "plane_1","ports": ["1/2"]},{"addr_type": "EID","addr": "000000000000006000100000dfdf0093","plane_id": "plane_1","ports": ["1/1"]}]}, {"net_layer": 1,"net_instance_id": "superpod_-1","net_type": "CLOS","net_attr": "","rank_addr_list": [{"addr_type": "EID","addr": "000000000000004000100000dfdf00df","plane_id": "plane_1","ports": ["1/5","1/6"]},{"addr_type": "EID","addr": "000000000000006000100000dfdf005f","plane_id": "plane_0","ports": ["0/4","0/5","0/6","0/7"]}]}]}]}
Topology file path: /usr/local/Ascend/driver/topo/950/atlas_850_1.json
Root info generation completed successfully
## 文档更新
<!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。-->
## 类型标签
<!-- [x] 表示选中 -->
- [ ] Bug修复
- [x] 新特性
- [ ] 性能优化
- [ ] 文档更新
- [ ] 其他,请描述:
See merge request: cann/shmem!302 | 28 天前 |