news 2026/7/11 17:40:17

CANNBot Skills HFusion变换Pass总览

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANNBot Skills HFusion变换Pass总览

HFusion 变换 Pass 总览

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

1. 概述

HFusion 方言提供了 40+ 个变换 Pass,覆盖操作融合、自动调度、自动向量化、类型合法化、Tiling 数据打包等多个编译阶段。本文档列出所有 Pass 的名称和功能简述。

源码参考:Passes.td、Passes.h

2. 融合与调度 Pass

Pass 名称作用域功能简述
hfusion-fuse-opsModuleOp张量上的操作融合,将可融合操作 outline 为独立函数
hfusion-auto-scheduleModuleOp自动调度融合 Kernel,生成 Tiling 参数
hfusion-infer-func-fusion-kindFuncOp推断函数的融合类型
hfusion-infer-out-shapesModuleOp生成输出张量形状推断函数
hfusion-compose-multi-reduceFuncOp组合多个归约为单个操作
hfusion-decompose-multiFuncOp将多操作分解为单操作
hfusion-pre-vectorization-fusionFuncOp向量化前的逐元操作融合
hfusion-eliminate-duplicate-funcsModuleOp消除融合后的重复函数

3. 向量化 Pass

Pass 名称作用域功能简述
hfusion-auto-vectorizeModuleOp自动向量化 Linalg 命名操作
hfusion-auto-vectorize-v2ModuleOp第二版自动向量化(Tile + Fuse + Vectorize)
hfusion-generic-unrollerFuncOp非可向量化 Linalg 操作的展开
hfusion-pull-slice-into-vector-functionModuleOp将 extract_slice/insert_slice 拉入 VF 函数
outline-vector-functionModuleOpOutline 向量函数
hfusion-vectorize-opsModuleOp向量化 HFusion 操作
remove-mask-from-unaligned-reduction-loopFuncOp移除未对齐归约循环的掩码

4. 类型合法化 Pass

Pass 名称作用域功能简述
hfusion-legalize-scalarFuncOp将标量操作合法化为张量操作
hfusion-legalize-bf16FuncOp将 BF16 类型合法化为 FP32
hfusion-legalize-fp8FuncOp将 FP8 类型合法化为 FP32
hfusion-legalize-boolModuleOp将 int8/int1 布尔类型合法化
hfusion-downgrade-fp64FuncOp将 FP64 常量降级为 FP32
hfusion-normalize-opsFuncOp规范化 HFusion 操作
hfusion-normalize-slice-opsFuncOp规范化 Slice 操作

5. Tiling 与数据打包 Pass

Pass 名称作用域功能简述
hfusion-pack-tiling-dataModuleOp将动态 Tiling 信息打包为结构体
hfusion-constantize-tiling-dataModuleOp在 Tiling 和 Device 函数间传播常量
hfusion-add-ffts-addrModuleOp添加 FFTS 基地址到函数参数

6. 形状与参数变换 Pass

Pass 名称作用域功能简述
hfusion-tensor-results-to-out-paramsModuleOp将张量结果移至函数输出参数
hfusion-hoist-tensor-emptyModuleOp将 tensor.empty 提升到函数参数并合并
hfusion-simplify-vf-argModuleOp简化 VF 函数参数
hfusion-merge-vfModuleOp合并 VF 函数
hfusion-fold-unit-dimsFuncOp折叠 Linalg 操作中的单位维度

7. 操作变换 Pass

Pass 名称作用域功能简述
hfusion-convert-generic-to-namedFuncOp将 Linalg generic 转换为命名操作
hfusion-flatten-opsFuncOp展平 Linalg 和 HFusion 操作
hfusion-inline-brcFuncOp内联广播类操作
hfusion-outline-single-opFuncOpOutline 单个 Linalg 操作为 Kernel
hfusion-simplify-opsFuncOp简化操作
hfusion-reorder-opsFuncOp按 BFS 重排操作
hfusion-generalizeFuncOp将 HFusion 操作转换为 linalg.generic
hfusion-decomposeFuncOp分解实现 AggregatedOpInterface 的操作

8. 缓存与符号 Pass

