AI 编译器-前端优化

22 阅读1分钟

就目前AI框架挺火的,我们较为熟悉的AI框架有:TensorFlow、pyTorch、MindSpore等 AI框架可将高级语言python转化为计算图 但存在的问题是底层的硬件并不能直接识别计算图,因此AI框架需要把计算图传给AI编译器进行前端优化

2.png

AI编译器的前端优化主要是针对图层优化的

  1. 算子融合PASS 将多个独立的算子合并成一个算子,目的是提高计算密度,减少内核启动 / 调度开销、内存带宽占用
  2. 内存分配PASS 为程序、计算图中的张量、变量和临时数据分配内存空间
  3. 内存排序PASS 优化数据在内存的排序方式
  4. 常量折叠PASS 在编译 / 优化阶段提前计算常量表达式的结果,替换原表达式,避免运行时重复计算,减少计算量和内存访问。

流程说明

Python → AI框架前端(Python解析)→ AI框架生成「计算图」→ 编译器前端(接收计算图)→ 转化为「Graph IR」→ 编译器中端(执行各类Pass)→ 优化后的Graph IR → 编译器后端(生成目标代码)

image.png

上面是AI编译器整个流程图