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

使用说明

TensorFlow Serving ANNC特性提供了TensorFlow图融合、XLA图融合、算子优化三种优化特性,本章节提供各特性的使能步骤。

TensorFlow图融合

TensorFlow图融合接口使用如表1所示。

表1 TensorFlow图融合接口

终端命令行接口

annc-opt

接口功能

图融合启动命令。

参数说明

  • -I /path/to/save_model.pb:待图融合的模型
  • -O /path/to/new_save_model.pb:图融合之后的模型
  • pass:图融合策略(当前支持lookup_embedding_hash)

使用示例

1
2
annc-opt -I /base_model/wide_and_deep/1/ -O /optimized_model/wide_and_deep/1/ lookup_embedding_hash
cp -r /base_model/wide_and_deep/1/variables /optimized_model/wide_and_deep/1/

XLA图融合

XLA图融合接口如表2所示。

表2 XLA图融合接口

环境变量

ANNC_FLAGS

接口功能

编译ANNC,使能XLA图融合优化。

使用示例

1
export ANNC_FLAGS="--graph-opt"

取值范围

环境变量为“--graph-opt”开启特性。

算子优化

算子优化接口如表3表4表5所示。

表3 冗余算子优化接口

环境变量

ENABLE_BISHENG_GRAPH_OPT

接口功能

使能算子优化。

使用示例

1
export ENABLE_BISHENG_GRAPH_OPT=""

取值范围

环境变量非空时开启特性。

表4 矩阵算子优化接口

环境变量

ANNC_FLAGS

接口功能

使能算子优化。

使用示例

1
export ANNC_FLAGS="--gemm-opt"

取值范围

环境变量为“--gemm-opt”开启特性。

表5 Softmax算子优化接口

环境变量

XLA_FLAGS

接口功能

使能算子优化。

使用示例

1
export XLA_FLAGS="--xla_cpu_enable_xnnpack=true"

取值范围

环境变量为“--xla_cpu_enable_xnnpack=true”开启特性。

使用TF Serving启动推理压测指导请参见《TensorFlow Serving推理部署框架 移植指南》的“启动服务并压测”章节。

为使用户更好的理解并使用本文所引入的ANNC特性,下面将展示一次完整的启动TF Serving服务的过程。

  1. 执行TensorFlow图融合。
    1
    2
    annc-opt -I /base_model/deepfm/1/ -O /optimized_model/deepfm/1/ lookup_embedding_hash
    cp -r /base_model/deepfm/1/variables /optimized_model/deepfm/1/
    
  2. 设置环境变量。
    1
    2
    3
    4
    5
    export ENABLE_BISHENG_GRAPH_OPT=""
    export OMP_NUM_THREADS=1
    export TF_XLA_FLAGS="--tf_xla_auto_jit=2 --tf_xla_cpu_global_jit --tf_xla_min_cluster_size=16"
    export XLA_FLAGS="--xla_cpu_enable_xnnpack=true"
    export ANNC_FLAGS="--gemm-opt --graph-opt"
    
  3. 启动TF Serving服务。
    1
    /path/to/tensorflow-serving/bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server --port=8889 --model_name=deepfm --model_base_path=/optimized_model/deepfm --tensorflow_intra_op_parallelism=1 --tensorflow_inter_op_parallelism=-1 --xla_cpu_compilation_enabled=true
    

    “--model_base_path”所指定的模型不在此限制,用户可自行下载或使用其他模型。

  4. 启动客户端压测。
    1
    docker run -it --rm --net host  nvcr.io/nvidia/tritonserver:24.05-py3-sdk perf_analyzer --concurrency-range 28:28:1 -p 8561 -f perf.csv -m deepfm --service-kind tfserving -i grpc --request-distribution poisson -b 128  -u localhost:8889 --percentile 99 --input-data=random