AI 编译器系列(七)《(MLIR)AscendNPU IR 编译堆栈》
目录AscendNPU IR 架构概述Triton-Ascend AscendNPU IRMLIR 简介1. 定义2. 特点AscendNPU IR 引入AscendNPU IR 架构详解整体架构HFusion 方言关键 Pass昇腾硬件架构HFusion 方言 OP 设计HFusion 预处理层HIVM 方言关键 PassHIVM OP 设计原则HIVM OP 属性设计HIVM OP Interface 设计HIVM CV 融合编译优化HIVM 片上内存映射调优选项及 Hint毕昇调优编译选项细粒度调优 Compiler hint总结本文主要讲解 AscendNPU IR 架构。AscendNPU IR 架构概述Triton-Ascend AscendNPU IRMLIR 简介1. 定义• MLIRMulti-Level Intermediate Representation是一种开源的编译基础设施旨在通过统一且可扩展的中间表示解决软件碎片化和编译效率问题。2. 特点• 多层方言Dialects支持从高层计算图到低层硬件指令的全栈抽象。AscendNPU IR 引入• 背景为了支持更多前端编程语言和硬件平台特别是在NPU如昇腾NPU上的优化。• 目标通过 AscendNPU IR 实现高效编译和硬件优化。AscendNPU IR 架构详解整体架构1. 方言层级• AscendNPU IR 采用多层方言设计主要包括 Hfusion 和 HIVM 两层核心方言辅以Annotation、HACC、Scope等辅助方言。2. 转换流程• 从前端 DSL 到 Triton IR再到 TritonGPU IR或 MLIR 公共方言如 Linalg最终转换为AscendNPU IR并编译成二进制文件。3. 核心方言解析•Hfusion•设计原理基于 Linalg 的扩展采用命名 OP 保留高层语义信息。•功能数据预处理、OP 简化、类型转换等不直接涉及硬件细节。•优化合法性检查、冗余操作消除、高层 OP 分解等。•HIVM•设计原则轻量化抽象硬件表达能力每个 OP 处理一个单元操作。•功能支持硬件特定操作如 Cube 类算子的快速构建通过 Microop 封装复杂操作。•优化内存分配、指令映射、流水并行等。4. 辅助方言•Annotation传递属性信息如内存优化提示。•HACC定义异构硬件相关信息如函数类型、硬件单元信息。•Scope代码区域标记支持代码分块和函数提取。HFusion 方言关键 Pass昇腾硬件架构• AIC核与AIV核分离各自拥有专属内存和计算单元。• 核间数据交互通过Global MemoryGM进行。HFusion 方言 OP 设计HFusion 预处理层1. Legalize BF162. OP Simplification3. DecompositionHIVM 方言关键 PassHIVM OP 设计原则• 基础 OP根据每条芯片指令自底向上轻量化抽象根据芯片能力校验 OP 约束。• Macro OP根据业务场景抽象由多个处理单元操作复合组成。HIVM OP 属性设计HIVM OP Interface 设计HIVM CV 融合编译优化HIVM 片上内存映射1. 片上内存空间推导2. 片上内存格式推导3. 片上内存自动对齐调优选项及 Hint毕昇调优编译选项• 控制多层编译灵活选择对接层• 进行功能调试排查精度• 细粒度调优性能细粒度调优 Compiler hint总结AscendNPU IR 作为 MLIR 的开源编译组件通过多层方言设计和丰富的优化技术有效支持了多种前端编程语言和昇腾 NPU 的硬件优化。未来将吸引更多开发者和研究者参与共同推动编译器技术和高性能计算的发展。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2429054.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!