【笔记】mlir linalg dialect设计基本原理

https://mlir.llvm.org/docs/Rationale/RationaleLinalgDialect/
阅读笔记+部分自己的理解

介绍

  • 高层图IR -> code gen中间的ir表达,用于硬件无关的高层优化。
  • 使用loop 或者Control flow来表达切分和融合,op具体的语义仍然一致保留。
  • transformation的过程中,语义的正确性和性能提升解耦。第一次迭代保证语义正确,后序迭代提升性能时,只需要关心语义等价,且性能提升即可。
  • 和vector dialect结合,linalg作为structured op,表示操作对应内存里的数据,将操作和内存表达隔离。

其他链接:
https://discourse.llvm.org/t/development-of-high-level-tensor-compute-primitives-dialect-s-and-transformations/388

https://drive.google.com/drive/u/0/folders/1sRAsgsd8Bvpm_IxREmZf2agsGU2KvrK-

设计抽象

linalg抽象了现有ir的特点

polyhedral transformations

https://polly.llvm.org/
https://mlir.llvm.org/docs/Rationale/RationaleSimplifiedPolyhedralForm/

Affine

思想

  • MemRefType除了代表稠密不连续内存空间,还可以表达不规则、稀疏数据,或者树、哈希表、图之类的。
  • 除了静态编译,还可以引入runtime-adaptive computations,例如nspector-executor,运行时inspector会快速决策executor的执行配置。
  • 使用控制流 + 数据结构表征
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值