编译器

之前的文章介绍了 Vector dialect 及其相关 pattern。 今天我们来看一下上层的 Linalg dialect 以及相关的变换。
2022-09-01
11分钟阅读时长
Vector dialect 及其相关变换 (transformation) 是机器学习代码生成流程中的重要一环。 今天我们来仔细分析一下其定位、设计、特性,并介绍其中的重要操作 (operation) 和变换, 最后用实例来说明如何恰当使用 vector dialect 相关功能。
2022-07-31
22分钟阅读时长
在这个系列的首篇文章中我分享了对编译器和中间表示 (IR) 演进趋势的整体理解, 也讨论了 LLVM IR, SPIR-V, 和 MLIR 所要解决的问题以及相应的设计着眼点。 今天对 MLIR 做进一步展开,分析一下机器学习相关的 dialect 体系。
2022-02-20
14分钟阅读时长
Featured Image
编译器 (compiler) 通常是各种提高开发效率的工具链中不可或缺的部分。 编译器一般被为黑箱,吃进高层次的源程序,产生语义不变的低层次机器码。 当然,编译器也是有其内部结构的,中间表示 (intermediate representation) 串联起编译器内各层级和模块。 中间表示对编译器至关重要,也如编译器一样百花齐放。 我在日常工作中有幸能够涉及三种主流编译器中间表示或者基础设施——LLVM IR, SPIR-V, 以及 MLIR, 尤其对于后两种,我都参与了早期的开发。 我打算用一系列文章记录自己对于编译器以及中间表示的理解,希望对感兴趣的人有所帮助。
2022-01-23
22分钟阅读时长