news 2026/7/11 15:08:32

CANNBot IR分析优化器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANNBot IR分析优化器

IR 分析优化器

【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills

概述

IR(中间表示)分析优化器通过提取编译器的最终阶段 IR(last_pass.mlir),对 triton 脚本进行分析优化。

当 IR 分析给出优化建议时,智能体(Agent)必须首先检查对应的优化点是否已在之前的迭代中执行过:

  • 已执行→ 重新根据IR分析结果执行优化。并诊断为何之前的优化未能产生预期的效果。
  • 之前未命中→ 根据IR分析结果执行优化并分析之前未命中原因。
  • 无对应的优化点→ 直接应用 IR 分析优化器的优化建议。

IR 多轮迭代模式

在 Phase 4 调用方(triton-op-generator AGENTS.md)开启 IR 多轮迭代后,IR(优化点 25)允许多轮重复命中,其他优化点单轮即过。每轮必须遵守:

  • 每轮重新提取 IR:必须重新执行run_and_extract.sh提取基于"上一轮优化后代码"的最新last_pass.mlir,禁止复用历史 IR 快照。
  • 聚焦增量分析:本轮 IR 分析应聚焦两件事 —— (a) 上一轮 IR 优化是否带来预期效果(profiling 或 speedup 对比);(b) 是否还有新的优化建议。
  • 返回字段:latency-optimizer 在返回信息中给出ir_has_more_suggestions: bool。仅当本轮还能给出新建议时为true;若 IR 分析已无新建议(即上一轮已是相同结论、无新增优化空间),返回false,Phase 4 调用方据此退出 IR 多轮迭代。
  • 退出条件:达到ir_max_iterations(默认 20)或ir_has_more_suggestions == false任一成立即结束 IR 多轮迭代。

IR 提取

使用<skill_dir>/scripts/run_and_extract.sh <script_name>.py来提取 IR 文件,并将提取到的IR文件保存到<workspace>/ir_output/<kernel_name>

环境变量

变量用途
TRITON_DEBUG1启用 IR 转储目录
TRITON_ALWAYS_COMPILE1强制重新编译,即使存在缓存
TRITON_DISABLE_LINE_INFO0保留源代码行信息
TRITON_DISABLE_FFTS1禁用 FFTS(910_95 不支持此功能)
ASCEND_RT_VISIBLE_DEVICES${NPU_DEVICE:-2}选择 NPU 设备

提取流程

  1. 使用上述环境变量运行 Python 脚本,以触发编译并转储 IR。
  2. 解析 stdout 中的Dumping intermediate results to <dir>行。
  3. 对于每个唯一的内核(通过kernel.ttadapter.mlir中的内核名称去重),运行bishengir-compile
    • 脚本会自动探测当前编译器支持的 IR dump 参数(优先级:--mlir-print-ir-after-all>--bishengir-print-ir-after>--print-after-all),也可通过环境变量BISHENGIR_PRINT_IR_FLAG强制指定。
    • 若使用--mlir-print-ir-after-all/--print-after-all,输出中会有多个IR Dump After段落,脚本提取最后一个。
    • 若使用--bishengir-print-ir-after=<pass>,输出直接就是该 pass 后的 IR。
  4. 从编译器输出中提取最后一个阶段的 IR。
  5. 保存至<IR_OUTPUT_DIR>/<kernel_name>_last_pass.mlir

重要提示:bishengir-compile会调用hivmc-a5作为子进程。bishengir 的 bin 目录必须位于$PATH中。如果缺失,流程将在InjectIR处停止,而不会继续到 LLVM IR。

输出文件

