已合并
[AscendNPU IR] Print failure IR only on final retry #1740
zhangenqi创建于 7月17日
[AscendNPU IR] Print failure IR only on final retry #1740
已合并
Pull Request已成功合入, 合并人@ascend-robot
(感谢 zhangenqi 的贡献)atomgit-bot
7月17日 评论:
7月17日 评论:
变更摘要
此 PR 引入了一个 TuningRetryPolicy 策略类,用于控制 mlir-print-ir-after-failure 选项在 pipeline 重试过程中的行为。核心目的是:在 AscendNPU IR 编译的多轮重试(tuning retry)场景中,抑制中间轮次失败时的 IR 打印,仅在最后一轮重试失败时才输出失败 IR,从而减少冗余日志输出。
主要改动
- 新增
TuningRetryPolicy类:在TuningRetryPolicy.h/.cpp中定义并实现该类,构造函数自动查找mlir-print-ir-after-failure命令行选项并缓存其原始值,同时将其初始设为false;析构函数负责恢复原始值;onBeforePipelineAttempt方法根据isLastAttempt参数决定是否重新启用该选项。 - 在重试循环中集成策略调用:在
BiShengIRCompileMain.cpp的runBiShengIRPipeline函数中,于重试for循环之前创建TuningRetryPolicy实例,并在每次迭代前调用onBeforePipelineAttempt(isLastAttempt),使最后一次重试尝试时mlir-print-ir-after-failure恢复为true。 - 条件性 IR 打印:仅在
originalPrintIrAfterFailure原本为true(即用户最初启用了该选项)且当前为最后一次重试时,才允许打印失败 IR;中间轮次的失败不再产生 IR 输出。


ascend-robot
7月17日 评论:
7月17日 评论:
libing-pipeline创建中,请等待……


atomgit-bot
7月17日 评论:
7月17日 评论:
代码审查
审查总结
| 严重级别 | 发现数量 |
|---|---|
| P0 | 0 |
| P1 | 0 |
| P2 | 0 |
| P3 | 1 |
整体风险评估:低风险。 此变更逻辑正确,实现了"仅在最后一次重试时打印失败 IR"的目标。唯一报告的问题(static_cast 未检查的下转型)是项目中已有的惯例模式延续,触发概率极低,不影响当前功能。
逐文件确认:
| 文件 | 审查结论 |
|---|---|
bishengir/include/bishengir/Tools/RetriablePassManager/TuningRetryPolicy.h |
无问题 |
bishengir/lib/Tools/CMakeLists.txt |
无问题 |
bishengir/lib/Tools/RetriablePassManager/CMakeLists.txt |
无问题 |
bishengir/lib/Tools/RetriablePassManager/TuningRetryPolicy.cpp |
1 个 P3 发现 |
bishengir/lib/Tools/bishengir-compile/BiShengIRCompileMain.cpp |
无问题 |
bishengir/lib/Tools/bishengir-compile/CMakeLists.txt |
无问题 |
⚠️ 已识别出整体风险,但无法提取行内评论,请参考整体评估。


7月17日 添加了label:ascend-cla/yes
此处折叠了149条消息 查看更多
shijingchang
7月20日 评论:
7月20日 评论:
/lgtm


7月20日 添加了label:lgtm
7月20日 合入了pull request,合并节点 SHA:bde46398842673025142f427c41eb129ce419b8d
24 天前 修改了pull request 的描述
24 天前 修改了pull request 的描述
描述 Description
请提供此 Pull Request 的高级别说明。
Please describe what this PR is about.
类型 Category
Checklist