LocalCommRes Generator Tool
本工具用于生成本地通信资源(LocalCommRes)信息,并以 JSON 格式打印生成的localcommres信息到屏幕。
功能说明
该工具通过用户输入的npu逻辑id,自动生成以下信息:
- 版本号(version)
- 网络实例 ID(net_instance_id)
- 端点列表(endpoint_list),包含所有通信边的配置信息
编译
在项目根目录下执行:
bash build.sh --examples
运行
等编译完成后,进入build/scripts/tools/lcrgen/目录,其中有编译生成的可执行文件。
./lcrgen <npu_id>
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| npu_id | int | 是 | NPU 逻辑设备 ID(从 0 开始,到7截止) |
示例
# 查看帮助信息
./lcrgen
# 生成 device 0 的 LocalCommRes 信息
./lcrgen 0
# 生成 device 1 的 LocalCommRes 信息
./lcrgen 1
输出说明
控制台输出
工具会在控制台打印生成的 LocalCommRes 信息,包括:
- 版本号
- 网络实例 ID
- 端点列表大小
- 每个端点的详细信息
JSON 文件格式:
{
"version": "1.3",
"net_instance_id": "superpod_xxx",
"endpoint_list": [
{
"protocol": "ub_ctp",
"comm_id": "000000000000004000100000dfdf1672",
"placement": "host",
"plane": "plane_pg_0"
},
{
"protocol": "ub_ctp",
"comm_id": "000000000000004000100000dfdf1672",
"placement": "host",
"dst_eid": "0x000000000000008000100000dfdf1b01"
}
]
}
字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
| version | string | 版本号,默认 "1.3" |
| net_instance_id | string | 网络实例 ID |
| endpoint_list | array | 端点列表 |
| protocol | string | 通信协议,如 "ub_ctp" |
| comm_id | string | 通信标识符 |
| placement | string | 位置信息:"host" 或 "device" |
| plane | string | 平面标识(如 plane_pg_0, plane_pg_1),可选 |
| dst_eid | string | 目标 EID,可选 |
依赖
- ACL(Ascend Computing Language)运行时库
- CANN(Compute Architecture for Neural Networks)软件栈
- NPU 驱动和固件
- 执行工具时需要有root权限
注意事项
- 运行前请确保 NPU 设备可用且已正确配置
- 需要有足够的权限访问 NPU 设备,
- 端点列表可能为空(当拓扑信息不完整时)
- 需要有root权限执行可执行文件
- 如果在容器场景使用本工具,需要注意容器是否映射urma_admin show命令