TensorFlow 线性代数编译框架 XLA
XLA 的工作原理
学过 C 语言的人可能知道,LLVM 是一个编译器的框架系统,用 C++编写而成,用于优化
以任意编程语言编写的程序的编译时间(compile time)、链接时间(link time)、运行时间(run
time)以及空闲时间(idle time)。在基于 LLVM 的编译器中,前端负责解析、验证和诊断输入代码中
的错误,然后将解析的代码转换为 LLVM 中间表示(intermediate representation,IR)。该 IR
通过一系列分析和优化过程来改进代码,然后发送到代码生成器中,以产生本地机器代码。
XLA 目前支持在 x86-64 和 NVIDIA GPU 上进行 JIT 编译,以及在 x86-64 和 ARM 上进行
AOT 编译。因此,AOT 编译方式更适合移动端和嵌入式的深度学习使用。下面我们就以 JIT
编译为例进行说明。
JIT 编译方式
通过 XLA 运行 TensorFlow 计算有两种方法,