文章预览
最近在整理先前实习做的一些工作,主要是对AI compiler做基于mlir的重构,以下是之前写的compiler frontend的一个比较基础的pass,针对自定义的IR Dialect做bufferization。 一、bufferization概念 Bufferization 是MLIR中一个重要的过程,它主要负责将具有tensor(张量)语义的操作转换为具有memref(内存引用)语义的操作。 Tensor在MLIR中代表抽象值类型的数据序列,它们并不直接对应于内存中的位置。 MemRef(Memory Reference)则代表对内存区域的具体引用,提供了更低级别的缓冲区访问能力。 Bufferization将tensor的语义转换为memref的语义,memref提供了更直接、更具体的内存访问方式,减少了编译器需要处理的抽象层次。 二、实现 以下是在XPU上自定义TIR的一个conv2d mlir的示意
pass的功能就是实现将func和op的tensor type转为memref type(TIR->MTIR),实现共包含两个pass,六个pattern! module
………………………………