第15章 TensorFlow线性代数编译框架XLA
XLA(Accelerated Linear Algebra)是用于线性代数领域的专用编译器(domain-specific compiler),用于优化TensorFlow计算。XLA通过即时(just-in-time,JIT)编译或提前(ahead-of-time,AOT)编译来进行实验,尤其有助于面向硬件加速的开发者。XLA框架目前还是处于试验阶段的。
本章我们主要讲述XLA的优势、工作原理和XLA的一些应用。[1]
15.1 XLA的优势
XLA是一个线性代数的领域专用编译器,能在执行速度、内存的使用、对自定义操作的依赖、移动端的内存占用和可移植性等方面优化了TensorFlow的计算。
- 提高执行速度。通过编译子图来减少生命周期较短的操作的执行时间,通过融合管道化的操作来减少内存占用。
- 提高内存的使用。分析和规划内存的使用需求,消除许多中间结果的缓存。
- 减少对自定义操作的依赖。通过提高自动化融合底层操作(low-level op)的性能,达到原先需要手动融合自定义操作(custom op)的效果。
- 减少移动端的内存占用(移动端的应用详见第19章)。一是通过提前(AOT)编译子图来减少TensorFlow的执行时间,二是通过共享头文件对(如xxx.o和xxx.h)被其他程序直接链接。这两个操作能够使移动端预
本文深入探讨了TensorFlow的XLA线性代数编译框架,阐述了XLA的优势,如提高执行速度、优化内存使用,并介绍了其工作原理,包括JIT编译的实现方式,以及在MNIST上的性能比较。XLA利用LLVM进行编译优化,旨在为开发者提供更好的性能和可移植性。
订阅专栏 解锁全文
208

被折叠的 条评论
为什么被折叠?



