毕业论文
您现在的位置: 框架 >> 框架优势 >> 正文 >> 正文

多级别堆栈不是问题谷歌开源全新中介码与

来源:框架 时间:2023/5/5

雷锋网AI科技评论按:为了更好解决TensorFlow用户在使用不同种类的硬件(GPU、TPU、移动设备)时,由于多级别堆栈而导致的编译器与运行时错误,谷歌近日开源了一个全新的中介码与编译器框架MLIR。

在过去,若想解决多级别堆栈问题,则需要我们构建新的软硬件堆栈生成器,这也意味着必须为每个新路径重新构建优化与转换传递。

TensorFlow能够以多种不同的方式运行,如:

将其发送至调用手写运算内核的TensorFlow执行器将图转化为XLA高级优化器(XLAHLO)表示,反之,这种表示亦可调用适合CPU或GPU的LLVM编辑器,或者继续使用适合TPU的XLA。(或者将二者结合!)将图转化为TensorRT、nGraph或另一种适合特定硬件指令集的编译器格式将图转化为TensorFlowLite格式,然后在TensorFlowLite运行时内部执行此图,或者通过Android神经网络API(NNAPI)或相关技术将其进一步转化,以在GPU或DSP上运行谷歌的MLIR(或称为多级别中介码)是一种表示格式和编译器实用工具库,介于模型表示和低级编译器/执行器(二者皆可生成硬件特定代码)之间,在生产质量组件的支持下,能够对优化编译器设计与实现进行全新探索。据了解,MLIR深受LLVM的影响,并不折不扣地重用其许多优秀理念,比如拥有灵活的类型系统,可在同一编译单元中表示、分析和转换结合多层抽象的图等——这些抽象包括TensorFlow运算、嵌套的多面循环区域乃至LLVM指令和固定的硬件操作及类型。

MLIR没有众所周知的固定或内置的操作列表(无“内联函数”)。方言可完全定义自定义类型,即MLIR如何对LLVMIR类型系统(拥有一流汇总)、域抽象(对量化类型等经机器学习(ML)优化的加速器有着重要意义),乃至未来的Swift或Clang类型系统(围绕Swift或Clang声明节点而构建)进行建模。

另外值得一提的是,虽然MLIR充当ML的编译器,但它同样支持在编译器内部使用机器学习技术。MLIR的扩展性有助于探索代码降阶策略,并在抽象之间执行逐步降阶。

具体开源链接:

GitHub代码库

转载请注明:http://www.0431gb208.com/sjszjzl/4645.html