鲲鹏社区首页
中文
注册
开发者
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

原理描述

本节针对TensorFlow/XLA的优化特性进行描述,以帮助用户更好地使用。

TensorFlow图融合

在TensorFlow模型中存在一些子图包含冗余计算,通过识别特定的图模式,将子图中的多个算子融合为一个“融合算子”,能够避免冗余计算,优化访存,提升模型推理性能,如图1所示。本功能在前端提供TensorFlow模型层面的图融合与图重写功能,在后端提供“自定义融合算子”的手动实现。
图1 TensorFlow图融合示意图

XLA图融合

XLA自身提供了多种与硬件无关的图融合优化策略,但是优化后的聚类(包括融合部分)仍可能包含重复计算,即多个融合操作之间存在相同或可合并的子表达式。如图2所示,本功能旨在识别融合后的重复计算,如图2中F1操作;并通过预融合策略消除冗余计算,如图2中F4、F5、F6操作的融合,以进一步提升模型推理效率。
图2 XLA图融合示意图

算子优化

本功能包含各阶段的算子优化,包括将MatMul(Matrix Multiplication)算子下发至XLA,调用OpenBLAS(Open Basic Linear Algebra Subprograms)所提供的GEMM(General Matrix Multiplication)运算接口,包括将Softmax函数替换为更高效的实现;同时本功能通过识别特定的操作模式,减少其中的冗余操作,进一步提升模型的推理性能,例如:针对多个切片后进行拼接的模式,删除其中冗余的切片操作。