本章节提供基础版本、开启ACL特性版本、适配TensorFlow v1.x特性版本和开启NUMA特性版本四种编译安装TensorFlow 2.13.0的场景和方法,请根据实际情况选择对应的编译命令。
下载地址:https://github.com/tensorflow/tensorflow/archive/refs/tags/v2.13.0.zip
下载得到的源码压缩包是tensorflow-2.13.0.zip。
若服务器可以访问网络,则可以直接在服务器上使用wget命令下载源码。
1 | wget -O tensorflow-2.13.0.zip https://github.com/tensorflow/tensorflow/archive/refs/tags/v2.13.0.zip --no-check-certificate |
1 2 3 4 5 6 7 | yum install patchelf perl python3-devel pip3 install numpy==1.24.3 pip3 install packaging pip3 install requests pip3 install wheel export C_INCLUDE_PATH=/usr/include/python3.9:$C_INCLUDE_PATH export CPLUS_INCLUDE_PATH=/usr/include/python3.9:$CPLUS_INCLUDE_PATH |
上述配置环境变量命令中的路径“/usr/include/python3.9”为Python.h所在目录,以实际编译环境中的路径为准。
1 | unzip tensorflow-2.13.0.zip
|
解压后的目录为“tensorflow-2.13.0”。
1 | cd tensorflow-2.13.0 |
1 | ./configure |
configure配置过程步骤解析:
1 | Please specify the location of python. [Default is /usr/bin/python3]: |
如果python3路径和上述默认相同,直接按“Enter”确认;否则,请输入正确的python3路径。
1 | Please input the desired Python library path to use. Default is [/home/xxx/test] |
如Python lib路径和上述默认相同,直接按“Enter”确认;否则,请输入正确的Python lib库的路径。
ROCm是指AMD的开源GPU加速计算平台,它可以在AMD的GPU上实现高性能计算。如果TensorFlow运行在AMD的GPU上,可以选择“y”;否则选择“N”。
1 | Do you wish to build TensorFlow with ROCm support? [y/N]: |
本文选择“N”。
1 | No ROCm support will be enabled for TensorFlow. |
CUDA是英伟达公司推出的一种并行计算平台和编程模型,它可以利用GPU的并行计算能力加速各种科学计算、图形处理、深度学习等应用程序。是否希望使用CUDA支持构建,如果需要则选择“y”;否则选择“N”。
1 | Do you wish to build TensorFlow with CUDA support? [y/N]: |
本文选择“N”。
1 | No CUDA support will be enabled for TensorFlow. |
如果编译环境上已有clang编译器,可以选择“N”;否则选择“y”。
1 | Do you wish to download a fresh release of clang? (Experimental) [y/N]: |
本文选择“N”。
1 | Clang will not be downloaded. |
1 | Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -Wno-sign-compare]: |
直接按“Enter”确认。
构建非Android应用程序时,选择“N”;否则选择“y”。
1 | "Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]:"
|
本文选择“N”。
1 | Not configuring the WORKSPACE for Android builds. |
config参数 |
描述 |
---|---|
--config=mkl_aarch64 |
集成oneDNN和Arm架构计算库(ACL)特性。 |
--config=numa |
集成NUMA特性。 |
--config=v1 |
使用TensorFlow 1.x版本的API替换TensorFlow 2.x版本的API。 |
以下介绍四种编译方法,请根据实际情况进行选择。
1 | bazel build //tensorflow/tools/pip_package:build_pip_package |
回显显示如上图信息,则表示编译成功。
1 | bazel build //tensorflow/tools/pip_package:build_pip_package --config=mkl_aarch64 |
回显显示如上图信息,则表示编译成功。
1 | bazel build //tensorflow/tools/pip_package:build_pip_package --config=v1 |
回显显示如上图信息,则表示编译成功。
1 | bazel build //tensorflow/tools/pip_package:build_pip_package --config=numa |
回显显示如上图信息,则表示编译成功。
1 | ./bazel-bin/tensorflow/tools/pip_package/build_pip_package ./output
|
构建生成的pip软件包在“./output”目录下。
1 | pip3 install ./output/tensorflow-2.13.0-cp39-cp39-linux_aarch64.whl |