近期,算能开源了 AI 编译器项目 TPU-MLIR,并同步至 GitLink 平台,成为社区首个基于 MLIR 的开源项目。
兼容 ONNX 一次编写多处复用,算能 AI 编译器开源#
TPU-MLIR 是一个专注于 AI 处理器的 TPU 编译器开源工程,提供了一套完整的工具链,可以将不同框架下预训练过的深度学习模型,转化为可以在 TPU 上运行的二进制文件 bmodel,从而实现更高效的推理。
AI 处理器出来之前,做 AI 框架的主要围绕 CPU、GPU 做,自行开发 kernel、调用 cudnn 就能解决框架和处理器的对接问题,随着 AI 处理器架构越来越多样,对编译器的需求也开始增多。MLIR 为 AI 处理器提供了一个通用、可复用的编译器框架,可以解决软件碎片化、降低异构硬件的编译成本。
编译器作为软硬件连接的桥梁,上承算法,下接指令集,在 AI 处理器领域发挥着关键作用,编译优化的好,就能充分挖掘出算力硬件的性能。但编译器的设计开发需要高水平的计算机架构和算法知识,是一个非常复杂的工程,需要借助开源社区的力量,才能不断壮大。
在 MLIR 出现之前,微软和 FaceBook 提出了一种 IR(中间表示)叫 ONNX,它有一套标准化的算子格式,可以将 PyTorch,TensorFlow 等框架编写的计算图转换成统一的 ONNX 格式进行存储,如果算力硬件都支持 ONNX,那编译问题不就迎刃而解了?
但事实上因为 ONNX IR 的数量太多或者改动频繁,没有一个统一的表示,让开发者很头疼,MLIR 就是为了解决这些问题,打造一套可重用和可扩展的工具链,而不是去维护大量的 IR,TPU-MLIR 在 MLIR 的基础上更进一步,适配了不同型号的 TPU 设备,同时也兼容了 ONNX 格式的模型,可实现一次编写代码多处复用。
登陆开源社区 GitLink,TPU-MLIR 开发者生态初现#
TPU-MLIR 目前已经同步在 GitHub、Gitee、Gitlink 等开源项目托管平台上,让全球开发者都能方便地获取,同时也为有志于 AI 编译技术优化的开发者提供了实战的机会。
Github 为全球的开源事业做出了很大的贡献,TensorFlow、PyTorch 等 AI 框架都是在 Github 积聚了大量的开发者从而不断壮大,但是被微软收购后,有些国家在 Github 上的项目突然被卡甚至下架的情况偶有发生,独立性一度受到开源社区的质疑。
伴随着 Gitlink 等国产开源社区的逐渐成熟,很多项目也开始托管在 Gitlink 上。GitLink(确实开源)是中国计算机协会 CCF 官方指定的开源创新服务平台,以“成为开源创新的汇聚地”为愿景,致力于打造创新成果孵化和新工科人才培养的开源创新生态。
2008 年,国防科技大学、北京大学、北京航空航天大学、中国科学院软件研究所等单位合作开展了基于网络的软件开发群体化方法与技术研究,并发布了可信的国家软件资源共享与协同生产环境(简称“Trustie v1.0”,中文简称“确实”),重点解决大规模软件协同开发、可信评估、运行监控和持续演化等问题。
2014 年发布了面向软件创新和教育的开源社区 Trustie v2.0,重点探索协作开发社区、知识分享社区、应用服务社区等“大外围”软件涉众的联接。2020 年,在中国计算机学会(CCF)的带领指导下,Trustie 升级形成了新一代开源创新服务平台 GitLink,推动开源创新成果开放与共享。
TPU-MLIR 作为首个登陆 GitLink 的 MLIR 项目,填补了社区 AI 编译器领域的空白,将为 AI 开发者们注入新的活力。