6

谁能给我任何提示,为什么 XLA-JIT 在 CPU 后端有更好的性能?

我在单个 CPU上的mnist基准测试中尝试了没有和使用 XLA-JIT(手动模式)的TensorFlow。使用 XLA-JIT 与没有 XLA-JIT 的 TensorFlow 相比,实现了 13.6 倍的加速。

说到XLA-JIT的优点,经常会提到操作融合,我自然想到这个技术可能是背后的原因,所以我学习了源码,发现融合过程大致是这样的(如有错误请指正):

  1. 检查HloComputation(CompOld)中是否有操作可以融合;
  2. 如果是,则在 CompOld 中添加一条新的 Fusion 指令,并从 CompOld 中删除融合操作;
  3. 然后创建一个由融合操作组成的新 HloComputation (CompNew)。CompOld 中添加的 Fusion 指令有一个指向 CompNew 的指针。
  4. 当涉及到后端时,LLVM IR 为 CompOld 和 CompNew 独立发出。

考虑到显着的性能改进,我认为肯定还有更多我想念或误解的东西。我可以听听你的建议吗?

4

0 回答 0