简介
本文介绍了TensorFlow Serving线程调度优化特性的基本概念和实现原理,并详细指导用户基于鲲鹏920新型号处理器在openEuler 22.03 LTS SP3操作系统中安装并使用TensorFlow Serving线程调度优化特性。
为提升TensorFlow Serving(以下简称TF Serving)推理性能,鲲鹏BoostKit提出了TensorFlow Serving线程调度优化方案。传统TensorFlow使用算子间的线程池并行计算不同的算子,虽可实现没有数据依赖的算子的并发执行,但在高并发场景下,多Session共享算子间线程池会导致任务抢占,严重降低整图计算效率。针对这一痛点,鲲鹏BoostKit改进了算子调度算法,并加入了其他线程管理优化,有效提升了高并发场景下的模型推理吞吐量。
TensorFlow Serving线程调度优化特性以Patch的方式实现,并合入了openEuler组织的sra_tensorflow_adapter开源仓库,基于TF Serving/TensorFlow 2.15版本新增以下两种特性开关:
- 算子批量调度(--batch_op_scheduling):使能算子调度优化和XLA线程池管理优化特性。如果单核推理时延可满足业务要求,可配置该选项提升推理并发能力和吞吐量。
- 线程亲和性隔离(--task_affinity_isolation)提供以下两种隔离方式。使用TensorFlow调度方式运行时,推荐设置为顺序绑核;与--batch_op_scheduling选项同时使能,并开启超线程时,推荐设置为交叉绑核。
- 顺序绑核,TensorFlow计算线程绑定到前K个核,TF Serving通信线程绑定到其余核。
- 交叉绑核,适用于开启超线程的场景,将TensorFlow线程绑定到物理核,TF Serving通信线程绑定到虚拟核。

XLA(Accelerated Linear Algebra)是TensorFlow中的优化编译器,用于加速线性代数操作的执行。XLA通过将TensorFlow的计算图转换成高效的、低级别的硬件指令,从而提升计算性能。
父主题: 特性描述