编译安装
TensorFlow Serving线程调度优化特性相关Patch已合入TensorFlow和TF Serving开源代码仓,代码仓在Gitee托管,可使用Git拉取完整代码后进行代码编译操作。
获取代码
- 配置Git取消SSL验证。
1 2
git config --global http.sslVerify false git config --global https.sslVerify false
- 拉取代码。
1
git clone https://gitee.com/openeuler/sra_tensorflow_adapter.git -b v2.15.1.0
编译
- 安装GCC 12.3.1版本。
1 2 3
yum install -y gcc-toolset-12-gcc* PATH=/opt/openEuler/gcc-toolset-12/root/usr/bin/:$PATH LD_LIBRARY_PATH=/opt/openEuler/gcc-toolset-12/root/usr/lib64/:$LD_LIBRARY_PATH
- 进入sra_tensorflow_adapter目录。
1
cd sra_tensorflow_adapter/
- 创建编译依赖存储目录,路径为“/path/to/sra_tensorflow_adapter/serving/download”。
1 2
export DISTDIR=$(pwd)/serving/download mkdir -p $DISTDIR
- 设置Bazel编译工具路径,需指向bazel可执行文件所在的目录。
1
export BAZEL_PATH=/path/to/bazel
- 执行构建脚本编译。
1
sh compile_serving.sh gcc12
构建产物为TF Serving二进制文件“tensorflow_model_server”,文件路径为“/path/to/sra_tensorflow_adapter/serving/bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server”。
以上构建脚本编译命令中gcc12表示使用GCC 12.3.1版本编译。构建脚本中执行的编译命令为:bazel --output_user_root=$BAZEL_COMPILE_CACHE build -c opt --distdir=$DISTDIR --override_repository=org_tensorflow=$TENSORFLOW_DIR --copt=-march=armv8.3-a+crc --copt=-O3 --copt=-fprefetch-loop-arrays --copt=-Wno-error=maybe-uninitialized --copt=-Werror=stringop-overflow=0 tensorflow_serving/model_servers:tensorflow_model_server
其中部分参数介绍如下:
- output_user_root:Bazel编译缓存目录,默认为“/path/to/sra_tensorflow_adapter/serving/output”。可通过环境变量BAZEL_COMPILE_CACHE设置自定义路径,命令如下。
1
export BAZEL_COMPILE_CACHE=/path/to/your/cache_dir
- distdir:TF Serving编译依赖存放目录,用来解决第三方依赖包下载失败问题。
- override_repository:指定使用本地TensorFlow构建,将自动识别“/path/to/sra_tensorflow_adapter/tensorflow”目录作为构建依赖。
构建常见报错及解决指导:
- 提示“unable to find valid certification path to requested target”证书校验失败,解决办法请参见《TensorFlow 移植指南》的“编译TensorFlow 2.13.0源码时证书校验失败的解决办法”章节。
- 提示“Error in download_and_extract”,解决办法请参见《TensorFlow Serving推理部署框架 移植指南》的“下载TF-Serving源码依赖失败的解决的办法”章节,其中提及的--distdir指定的目录为“/path/to/sra_tensorflow_adapter/serving/download”。
- output_user_root:Bazel编译缓存目录,默认为“/path/to/sra_tensorflow_adapter/serving/output”。可通过环境变量BAZEL_COMPILE_CACHE设置自定义路径,命令如下。
父主题: 特性指南