已合并
feat: 【编译性能优化】TilingFunc支持按需引用头文件 #1530
zhang_shengjie创建于 7月28日
feat: 【编译性能优化】TilingFunc支持按需引用头文件 #1530
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 zhang_shengjie 的贡献)7月28日 创建了 pull request,commit c6485d49
Zzhang_shengjie
7月28日 update merge request[project id: 8005834, iid: 1530, commit_id: cf7522a491928855b6c66542866b8a6b82b401fa] virtual merging success
7月28日 update merge request[project id: 8005834, iid: 1530, commit_id: cf7522a491928855b6c66542866b8a6b82b401fa] virtual merging success
Zzhang_shengjie
7月28日 update merge request[project id: 8005834, iid: 1530, commit_id: ca42d4feb6203c5be829aee33b4971d58a8ce7d5] virtual merging success
7月28日 update merge request[project id: 8005834, iid: 1530, commit_id: ca42d4feb6203c5be829aee33b4971d58a8ce7d5] virtual merging success
7月28日 添加了label:stat/needs-squash
7月28日 添加了label:cann-cla/yes
CANN-robot
7月28日 评论:
7月28日 评论:
Thanks for your pull-request.
The full list of commands accepted by me can be found at here。
You can get sig-info at here
PR Approval Progress
✅ Congratulations! All modules have met the lgtm and approve requirements.
Module Approval Details
| module | lgtm status | approve status |
|---|---|---|
| repo-cann/graph-autofusion | ✅ zhanj, wangxiaotian995, xuyafei (3/2) | ✅ zhanj (1/1) |
💡 Tip:
- Committer can comment
/approveor/lgtm- Commenting
/approveimplies both code review (lgtm) and intent to merge (approve)
CLA Signature Pass
zhang_shengjie, thanks for your pull request. All authors of the commits have signed the CLA. 👍


7月28日 将yangyongqiang0606,xchu42,depeng1994,wqtshg_wt,peiyang,shengnan666,XuebinYang,sjtulxh,zhanj,zhujingjing,xuyafei,wangxiaotian995设为评审人
7月28日 将yangyongqiang0606,xchu42,depeng1994,wqtshg_wt,peiyang,shengnan666,XuebinYang,sjtulxh,zhanj,zhujingjing,xuyafei,wangxiaotian995设为评审人
7月28日 将yangyongqiang0606,xchu42,depeng1994,wqtshg_wt,peiyang,shengnan666,XuebinYang,sjtulxh,zhanj,zhujingjing,xuyafei,wangxiaotian995设为审查人
7月28日 将yangyongqiang0606,xchu42,depeng1994,wqtshg_wt,peiyang,shengnan666,XuebinYang,sjtulxh,zhanj,zhujingjing,xuyafei,wangxiaotian995设为审查人
Zzhang_shengjie
7月28日 update merge request[project id: 8005834, iid: 1530, commit_id: 061ea740613d6f6a41b8f7f3ccfe7d686dbd4d89] virtual merging success
7月28日 update merge request[project id: 8005834, iid: 1530, commit_id: 061ea740613d6f6a41b8f7f3ccfe7d686dbd4d89] virtual merging success
7月28日 推送 1 个提交:7c28b0fd-fix: 补全 API tiling 与 duration 生成依赖
Zzhang_shengjie
7月28日 update merge request[project id: 8005834, iid: 1530, commit_id: bdcc6a6796aa7be4033037c89bee1e30fdb62dc5] virtual merging success
7月28日 update merge request[project id: 8005834, iid: 1530, commit_id: bdcc6a6796aa7be4033037c89bee1e30fdb62dc5] virtual merging success
zhang_shengjie
7月28日 评论:
7月28日 评论:
compile


Zzhang_shengjie
7月28日 update merge request[project id: 8005834, iid: 1530, commit_id: 36aaa290cd54b8dd19690156fa228c096e38a9f6] virtual merging success
7月28日 update merge request[project id: 8005834, iid: 1530, commit_id: 36aaa290cd54b8dd19690156fa228c096e38a9f6] virtual merging success
7月28日 添加了label:ci-pipeline-running
CANN-robot
7月28日 评论:
7月28日 评论:
流水线任务触发成功
任务链接 [27e42d500d95403c9b1026fb29920dd7][流水线指导]
| 任务名称 | 状态 | 日志 | 下载链接 |
|---|---|---|---|
| codecheck | ✅ SUCCESS | >>>>> | |
| SCA | ✅ SUCCESS | >>>>> | |
| antipoison | ✅ SUCCESS | >>>>> | |
| codecheck_checkpr | ✅ SUCCESS | ||
| pre_comment | ✅ SUCCESS | >>>>> | |
| codecheck_codestyle | ⚠️ WARNING | >>>>> | |
| codecheck_precommit | ✅ SUCCESS | >>>>> |
[2026-07-28 15:41:55] CI执行结束


CANN-robot
7月28日 评论:
7月28日 评论:
CANN-robot
7月28日 评论:
7月28日 评论:
流水线任务触发成功
任务链接 [80a87adad75e4cca875132516487cc97][流水线指导]
| 任务名称 | 状态 | 日志 | 下载链接 |
|---|---|---|---|
| UT_Test_Python_superkernel | ✅ SUCCESS | >>>>> | |
| ST_Test_Python_superkernel | ✅ SUCCESS | >>>>> | |
| UT_Test_superkernel | ✅ SUCCESS | >>>>> | |
| UT_Test_autofuse_framework | ❌ FAILED | >>>>> | |
| ST_Test_autofuse_framework | ✅ SUCCESS | >>>>> | |
| UT_Test_autofuse_ascendc_api | ✅ SUCCESS | >>>>> | |
| ST_Test_autofuse_ascendc_api | ✅ SUCCESS | >>>>> | |
| ST_Test_autofuse_e2e | ✅ SUCCESS | >>>>> | |
| pre_comment | ✅ SUCCESS | >>>>> |


