LOADING...

MLIR-AIR Passes 分析与总结

目录

对 MLIR-AIR 的 Passes 进行分析与总结。

1. AIRTransformPasses

这类变换 Passes 主要作用于 AIR 层级,包括循环优化、依赖分析、内存管理、数据移动优化、模式转换、异构硬件优化、代码生成、规范化和清理等,属于前端的优化 Passes。

1.1 循环优化类

1 -affine-loop-opt

Affine循环变换(包括分块等)

2 -air-automatic-tiling

多维循环分块(手动/自动)

3 -air-loop-merging

合并完美嵌套的循环

4 -air-loop-permutation

循环重排序

5 -air-isolate-async-dma-loop-nests

隔离DMA循环为完美嵌套结构

6 -air-regularize-loop

正则化非完美循环结构

7 -air-unroll-outer-affine-loops

外层循环展开

8 -air-unroll-loop-for-pipelining-pattern

流水线模式下的循环展开

9 -air-label-scf-for-in-segment

标注循环以支持后续展开

1.2 依赖分析类

1 -air-annotate-front-and-back-ops-in-for-pattern

标注循环体依赖图首尾操作

2 -air-dependency

异步事件依赖分析

3 -air-dependency-canonicalize

依赖图规范化(消除非支配边)

4 -air-dependency-schedule-opt

基于依赖的调度优化

1.3 内存管理类

1 -air-dealias-memref

内存引用去除别名

2 -air-fuse-alloc-dealloc

融合内存分配/释放操作

3 -air-hoist-alloc-in-for-pattern

静态内存分配提升

4 -air-enforce-loop-carried-memref-dealloc

强制循环迭代内存释放

5 -air-shrink-memref-sizes-by-access

按访问模式缩减内存大小

6 -air-split-l2-memref

L2内存分片

1.4 数据移动优化类

1 -air-broadcast-detection

DMA广播模式检测

2 -air-dma-to-channel

DMA转通道通信

3 -air-opt-memtile-dma-bds

MemTile DMA块描述符优化

4 -air-opt-shim-dma-bds

Shim DMA块描述符优化

5 -air-fuse-channels

通道融合

6 -air-specialize-channel-wrap-and-stride

通道wrap/stride特化

7 -air-specialize-dma-broadcast

DMA广播特化

1.5 模式转换类

1 -air-construct-ping-pong-dependency-pattern

构建Ping-Pong依赖模式

2 -air-ping-pong-transform

实现Ping-Pong流水线

3 -air-label-scf-for-to-ping-pong

标注Ping-Pong候选循环

4 -air-hoist-ops-not-using-ping-pong

隔离无关操作

1.6 异构硬件优化类

1 -air-collapse-herd

Herd维度折叠

2 -air-place-herds

Herd物理布局规划

3 -air-lower-herd-parallel

转换并行结构

4 -air-label-broadcast-channel-with-tile

标注tile坐标的广播通道

1.7 代码生成类

1 -air-linalg-codegen

Linalg算子代码生成策略

2 -air-lower-linalg-tensors

Linalg张量到循环的转换

3 -air-return-elimination

返回值参数化

1.8 规范化和清理类

1 -air-rm-linalg-name

移除Linalg标记属性

2 -air-dependency-canonicalize

依赖图规范化

3 -air-linalg-name

添加Linalg标记属性


2. AIRConversionPasses

这类优化位于编译流程的后期阶段,直接面向 AIE 目标硬件架构进行代码生成和优化。

2.1 结构转换类

1 -air-insert-launch-and-segment-around-herd

构建AIR层次结构(插入launch/segment包装herd)

2 -air-wrap-func-with-parallel

函数体并行化包装

3 -air-par-to-herd

并行循环转herd结构

4 -air-par-to-launch

并行循环转launch结构

5 -air-par-to-segment

并行循环转segment结构

2.2 数据移动优化类

1 -air-copy-to-dma

Memcpy 转 DMA 操作

2.3 后端代码生成类

1 -air-linalg-to-func

Linalg 算子转函数调用

2 -air-to-aie

AIR 到 AIE 硬件描述转换

3 -air-to-async

AIR转异步操作表示

4 -air-to-std

AIR转标准操作

5 -airrt-to-llvm

AIRRt 转 LLVM IR

6 -airrt-to-npu

AIRRt转NPU指令

2.4 设备相关处理类

1 -air-split-devices

按AIE设备切分模块

给作者倒杯卡布奇诺 ~
Albresky 支付宝支付宝
Albresky 微信微信
Neo Flying