使用说明
鲲鹏BoostKit线程调度优化通过命令行提供了算子批量调度和线程亲和性隔离两个特性开关,用户可根据实际场景自行配置。
使用TF Serving启动推理压测指导请参见《TensorFlow Serving推理部署框架 移植指南》的“启动服务并压测”章节。
算子批量调度
TF Serving命令行接口  | 
--batch_op_scheduling  | 
||
|---|---|---|---|
接口功能  | 
使能算子调度优化和XLA线程池管理优化特性。  | 
||
参数类型  | 
bool  | 
||
取值范围  | 
true/false。true为真,表示开启特性,默认为false。  | 
||
推荐场景  | 
单核推理时延可满足业务要求,可配置该选项提升推理并发能力和吞吐量。  | 
||
推荐配置  | 
  | 
||
使用示例  | 
  | 
线程亲和性隔离
TF Serving命令行接口  | 
--task_affinity_isolation  | 
||||
|---|---|---|---|---|---|
接口功能  | 
使能线程亲和性隔离特性,有两种隔离方式: 
  | 
||||
参数类型  | 
std::string。  | 
||||
参数格式  | 
mode;m-n;k,默认0。  | 
||||
取值范围  | 
请参见表1。  | 
||||
推荐场景  | 
  | 
||||
使用示例  | 
一台160个物理核的服务器,开启超线程共320个核心,4个NUMA,每个NUMA上80个核心。 
 
  | 
参数  | 
取值范围  | 
含义  | 
约束  | 
|---|---|---|---|
mode  | 
0、1、2  | 
  | 
mode=0时,m-n、k两个参数无效(可不填)。  | 
m-n  | 
可用的CPU核  | 
绑核范围[m, n]。  | 
m <= n。  | 
k  | 
可用的CPU核  | 
分配给TensorFlow线程的核数。  | 
k <= n - m + 1,即不大于绑核总数;mode=2时,参数k无效(可不填)。  | 
 numactl是一个在Linux系统上用于控制和管理NUMA(非统一内存访问,Non-Uniform Memory Access)架构的工具。可通过yum工具安装:
1 | yum install -y numactl numactl-devel  | 
numactl -C 0-79 -m 0是限定TF Serving服务运行在NUMA 0对应的核上,以该方式启动可以充分利用CPU资源,-C指定NUMA 0对应的核,-m指的是使用NUMA 0对应的内存。