简介
本文介绍了TensorFlow Serving ANNC(Accelerated Neural Network Compiler)特性的基本概念和实现原理,并详细指导用户基于鲲鹏920 7282C处理器在openEuler 22.03 LTS SP3操作系统中安装并使用TensorFlow Serving ANNC优化特性。
为提升TensorFlow Serving(以下简称TF Serving)推理性能,鲲鹏BoostKit提出了TensorFlow Serving ANNC优化方案。ANNC是专注于加速神经网络计算的编译器,聚焦于通过计算图优化,高性能融合算子生成和对接技术,高效代码生成和优化能力,加速推荐的推理性能。ANNC作为基于开源OpenXLA(Open Accelerated Linear Algebra)的扩展加速套件,发布在openEuler组织的ANNC开源仓,具有鲲鹏亲和的优化特性,包括TensorFlow图融合、XLA(Accelerated Linear Algebra)图融合、算子优化。
ANNC优化特性通过编译选项和代码补丁的方式接入TensorFlow推理框架和XLA,基于TF Serving/TensorFlow 2.15版本新增以下特性:
- TensorFlow图融合:提供TensorFlow模型层面的图融合与图重写功能。
- XLA图融合:提供ANNC XLA图融合特性。
- 算子优化:提供ANNC算子优化特性。
OpenXLA是一个由高性能、可移植、可扩展的机器学习基础架构组件组成的开放生态系统。
XLA是一种开源机器学习编译器。XLA编译器从TensorFlow框架获取模型,并优化模型以便在不同硬件平台(包括GPU、CPU和机器学习加速器)上实现高性能执行。
软件架构
TF Serving软件架构如图1所示,组件功能如表1所示。
组件名称 |
描述 |
|---|---|
TF Serving |
专为TensorFlow模型部署设计的高性能推理服务端。 |
SavedModel |
TensorFlow提供的一种标准化的模型保存格式,训练好的模型能够在不同的TensorFlow环境中进行导入、推理和再训练。 |
Graph Fusion |
ANNC图融合模块。 |
TensorFlow |
开源的机器学习框架,主要用于深度学习模型的训练和推理。 |
ANNC |
专为机器学习模型优化的AI编译器,能够将模型编译成高性能可执行代码。 |
XLA Extension |
ANNC基于XLA的扩展组件。 |
XLA |
开源机器学习编译器。 |
Kernels |
TensorFlow算子实现。 |
应用场景
TensorFlow Serving ANNC特性主要在推荐系统和广告投放中使用。对于高并发粗排模型推理场景优化效果明显,表现在吞吐量的提升和推理时延大幅下降。
