| feat:inductor场景支持核数、ub参数的配置
Co-authored-by: gcw_V3YyYBt1<gaoxin32@huawei.com>
# message auto-generated for no-merge-commit merge:
!390 merge develop into develop
feat:inductor场景支持核数、ub参数的配置
Created-by: gcw_V3YyYBt1
Commit-by: gcw_V3YyYBt1
Merged-by: cann-robot
Description:
# Pull Request
## 描述
## 1. 主要解决的问题
原有 PlatformContext 仅缓存平台名称字符串( current_platform_ ),无法提供硬件规格参数(AIV核数 aiv_num 、UB大小 ub_size )。代码生成阶段 GenGetResLimitStru 中 g_no_limit_res 的核数和UB大小为硬编码值,无法根据实际芯片规格动态适配,导致不同平台下生成的 Tiling 代码可能使用错误的硬件参数。
## 2. 修改方案
(1)新增 PlatformInfo 结构体,封装 soc_ver 、 aiv_num 、 ub_size ,替代原有的 current_platform_ 字符串硬件信息获取
(2)通过 rtGetSocSpec 接口查询 SoCInfo.vector_core_cnt 和 AICoreSpec.ub_size ,将字符串安全转换为 int64_t 初始化拆分 将硬件参数初始化逻辑从 Initialize() 中抽取为独立函数 InitPlatformInfo() ,职责清晰
(3)对外接口 新增 GetPlatformInfo() 统一返回完整平台信息
## 3. 代码修改流程图
```mermaid
graph TD
A[新增 PlatformInfo 结构体定义<br/>soc_ver, aiv_num, ub_size] --> B[PlatformContext 类增强]
B --> B1[添加 InitPlatformInfo 方法]
B --> B2[添加 GetPlatformInfo 方法]
B --> B3[从 current_platform_ 改为 platform_info_]
B1 --> C[InitPlatformInfo 实现获取逻辑]
C --> C1[rtGetSocSpec获取 vector_core_cnt]
C --> C2[rtGetSocSpec获取 ub_size]
C --> C3[解析并存储到 platform_info_]
C3 --> D[代码生成时使用动态配置]
D --> D1[GenGetResLimitStru 获取 platform_info]
D --> D2[使用 platform_info.aiv_num 和 ub_size]
D2 --> E[单元测试相应调整]
```
## 变更类型
请选择本次引入的变更类型:
<!-- [x] 表示选中 -->
- [ ] 🐛 Bug 修复
- [x] ✨ 新功能
- [ ] 💄 代码风格更新(格式化,局部变量)
- [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动)
- [ ] 📦 构建过程或辅助工具的变动
- [ ] 📝 文档内容更新
## 关联的Issue
<!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 -->
## 如何测试
描述测试此变更的步骤和前提条件:
1.编写inductor场景的Python测试用例
2.运行用例
## 核对清单
<!-- [x] 表示选中 -->
- [x] 我的代码遵循了项目的代码风格
- [x] 我已对代码进行了自测
- [x] 我已更新了相关的文档
- [x] 我在标题中使用了合适的类型标签(如:feat:, fix:)
- [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等
## 其他信息
在此添加任何其他关于本次 PR 的说明。
See merge request: cann/graph-autofusion!390 | 16 天前 |