7月28日 删除了label:ci-pipeline-running
此处折叠了8条事件消息 查看更多
Zzhang_shengjie
7月28日 update merge request[project id: 8005834, iid: 1530, commit_id: 20ceaf12b3b317289324d60a32b0434b7a51732b] virtual merging success
7月28日 update merge request[project id: 8005834, iid: 1530, commit_id: 20ceaf12b3b317289324d60a32b0434b7a51732b] virtual merging success
zhang_shengjie
7月28日 评论:
7月28日 评论:
compile


Zzhang_shengjie
7月28日 update merge request[project id: 8005834, iid: 1530, commit_id: e0a5e3d77ec201e926f7dc61eee5bc471d02b467] virtual merging success
7月28日 update merge request[project id: 8005834, iid: 1530, commit_id: e0a5e3d77ec201e926f7dc61eee5bc471d02b467] virtual merging success
7月28日 删除了label:ci-pipeline-failed
7月28日 添加了label:ci-pipeline-running
CANN-robot
7月28日 评论:
7月28日 评论:
CANN-robot
7月28日 评论:
7月28日 评论:
流水线任务触发成功
任务链接 [0424fac87b51464e9a9a620db9a10a10][流水线指导]
| 任务名称 | 状态 | 日志 | 下载链接 |
|---|---|---|---|
| codecheck | ✅ SUCCESS | >>>>> | |
| SCA | ✅ SUCCESS | >>>>> | |
| antipoison | ✅ SUCCESS | >>>>> | |
| codecheck_checkpr | ✅ SUCCESS | ||
| pre_comment | ✅ SUCCESS | >>>>> | |
| codecheck_codestyle | ⚠️ WARNING | >>>>> | |
| codecheck_precommit | ✅ SUCCESS | >>>>> |
[2026-07-28 17:23:14] CI执行结束


CANN-robot
7月28日 评论:
7月28日 评论:
流水线任务触发成功
任务链接 [55c63b43edb549079d6d258e099d9199][流水线指导]
| 任务名称 | 状态 | 日志 | 下载链接 |
|---|---|---|---|
| UT_Test_Python_superkernel | ✅ SUCCESS | >>>>> | |
| ST_Test_Python_superkernel | ✅ SUCCESS | >>>>> | |
| UT_Test_superkernel | ✅ SUCCESS | >>>>> | |
| UT_Test_autofuse_framework | ✅ SUCCESS | >>>>> | |
| ST_Test_autofuse_framework | ✅ SUCCESS | >>>>> | |
| UT_Test_autofuse_ascendc_api | ✅ SUCCESS | >>>>> | |
| ST_Test_autofuse_ascendc_api | ✅ SUCCESS | >>>>> | |
| ST_Test_autofuse_e2e | ✅ SUCCESS | >>>>> | |
| pre_comment | ✅ SUCCESS | >>>>> |
[2026-07-28 17:39:37] CI执行结束


7月28日 删除了label:ci-pipeline-running
7月28日 添加了label:ci-pipeline-passed
wangxiaotian995
7月28日 评论:
7月28日 评论:
/lgtm


7月28日 添加了label:lgtm
zhanj
7月28日 评论:
7月28日 评论:
/approve


7月28日 添加了label:approved
7月28日 合入了pull request
Pull Request
描述
TilingFunc 拆分编译场景中,每个翻译单元原先都会展开完整的
autofuse_tiling_func_common.h,多 group 并发编译时会重复解析与当前.cpp无关的标准库、运行时声明和结构体定义。本 PR 引入显式源码依赖模型,将公共内容拆为自包含原子头,并按生成代码的实际依赖渲染每个翻译单元,降低 host 编译的预处理、解析时间和峰值内存。修改方案
显式依赖模型
新增
autofuse/common/tiling_source_dependencies.h,统一描述和渲染生成源码:GeneratedCodeSourceDependenciesAppendGeneratedCodeRenderTranslationUnit.cppRenderGeneratedHeader自包含原子头与按需 include
autofuse_tiling_data.h保持独立。TF、Inductor 与兼容路径
asc_codegen_compile.py按固定 key 将原子头和.cpp直接落盘;原子格式不再落盘autofuse_tiling_func_common.h。compile_adapter.py解析并落盘;marker 不进入实际编译文件。flowchart LR A[ATT 与 Codegen 生成代码片段] --> B[登记正文与直接依赖] B --> C[统一合并去重与渲染] C --> D[State Log PGO Solver API 原子头] C --> E[按需 include 的翻译单元] D --> F{消费路径} E --> F F -->|TF| G[按固定 key 直接落盘] F -->|Inductor| H[marker 解析后落盘] F -->|Legacy| I[common 格式兼容] G --> J[host compile] H --> J I --> J变更类型
关联的 Issue
无。
测试验证
编译性能收益
使用相同生成正文和相同翻译单元数量,以“每个翻译单元包含完整 common 头”为基线。测试环境为 CANN 9.1、GCC 9;串行编译 5 轮、8 并发编译 7 轮,取中位数;RSS 为单个编译进程峰值。
TF 和 Inductor 场景的预处理展开代码分别减少约 10.7 万行和 12.2 万行,include tree 节点分别下降 15.4% 和 21.4%。
五组原子头 marker 的协议开销为 460 bytes,相对单组 marker 净增约 368 bytes;在 unique topn 和 multi concat 的
host_impl中分别约占 0.22% 和 0.15%。marker 解析后不进入.h/.cpp,不影响 host 编译。核对清单
变更范围
autofuse/common/autofuse/att/、autofuse/codegen/autofuse/compiler/python/autofuse/tests/