TLE × FlagTree × AscendNPU-IR 技术协同报告

Triton Language Extension (TLE)、FlagTree 编译器与 AscendNPU-IR 构建了从算子编程到硬件执行的端到端技术融合体系:

  • TLE:通过编译提示(Hints)机制扩展 Triton 语言,传递硬件优化意图
  • FlagTree:统一编译框架,解析 Hints 并驱动 MLIR 优化 Pass,实现 TTIR → Linalg IR 转换
  • AscendNPU-IR:分层开放中间表示,承接 Linalg IR,在 HFusion/HIVM 层完成昇腾硬件深度优化

核心成果:关键算子性能提升 10%~20%,为 AI 开发者提供”编写一次、多端高效运行”的统一编程体验。


技术要点

一、AscendNPU-IR 分层开放架构

层级 能力 适用场景
HFusion 层 搬运 / 计算 / 内存三大类高阶 OP,开发者仅需关注 Tile 切分策略 快速适配
HIVM 层 同步指令插入、片上内存地址控制、乒乓流水等细粒度硬件控制 深度优化(指令级调度)

FlagOS 组件可灵活选择对接层级:HFusion 层快速适配,HIVM 层实现 Llama、Qwen 等大模型的极致性能榨取。

二、IR 转换路径

1
TTIR → Linalg → AscendNPU-IR (HFusion/HIVM) → 毕昇编译器 → 昇腾机器码
  • 通过 Linalg 方言实现与 AscendNPU-IR 的无缝对接

三、毕昇编译器协同优化

  • 自动完成指令调度与合并消减
  • 减少冗余访存
  • 基于动态二进制插桩实现分钟级内存异常定位

合作要点

  1. FlagGems 算子迁移:在华为已完成重点算子功能适配的基础上,推动 FlagGems 算子库向昇腾 NPU 的迁移验证与性能调优,实现算子运行到模型部署的端到端打通。

  2. FlagTree 版本同步:智源与华为团队完成 Triton-Ascend 最新特性向 FlagTree 和 Flir 的同步及 LLVM 版本兼容处理,建立每月同步机制,持续跟踪上游演进。

  3. Hints 传递链路

    1
    2
    3
    TLE 定义 Hints 语法
    → FlagTree 解析并编码为 MLIR 属性
    → AscendNPU-IR 通过自定义 Pass 识别并驱动硬件级优化
  4. 分层接口对接:FlagTree 根据优化深度灵活选择 AscendNPU-IR 对接层级(HFusion 快速适配 / HIVM 深度优化),支持通过自定义 MLIR Pass 注入优化逻辑。

  5. 统一编译流程:各层职责清晰——FlagTree 负责 Triton DSL → Linalg IR,AscendNPU-IR 负责硬件亲和优化,毕昇编译器负责机器码生成。

  6. 生态互通

    • AscendNPU-IR 在 Gitcode 开源
    • FlagTree 在 GitHub 开源
    • FlagTree 已支持 12+ 芯片后端,AscendNPU-IR 为多后端统一管理提供稳定支撑

成果

指标 结果
重点算子性能提升 10%+(Hints 驱动优化)
Cube 计算效率 特定 Shape 下接近硬件峰值
跨硬件迁移成本 显著降低(无需重写底层代码)
生态覆盖 FlagGems(全球最大 Triton 算子库)完成昇腾 NPU 迁移,支撑大模型训练与推理

关键信息总结

  • 核心价值:Triton 算子”一写多用”——通过 TLE + FlagTree + AscendNPU-IR 协同,无缝运行在昇腾 NPU 上
  • 技术路径:TTIR → Linalg → AscendNPU-IR → 毕昇编译器,每层职责清晰
  • 合作节奏:每月同步 Triton-Ascend 上游特性,持续演进
  • 开源状态:双方均已开源(AscendNPU-IR @ Gitcode,FlagTree @ GitHub)
  • 待填项:千卡训练加速比(文中标注为 xx%,需补充实测数据)