| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【Feature】: aclrtGetDeviceInfor接口支持查询SuperPOD的柜信息 Co-authored-by: liguochao1<liguochao1@huawei.com> # message auto-generated for no-merge-commit merge: !4245 merge superpod_chassis_id into master 【Feature】: aclrtGetDeviceInfor接口支持查询SuperPOD的柜信息 Created-by: liguochao1 Commit-by: liguochao1 Merged-by: cann-robot Description: # Pull Request ## 描述 ### 需求背景 Super POD 组网中,服务器、设备、超节点 ID 等拓扑信息已可通过 aclrtGetDeviceInfo 查询,但缺少机箱 ID(Chassis ID)的查询能力。为完善 Super POD 拓扑信息查询,需新增 ACL_DEV_ATTR_SUPER_POD_CHASSIS_ID 属性,支持上层框架/应用获取机箱 ID 用于资源调度和拓扑感知。 ### 需求方案 在 aclrtDevAttr / rtDevAttr 枚举中新增 SUPER_POD_CHASSIS_ID = 410U,并在 Runtime 的 ApiImpl::GetDeviceInfoByAttr 映射表中将其映射到驱动接口 halGetDeviceInfo(MODULE_TYPE_SYSTEM, INFO_TYPE_CHASSIS_ID),透传至驱动侧查询。 调用链路: aclrtGetDeviceInfo → rtsDeviceGetInfo → ApiImpl::GetDeviceInfoByAttr(查 map 得到 moduleType/infoType)→ ApiImpl::GetDeviceInfo → NpuDriver::GetDevInfo → halGetDeviceInfo(devId, MODULE_TYPE_SYSTEM, INFO_TYPE_CHASSIS_ID, &val) ### 需求范围 INFO_TYPE_CHASSIS_ID目前只有950支持,且不区分A5的组网形态,其他芯片不支持;其他芯片下驱动会返回DRV_ERROR_NOT_SUPPORT错误码,ACL接口对应返回ACL_ERROR_RT_FEATURE_NOT_SUPPORT错误码。 ### 需求变更点 | 文件 | 变更 | |------|------| | include/external/acl/acl_rt.h | 新增 ACL_DEV_ATTR_SUPER_POD_CHASSIS_ID = 410U 枚举值 | | pkg_inc/runtime/runtime/rts/rts_device.h | 新增 RT_DEV_ATTR_SUPER_POD_CHASSIS_ID = 410U 枚举值 | | src/runtime/api/impl/api_impl.cc | GetDeviceInfoByAttr 映射表新增 {RT_DEV_ATTR_SUPER_POD_CHASSIS_ID, {MODULE_TYPE_SYSTEM, INFO_TYPE_CHASSIS_ID}} | | src/runtime/core/src/common/enum_desc.cc | DevAttrToString 新增 chassis id 枚举转字符串 | | docs/zh/api_ref/25-02_Enumerations.md | API 参考文档补充新枚举值说明 | ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue NA ## 如何测试 ### 前置条件 - 已安装包含本 PR 改动的 CANN runtime 包 - 设备已正常运行(npu-smi info 可查询) ### 正常场景 **Ascend950:** 1. aclInit(nullptr) + aclrtSetDevice(0) 2. 调用 aclrtGetDeviceInfo(0, ACL_DEV_ATTR_SUPER_POD_CHASSIS_ID, &value) 3. 预期:ret == ACL_SUCCESS,value 为机箱 ID 值 4. 多次查询验证一致性 ### 异常场景(各卡型号通用) 1. value 传 nullptr:预期返回 ACL_ERROR_INVALID_PARAM(100000) 2. deviceId 传非法值(如 65535):预期返回 ACL_ERROR_RT_PARAM_INVALID(107001) 3. attr 传非法值(如 999):预期返回 ACL_ERROR_RT_PARAM_INVALID(107001) 4. 未 aclrtSetDevice 直接查询:预期返回 ACL_ERROR_RT_PARAM_INVALID(107001) ### 驱动不支持场景 **Ascend910B/ Ascend910C :** 1. aclInit(nullptr) + aclrtSetDevice(0) 2. 调用 aclrtGetDeviceInfo(0, ACL_DEV_ATTR_SUPER_POD_CHASSIS_ID, &value) 3. 预期:ret == ACL_ERROR_RT_FEATURE_NOT_SUPPORT(207000) ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 - 驱动接口 halGetDeviceInfo 由 libascend_hal.so 导出,runtime 通过动态链接调用 - Ascend910B/910C 驱动尚未实现 INFO_TYPE_CHASSIS_ID 查询,返回 DRV_ERROR_INVALID_VALUE(3) See merge request: cann/runtime!4245 | 15 天前 | |
【PR】: precommit pkg_inc and include Co-authored-by: duanpengliang<duanpengliang@huawei.com> # message auto-generated for no-merge-commit merge: !3730 merge master_clang_pkg_inc into master 【PR】: precommit pkg_inc and include Created-by: duanpengliang Commit-by: duanpengliang Merged-by: cann-robot Description: # Pull Request ## 描述 请清晰准确地描述本次 Pull Request 的意图和变更内容。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [ ] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/runtime!3730 | 1 个月前 |