API参考
TensorFlow ANNC图编译优化特性使用说明
TensorFlow ANNC图编译优化特性提供了TensorFlow图融合、XLA图融合、算子优化三种优化特性,本章节提供各特性的使能步骤。
TensorFlow图融合
TensorFlow图融合接口使用如表 1 TensorFlow图融合接口所示。
XLA图融合
XLA图融合接口如表 2 XLA图融合接口所示。
export ANNC_FLAGS="--graph-opt" |
|
算子优化
算子优化接口如表 3 冗余算子优化接口,表 4 矩阵算子优化接口,表 5 Softmax算子优化接口所示。
export ENABLE_BISHENG_GRAPH_OPT="" |
|
export ANNC_FLAGS="--gemm-opt" |
|
export XLA_FLAGS="--xla_cpu_enable_xnnpack=true" |
|
TensorFlow Serving线程调度特性使用说明
算子批量调度
鲲鹏TensorFlow Serving线程调度优化通过命令行提供了算子批量调度和线程亲和性隔离两个特性开关,用户可根据实际场景自行配置。
使用TF Serving启动推理压测指导请参见《TensorFlow Serving推理部署框架 移植指南》的“启动服务并压测”章节。
线程亲和性隔离
|
|
请参见线程亲和性隔离参数格式取值说明。 |
|
|
|
一台160个物理核的服务器,开启超线程共320个核心,4个NUMA,每个NUMA上80个核心。
|
|
|||
numactl是一个在Linux系统上用于控制和管理NUMA(非统一内存访问,Non-Uniform Memory Access)架构的工具。可通过yum工具安装:
yum install -y numactl numactl-develnumactl -C 0-79 -m 0是限定TF Serving服务运行在NUMA 0对应的核上,以该方式启动可以充分利用CPU资源,-C指定NUMA 0对应的核,-m指的是使用NUMA 0对应的内存。
TensorFlow KDNN线程直通特性使用说明
TensorFlow KDNN线程直通特性开关通过KDNN特性开关控制,具体说明如表1 KDNN特性开关所示
表 1 KDNN特性开关
首次调用KDNN算子前设置进程环境变量TF_ENABLE_KDNN_OPTS,例如python内可以通过命令os.environ['TF_ENABLE_KDNN_OPTS'] = str(1)设置进程环境变量。 |