Pass 名称作用域功能简述
hfusion-cache-ioFuncOp缓存输入输出参数
hfusion-cache-io-for-return-argFuncOp缓存直接返回的参数
hfusion-recache-ioFuncOp重新缓存 IO
hfusion-remove-cache-ioFuncOp移除缓存 IO
hfusion-fold-symbolic-dimFuncOp用 hfusion::SymbolicDimOp 替换 tensor.dim
hfusion-unfold-symbolic-dimFuncOp将 SymbolicDimOp 替换为符号参数
hfusion-drop-symbolsFuncOp丢弃操作中的 ranked tensor 符号

9. Host 函数与 Triton 适配 Pass

Pass 名称作用域功能简述
hfusion-wrap-host-funcModuleOp为 Host 辅助函数创建包装函数
adapt-triton-kernelModuleOp适配 Triton 入口 Kernel

10. 关键 Pass 选项

10.1 hfusion-fuse-ops

选项类型默认值说明
output-modeOutputModeMultipleOutline 函数输出模式
fusion-modeFusionKindUnknown融合类型
always-inlineboolfalse始终内联 outline 函数
move-out-to-parambooltrue将张量输出移至参数
max-horizontal-fusion-sizeint-1最大水平融合大小
multi-kernelboolfalse启用多 Kernel outline
enable-symbol-analysisboolfalse启用符号分析

10.2 hfusion-auto-vectorize

选项类型默认值说明
vector-lengthunsigned256向量长度(字节)
peel-loopsboolfalse尝试剥离循环
max-vectorize-axesint64_t-1最大向量化轴数
tree-reduceboolfalse使用树形归约

10.3 hfusion-flatten-ops

选项类型默认值说明
flatten-modeFlattenModeGreedy展平模式
skip-hostboolfalse跳过 Host 函数
multi-dynamic-shapebooltrue折叠多个动态形状
register-basedboolfalse使用基于寄存器的展平模式
skip-scopebooltrue存在 scope 时跳过

10.4 hfusion-auto-vectorize-v2

选项类型默认值说明
vector-lengthunsigned256向量长度(字节)
max-fused-opsunsigned15单个融合节点最大操作数
enable-multiple-consumer-fusionboolfalse启用多消费者融合

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

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

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

seedance2.0 适合做动态背景和氛围素材吗?使用方向梳理

对于UI设计师、动效设计师以及视频运营人员来说,制作高质量的动态背景和氛围素材(如科技感粒子、光晕流光、抽象空间等)往往需要耗费数小时的渲染时间。随着视频生成AI的发展,很多创作者开始借助 yingcaiai.com 这一 AI 模型聚合平…

作者头像 李华
网站建设 2026/7/11 17:31:58

从 “盲挖” 到“点位探测”!管线运维升级与鼎讯G-6000应用效果

石油管线运维痛点:难以解决的 “最后一公里” 难题在石油工业运营体系中,通信光缆是管线调度传输、设备远程管控、安全监测的核心基础设施。油田自动化操控、长输管线泄漏预警等核心工作,均依托稳定的光缆通信网络实现。石油管线多穿越山地、…

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

Spring Boot 3 + Vue 3 核桃产品销售系统源码 前后端分离实战

一、项目简介 这是一个基于 Spring Boot 3 Vue 3 前后端分离架构的核桃产品销售系统。系统采用 RESTful API 设计,前端通过 Axios 与后端交互,支持 JWT 身份认证。系统面向三种角色:普通用户(浏览商品、管理购物车、下单支付、评…

作者头像 李华
网站建设 2026/7/11 17:30:37

MES+AI在PCB行业的落地实践:从部署到优化的全流程解析

这类工具最值得先看的不是功能列表,而是能不能在普通工厂环境里稳定跑起来,以及AI能力到底解决了哪些传统MES搞不定的实际问题。IMS V6 MESAI PCB行业套件,核心是给PCB生产加了一个能自动判断、自动调整的“智能调度层”,而不是简…

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

SSH服务防御实战:5种策略有效拦截Hydra 9.5暴力破解攻击

SSH服务防御实战:5种策略有效拦截Hydra 9.5暴力破解攻击在当今数字化时代,远程服务器管理已成为企业IT基础设施的核心组成部分。作为最常用的远程管理协议之一,SSH(Secure Shell)的安全性直接关系到企业数据资产的保护…

作者头像 李华