AI编译器作为框架与硬件之间的桥梁,可实现一次代码开发、各种算力芯片复用的目标。近日,算能也对外开源了其自研的 TPU 编译工具— TPU-MLIR(Multi-Level Intermediate Representation)。TPU-MLIR 是一款主打 AI 芯片的 TPU 编译器开源工程。工程提供了完整的工具链,将预先训练好的各类框架下的神经网络,在其中进行转化,最终转化为能在 TPU 中高效运算的 二进制文件bmodel,以实现更高效的推理。本课程以实战为驱动,带领大家直观地了解、实战、掌握算能智能 AI 芯片的 TPU 编译器框架。
目前TPU-MLIR工程已被应用在算能研发的最新一代人工智能芯片BM1684X 上,搭配上芯片本身的高性能ARM内核以及相应的SDK,能够实现深度学习算法的快速部署。课程内容会涵盖 MLIR 基本语法以及编译器中各类优化操作的实现细节,如图优化,int8 量化,算子切分和地址分配等。
TPU-MLIR相对其他编译工具,有以下几个优势
1、简单、便捷
通过阅读开发手册与工程中已包含的样例,用户可以了解模型转化流程与原理,快速上手。并且,TPU-MLIR基于当前主流的编译器工具库MLIR进行设计,用户也可以通过它来学习MLIR的应用。 该工程已经提供了一套完备的工具链,用户可以直接通过现有接口快速地完成模型的转化工作,不用自己适配不同的网络
2、通用
目前TPU-MLIR已经支持TFLite以及onnx格式,这两种格式的模型可以直接转化为TPU可用的bmodel。如果不是这两种格式呢?实际上onnx提供了一套转换工具,可以将现在市面上主流深度学习框架编写的模型转为onnx格式,然后就能继续转为bmodel了
3、精度与效率并存
模型转换的过程中有时会产生精度损失,TPU-MLIR支持INT8对称和非对称量化,在大幅提高性能的同时又结合原始开发企业的Calibration与Tune等技术保证了模型的高精度。不仅如此,TPU- MLIR中还运用了大量图优化和算子切分优化技术,以保证模型的高效运行。
4、实现极致性价比,打造下一代AI编译器
为了支持 GPU 计算,神经网络模型里面的算子需要开发一个GPU版本;为适配 TPU ,每个算子都应该开发一个 TPU 版本。此外,有些场景需要适配同种算力芯片的不同型号的产品,每次都要手动编译,这将是非常耗时的。AI 编译器旨在解决上述问题。TPU- MLIR 的一系列自动优化工具可以节省大量手动优化时间,使在 CPU 上开发的模型能够顺利、免费地移植到 TPU 中,以获得最佳性能和价格比。
5、资料齐全
课程包括中英文视频教学、文档指导、代码脚本等,详尽丰富 丰富的视频资料 详尽的应用指导 清晰的代码脚本 TPU-MLIR站在MLIR巨人的肩膀上打造,现在整个工程的所有代码都已开源,向所有用户免费开放。
代码下载链接:https://github.com/sophgo/tpu-mlir
TPU-MLIR开发参考手册:https://tpumlir.org/docs/developer_manual/01_introduction.html
介绍整体设计思路的论文:https://arxiv.org/abs/2210.15016
视频教程:https://space.bilibili.com/1829795304/channel/collectiondetail?sid=734875