AscendNPU IR(AscendNPU Intermediate Representation)是基于MLIR(Multi-Level Intermediate Representation)构建的面向昇腾亲和的算子编译中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,通过开源社区开放接口,支持生态框架灵活对接,高效使能昇腾AI处理器。
多级抽象与易用性
提供高层抽象接口,屏蔽昇腾计算、搬运、同步等指令细节,编译器自动感知硬件架构并将硬件无关表达映射到底层指令;同时提供细粒度性能控制接口,可精准控制片上内存布局、流水同步插入位置、是否使能乒乓流水等,兼顾易用与性能调优。
分层方言与编译优化
- HFusion:基于Linalg扩展,负责硬件相对无关的优化与生态对接;支持与Arith、Math、Torch等方言的转换,以及Tensor化简、类型合法化、算子融合生成。
- HIVM:面向昇腾对计算、搬运、同步进行Tile级抽象,屏蔽底层指令参数;负责CV核映射(Mix Kernel的CV融合、核间同步、CVPipeline流水与AutoSubTiling等)、核内片上内存映射与多级流水/指令映射。
- HACC:异构硬件抽象,表达Host/Device编程模型与launch语义;Annotation、Scope等用于
[object Object]与作用域标记。
关键编译特性
支持CV融合与流水(CVPipeline、AutoSubTiling)、自动内存规划(PlanMemory)与流水同步(AutoSync)、块化与调度(AutoBlockify、AutoFlatten、AutoSchedule),以及自定义算子、DFX、CV优化等,便于在保持高层语义的前提下获得可移植性能。
生态对接与开放
通过分层接口支持与PyTorch(Torch-MLIR)、TileLang、Triton及各类框架的对接,高性能与易用性灵活平衡,高效使能昇腾AI处理器。