Tensorflow XLA 和 Tensorflow Lite / Android NNAPI 有什么区别?

What is the difference between Tensorflow XLA and Tensorflow Lite / Android NNAPI?

Tensorflow 推出了 XLA 编译器,该编译器编译针对 LLVM 的后端 C++ tensorflow。我对 XLA 的理解是它是朝着支持通用加速设备迈出的一步,只要有 LLVM -> 设备支持。

Tensorflow lite 是最近发布的,取代了 Tensorflow Mobile,并且似乎是工作的重点是针对嵌入式和移动设备,显然侧重于嵌入式 DSP 和 GPU 作为这些环境中常见的可选处理器。 Tensorflow lite 似乎将操作移交给 Android NNAPI(神经网络 API)并支持 tensorflow OP 的一个子集。

所以这引出了一个问题:Google 支持非 CUDA 设备的方向是什么? XLA 是否有超出我描述的用例?

我从事 XLA 方面的工作。 XLA 编译器具有三个后端:CPU、GPU 和 TPU。 CPU和GPU的是基于LLVM的,是开源的,TPU的是闭源的。

我不知道移动设备的 XLA 计划是什么,所以我不能对此发表评论。

将 XLA 与 TF 模型结合使用(而不是直接执行模型)的一个好处是 XLA 为您融合了很多操作。例如,参见 this post