文件描述
<kernel_name>_ttir.mlirTriton 前端 IR(可选)
<kernel_name>_ttadapter.mlir适配器 IR(可选)
<kernel_name>_last_pass.mlirBishengIR 最终阶段 IR(必需

中间文件的保存由IR_SAVE_TTIRIR_SAVE_TTADAPTERIR_SAVE_ALL控制。

处理自动调优 (Autotune)

当使用@triton.autotune时,会生成多个转储目录(每个配置变体一个)。脚本通过内核名称进行去重,仅保留每个唯一内核的第一个配置变体。无论有多少个 autotune 配置,每个内核最终只生成一个 IR 文件。

Triton 缓存损坏

编译阶段bishengir-compile的段错误通常是由 Triton 缓存中不兼容的预编译头引起的。在进一步调查之前,请清除缓存:

rm -rf ~/.triton/cache/*

IR 分析决策流程

在做任何分析策略之前,先仔细阅读以下文件获取 IR 分析优化相关指南:

  • 主要参考流程./docs_triton_IR/AGENTS.md
  • 支撑文件目录./docs_triton_IR/AscendNPU-IR/README.md./docs_triton_IR/docs_ascendnpu_ir/README.md./docs_triton_IR/docs_for_triton_agent/README.md./docs_triton_IR/docs_triton_ascend/README.md./docs_triton_IR/triton-ascend/README.md

重要约束

主要参考流程./docs_triton_IR/AGENTS.md中 性能分析指南的 步骤1:IR分析(主要)和 知识库层级文档指引中的IR分析部分,对生成的IR文件进行分析优化。 严禁在优化完成前使用msprof分析工具

【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/11 15:04:15

Firestorm安全最佳实践:保护你的社区数据

Firestorm安全最佳实践&#xff1a;保护你的社区数据 【免费下载链接】firestorm An open-source forum engine, with an ElixirPhoenix backend and an Elm frontend. 项目地址: https://gitcode.com/gh_mirrors/fi/firestorm Firestorm作为一款开源论坛引擎&#xff0…

作者头像 李华
网站建设 2026/7/11 15:03:57

LaWGPT实战指南:如何用开源法律大模型解决企业法务痛点

LaWGPT实战指南&#xff1a;如何用开源法律大模型解决企业法务痛点 【免费下载链接】LaWGPT &#x1f389; Repo for LaWGPT, Chinese-Llama tuned with Chinese Legal knowledge. 基于中文法律知识的大语言模型 项目地址: https://gitcode.com/gh_mirrors/la/LaWGPT 面…

作者头像 李华
网站建设 2026/7/11 14:59:44

鹤壁办婚宴,烟酒怎么备不浪费又体面?

我在鹤壁淇滨区开了多年烟酒店。 每天接触最多的就是来买酒的顾客。 说实话&#xff0c;很多人办宴席时不知道该备多少酒。 今天分享几点经验&#xff0c;希望对你有帮助。 算用量&#xff1a;按桌数和人头来估&#xff0c;最稳当 在鹤壁&#xff0c;一场婚宴的酒水用量估算至…

作者头像 李华
网站建设 2026/7/11 14:57:16

IPD集成产品开发,产品设计怎样找核心用户?

职教龙头CEO爹味儿劝诫毕业生不要考公、老牌国货走红后涨价割韭菜、网红平台做大后严苛压榨创作者……为什么这些产品、企业、品牌&#xff0c;在从小众黑马走向行业龙头、从草根体量转为规模化发展的过程中&#xff0c;滋生了傲慢、疏远了用户、丢掉了初心&#xff1f; 因为在…

作者头像 李华
网站建设 2026/7/11 14:52:35

Java Web代码审计实战:从注入漏洞到反序列化安全防御

1. 项目概述&#xff1a;为什么Java Web代码审计是安全工程师的必修课在当前的数字化浪潮中&#xff0c;Java Web应用依然是企业级服务的中流砥柱&#xff0c;从银行核心系统到大型电商平台&#xff0c;背后几乎都有它的身影。然而&#xff0c;功能越强大&#xff0c;承载的业务…

作者头像 李华
网站建设 2026/7/11 14:50:23

助听器选购不是买耳机:2025年三阶匹配决策模型

1. 这不是“买个耳机”——助听器选购的本质是一场精准的听力康复工程很多人第一次走进助听器门店&#xff0c;或者在电商页面上看到“智能降噪”“AI自适应”“蓝牙直连”这些词时&#xff0c;下意识会把它当成升级版的无线耳机——调高音量、戴上去就能听清。我做听力康复设备…

作者头像 李华