《LLHD: A Multi-level Intermediate Representation for Hardware Description Languages》
因为在CIRCT里有一个叫llhd的dialect,于是很简单的survey了一下这个工作,这篇是苏黎世联邦理工学院发表在PLDI 2020上的,借助MLIR的设计思想,想在EDA领域设计一个统一的IR。
《LLHD: A Multi-level Intermediate Representation for Hardware Description Languages》
因为在CIRCT里有一个叫llhd的dialect,于是很简单的survey了一下这个工作,这篇是苏黎世联邦理工学院发表在PLDI 2020上的,借助MLIR的设计思想,想在EDA领域设计一个统一的IR。
MLIR 是Google在2019年开源出来的编译框架。不久之前意外加了nihui大佬建的MLIR交流群,不过几个月过去了群里都没什么人说话,说明没人用MLIR(不是。现在刚好组里的老师对MLIR比较感兴趣让我进行一下调研,于是就有这篇比较简单的调研报告啦!
MLIR的全称是 Multi-Level Intermediate Representation. 其中的ML不是指Machine Learning,这一点容易让人误解,但现在的一些ML框架有些也在往MLIR靠,比如Tensorflow、Pytorch、ONNX都在写Dialect往MLIR上贴贴,Google的IREE是基于MLIR的End2End推理框架;ML也可以是Mid-Level,因为MLIR要解决Mid-Level IR的碎片化问题;ML也可以是摩尔定律,因为MLIR的Paper的标题是为了摩尔定律终结而诞生的编译器技术设施,当然也可以是Modular Library,现在看来,MLIR至少是一个优秀的编译器库。
一些你可以帮助你了解MLIR的资源:
目前,MLIR已经迁移到了LLVM下面进行维护。
如果想要引用MLIR,使用这一篇Paper:MLIR: A Compiler Infrastructure for the End of Moore’s Law
MLIR SIG 组每周都会有一次 public meeting,如果你有特定的主题想讨论或者有疑问,可以根据官网主页提供的方法在他们的文档里提出,有关如何加入会议的详细信息,请参阅官方网站上的文档。
这篇文章是2021年中国科学院大学李炼老师的《编译程序高级教程》一课的学习笔记,这门课程的内容主要是基于LLVM来做一些中间代码的优化。不建议没有学习或者了解过编译原理的同学选修,平时作业占比较大,一共三次大作业共占期末总成绩的80分,然后是期末考试只有20分(而且可以使用离线的电子设备。但是作业爆炸难,是使用LLVM来实现一些程序分析,实现一个简单的C程序解释器、数据流分析、指针分析等。很多知识也是在我写这篇笔记的整理与复习的过程中才看明白的。
相似的课程为多伦多大学的CSCD70。而且就在考试的前一周,国内也有这方面可以看的公开课视频了,那就是南京大学的软件分析,兄弟们把泪目打在公屏上!
还有一些非常有用的参考资料:
第一次讲直播课,主要分享的内容有:
Bilibili链接:https://www.bilibili.com/video/BV1z44y1478k
Update your browser to view this website correctly. Update my browser now