CANNBot AscendNPU-IR知识库
AscendNPU-IR 知识库【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills定位说明本知识库是AscendNPU-IR项目的 IR 层文档聚焦于编译器中间表示的语义、结构和变换规则。与 docs_triton_ascend 的关系docs_triton_ascend面向 Triton 开发者侧重 Triton 语言到 NPU 的端到端编译流程和使用方法docs_ascendnpu_ir本库面向编译器开发者侧重 IR 的精确定义、操作语义和变换算法两者互补docs_triton_ascend 回答如何使用docs_ascendnpu_ir 回答如何实现。目录结构docs_ascendnpu_ir/ ├── 00-Architecture/ # NPU 硬件架构 │ ├── 01-npu-hardware-overview.md # NPU 硬件总览 │ ├── 02-memory-hierarchy.md # 内存层级体系 │ ├── 03-pipeline-execution-model.md # 流水线执行模型 │ └── 04-data-layout.md # 数据布局 ├── 01-HIVM-Dialect/ # HIVM 方言核心 │ ├── 00-overview.md # HIVM 总览 │ ├── 01-DMA-Operations/ # DMA 操作 │ │ ├── 00-overview.md │ │ ├── 01-load.md │ │ ├── 02-store.md │ │ ├── 03-nd2nz.md │ │ ├── 04-nz2nd.md │ │ ├── 05-copy.md │ │ ├── 06-fixpipe.md │ │ ├── 07-atomic.md │ │ ├── 08-gather-scatter.md │ │ ├── 09-indirect-access.md │ │ └── 10-padding-quantization.md │ ├── 02-Vector-Operations/ # 向量操作 │ │ ├── 00-overview.md │ │ ├── 01-unary-ops.md │ │ ├── 02-binary-ops.md │ │ ├── 03-ternary-ops.md │ │ ├── 04-cast-ops.md │ │ ├── 05-compare-ops.md │ │ ├── 06-shift-ops.md │ │ ├── 07-reduction-ops.md │ │ ├── 08-data-movement.md │ │ ├── 09-cumulative-sort.md │ │ ├── 10-special-ops.md │ │ └── 11-scalar-lowering.md │ ├── 03-Macro-Operations/ # 宏操作矩阵乘法 │ │ ├── 00-overview.md │ │ ├── 01-mmad-l1.md │ │ ├── 02-batch-mmad-l1.md │ │ ├── 03-matmul.md │ │ ├── 04-mix-matmul.md │ │ └── 05-mix-group-matmul.md │ ├── 04-Synchronization/ # 同步操作 │ │ ├── 00-overview.md │ │ ├── 01-pipe-sync.md │ │ ├── 02-block-sync.md │ │ ├── 03-unit-flag.md │ │ └── 04-sync-injection.md │ ├── 05-Custom-Operations/ # 自定义操作 │ │ ├── 00-overview.md │ │ ├── 01-custom-op.md │ │ └── 02-custom-macro-op.md │ ├── 06-Attributes-Types/ # 属性与类型 │ │ ├── 00-overview.md │ │ ├── 01-enumerations.md │ │ ├── 02-parameterized-attrs.md │ │ ├── 03-type-system.md │ │ ├── 04-interfaces.md │ │ └── 05-traits.md │ └── 07-Intrin-Operations/ # 内置指令操作 │ └── 00-overview.md ├── 02-HACC-Dialect/ # HACC 方言 │ ├── 00-overview.md │ ├── 01-function-management.md │ ├── 02-device-specification.md │ ├── 03-kernel-args.md │ ├── 04-host-device-binding.md │ └── 05-transforms.md ├── 03-HFusion-Dialect/ # HFusion 方言 │ ├── 00-overview.md │ ├── 01-elementwise-ops.md │ ├── 02-reduction-ops.md │ ├── 03-matmul-ops.md │ ├── 04-data-movement-ops.md │ ├── 05-memory-ops.md │ ├── 06-special-ops.md │ ├── 07-attributes-enums.md │ └── 08-transforms.md ├── 04-Other-Dialects/ # 其他方言 │ ├── 01-scope-dialect.md │ ├── 02-symbol-dialect.md │ ├── 03-memrefext-dialect.md │ ├── 04-mathext-dialect.md │ ├── 05-hmap-dialect.md │ ├── 06-annotation-dialect.md │ └── 07-ascend-dpx-dialect.md ├── 05-Triton-Dialects/ # Triton 相关方言 │ ├── 00-overview.md │ ├── 01-triton-ops.md │ ├── 02-triton-types-attrs.md │ ├── 03-tritongpu-ops.md │ ├── 04-tritongpu-encodings.md │ └── 05-gluon-dialect.md ├── 06-Compilation-Pipeline/ # 编译管线 │ ├── 00-overview.md │ ├── 01-frontend-to-hfusion.md │ ├── 02-hfusion-transforms.md │ ├── 03-hfusion-to-hivm.md │ ├── 04-hivm-transforms.md │ ├── 05-hivm-to-backend.md │ ├── 06-triton-ir-compilation.md │ ├── 07-pipeline-options.md │ └── 08-pass-dependencies.md ├── 07-Memory-Management/ # 内存管理 │ ├── 00-overview.md │ ├── 01-bufferization.md │ ├── 02-memory-planning.md │ ├── 03-multi-buffer.md │ ├── 04-extra-buffer.md │ ├── 05-memory-alignment.md │ ├── 06-tightly-coupled-buffer.md │ └── 07-workspace-management.md └── 08-Reference/ # 参考信息 ├── 01-ir-operation-index.md ├── 02-attribute-enum-index.md ├── 03-hardware-specs-ir.md └── 04-glossary.md按方言快速导航方言说明入口文档HIVMNPU 底层虚拟机 IR直接映射硬件操作01-HIVM-Dialect/00-overview.mdHACC主机-设备交互和硬件规格标注02-HACC-Dialect/00-overview.mdHFusion混合融合 IR高层可融合操作03-HFusion-Dialect/00-overview.mdScope作用域管理04-Other-Dialects/01-scope-dialect.mdSymbol符号化维度管理04-Other-Dialects/02-symbol-dialect.mdMemRefExtMemRef 扩展workspace 分配04-Other-Dialects/03-memrefext-dialect.mdMathExt数学扩展操作04-Other-Dialects/04-mathext-dialect.mdHMAP多处理器通信04-Other-Dialects/05-hmap-dialect.mdAnnotation编译器标注04-Other-Dialects/06-annotation-dialect.mdAscendDPXSIMT 设备操作04-Other-Dialects/07-ascend-dpx-dialect.mdTritonTriton 语言操作05-Triton-Dialects/01-triton-ops.mdTritonGPUTriton 后端操作05-Triton-Dialects/03-tritongpu-ops.mdGluonTriton 布局推导05-Triton-Dialects/05-gluon-dialect.md按场景查询指南场景 1理解某个 HIVM 操作的语义和参数查阅 01-HIVM-Dialect/按操作类型选择子目录DMA 操作load/store/copy/fixpipe → 01-DMA-Operations/向量操作vadd/vmul/vcast... → 02-Vector-Operations/矩阵乘法mmadL1/matmul/mix_matmul → 03-Macro-Operations/同步操作pipe_barrier/sync_block/set_flag → 04-Synchronization/场景 2查找某个操作名对应的文档查阅 08-Reference/01-ir-operation-index.md按操作名搜索。场景 3查找某个枚举属性的所有可能值查阅 08-Reference/02-attribute-enum-index.md按枚举名搜索。场景 4了解 NPU 型号的硬件规格参数查阅 08-Reference/03-hardware-specs-ir.md按型号搜索。场景 5理解内存管理流程Bufferization → PlanMemory → 物理地址查阅 07-Memory-Management/00-overview.md 获取总览然后按需深入Tensor → MemRef 转换 → 01-bufferization.md物理偏移分配 → 02-memory-planning.md流水线多缓冲区 → 03-multi-buffer.mdCube-Vector 数据传递 → 06-tightly-coupled-buffer.md场景 6理解编译管线的 Pass 执行顺序查阅 06-Compilation-Pipeline/08-pass-dependencies.md 获取 Pass 依赖关系。场景 7理解 Triton IR 如何编译到 HIVM IR查阅 06-Compilation-Pipeline/06-triton-ir-compilation.md。场景 8查找某个技术术语的中英文对照查阅 08-Reference/04-glossary.md。场景 9了解哪些向量操作会被标量降级及优化建议查阅 01-HIVM-Dialect/02-Vector-Operations/11-scalar-lowering.md包含 15 个操作的标量降级条件、判断矩阵和 Triton 算子优化速查。场景 10了解 Reg-based 与 Mem-based 架构的区别查阅 00-Architecture/01-npu-hardware-overview.md 中的「架构分类Reg-based 与 Mem-based」章节包含 SIMT 支持差异、同步机制差异、编译器行为差异。与 docs_triton_ascend 的交叉引用映射docs_triton_ascend 主题docs_ascendnpu_ir 对应文档NPU 硬件架构概述00-Architecture/01-npu-hardware-overview.md内存层级00-Architecture/02-memory-hierarchy.md数据布局ND/NZ/Fractal00-Architecture/04-data-layout.mdTriton 到 NPU 编译流程06-Compilation-Pipeline/06-triton-ir-compilation.md内存管理Bufferization/PlanMemory07-Memory-Management/00-overview.md流水线同步Pipe Barrier/Unit Flag01-HIVM-Dialect/04-Synchronization/00-overview.md向量操作标量降级与性能优化01-HIVM-Dialect/02-Vector-Operations/11-scalar-lowering.mdReg-based/Mem-based 架构分类00-Architecture/01-npu-hardware-overview.md硬件规格参数08-Reference/03-hardware-specs-ir.md术语对照08-Reference/04-glossary.md文档模板说明本知识库的文档遵循以下模板结构操作文档模板概述 — 操作的简要说明操作定义 — 从 .td 文件提取的 TableGen 定义操作数与结果 — 参数表名称、类型、约束属性 — 操作的属性列表IR 示例 — MLIR assembly 格式的具体示例约束与限制 — 硬件约束、类型约束等源码参考 — 绝对路径链接Pass 文档模板概述 — Pass 的简要说明Pass 定义 — 名称、作用域、构造函数选项 — 命令行选项表算法 — 核心算法描述IR 变换示例 — 变换前后的 MLIR 对比源码参考 — 绝对路径链接【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考