- 使用PuTTY工具,以root用户登录服务器。
- 执行以下命令进入主程序安装目录。
cd /path/to/DEEPMDKIT
- 执行以下命令创建虚拟python环境。
python3 -m venv test
source test/bin/activate
- 执行以下命令配置环境变量。
export CC=gcc CXX=g++ FC=gfortran
- 执行以下命令创建并进入bazel目录。
mkdir bazel
cd bazel
- 执行以下命令下载bazel。
wget https://github.com/bazelbuild/bazelisk/releases/download/v1.16.0/bazelisk-linux-arm64
- 执行以下命令进入配置bazel。
chmod a+x bazelisk-linux-arm64
ln -sf bazelisk-linux-arm64 bazel
export PATH=`pwd`:$PATH
- 执行以下命令创建并进入tensorflow目录。
cd ..
mkdir tensorflow
cd tensorflow/
- 执行以下命令下载tensorflow源码包。
git clone https://github.com/tensorflow/tensorflow tensorflow -b v2.8.0 --depth=1
- 执行以下命令进入tensorflow源码目录并配置。
cd tensorflow/
./configure
- 配置选项可以参考下图。

- 执行以下命令构建 TensorFlow的共享库。
bazel build -c opt --verbose_failures //tensorflow:libtensorflow_cc.so

- 如出现证书验证问题,可以通过以下命令导入证书。
vim ~/.bazelrc
输入以下内容, /path/to/jre/lib/security/cacerts为java证书路径,示例中使用默认密码changeit。
startup --host_jvm_args=-Djavax.net.ssl.trustStore=/path/to/jre/lib/security/cacerts --host_jvm_args=-Djava.net.ssl.trustStorePassword=changeit
- 执行以下命令重启bazel。
bazel shutdown
- 执行以下命令将库文件复制到TensorFlow的安装目录。
export tensorflow_root=/path/to/DEEPMDKIT/tensorflow/tensorflow_root
mkdir -p $tensorflow_root/lib
cp -d bazel-bin/tensorflow/libtensorflow_cc.so* $tensorflow_root/lib/
cp -d bazel-bin/tensorflow/libtensorflow_framework.so* $tensorflow_root/lib/
cp -d $tensorflow_root/lib/libtensorflow_framework.so.2 $tensorflow_root/lib/libtensorflow_framework.so
- 执行以下命令复制头文件。
mkdir -p $tensorflow_root/include/tensorflow
rsync -avzh --exclude '_virtual_includes/' --include '*/' --include '*.h' --include '*.inc' --exclude '*' bazel-bin/ $tensorflow_root/include/
rsync -avzh --include '*/' --include '*.h' --include '*.inc' --exclude '*' tensorflow/cc $tensorflow_root/include/tensorflow/
rsync -avzh --include '*/' --include '*.h' --include '*.inc' --exclude '*' tensorflow/core $tensorflow_root/include/tensorflow/
rsync -avzh --include '*/' --include '*' --exclude '*.cc' third_party/ $tensorflow_root/include/third_party/
rsync -avzh --include '*/' --include '*' --exclude '*.txt' bazel-tensorflow/external/eigen_archive/Eigen/ $tensorflow_root/include/Eigen/
rsync -avzh --include '*/' --include '*' --exclude '*.txt' bazel-tensorflow/external/eigen_archive/unsupported/ $tensorflow_root/include/unsupported/
rsync -avzh --include '*/' --include '*.h' --include '*.inc' --exclude '*' bazel-tensorflow/external/com_google_protobuf/src/google/ $tensorflow_root/include/google/
rsync -avzh --include '*/' --include '*.h' --include '*.inc' --exclude '*' bazel-tensorflow/external/com_google_absl/absl/ $tensorflow_root/include/absl/
- 执行以下命令进入DEEPMDKIT源码目录。
cd /path/to/DEEPMDKIT/deepmd-kit/source
- 执行以下命令创建并进入编译目录。
mkdir build
cd build
- 执行以下命令生成makefile。
cmake -DTENSORFLOW_ROOT=$tensorflow_root -DCMAKE_INSTALL_PREFIX=/path/to/DEEPMDKIT/deepmdkit_install ..
- 执行以下命令编译DEEPMDKIT。
make
make install