从源码编译安装 TensorFlow C++ 库和 DeepMD-kit

DeepMD 简介

DeePMD-kit 是一个用 Python/C++ 编写的软件包,旨在最大限度地减少构建基于深度学习的原子间势能和力场模型以及执行分子动力学 (MD) 所需的工作。这为解决分子模拟中的准确性与效率困境带来了新的希望。DeePMD-kit 的应用范围从有限分子到扩展系统,从金属系统到化学键合系统。

TensorFlow 在 python 下的安装还是比较方便快捷的,直接使用 pip 或者 conda 就可以一键安装,而要想使用 tensorflow 的 C++ 接口就需要在系统中编译安装 tensorflow 的库文件。不仅如此,如果想使用一些现成的工具时还是需要用到 tensorflow 的 C++ 库,安装步骤不算复杂,只是中间会有一些坑,在这里我简单记录一下。

安装 bazel

wget https://github.com/bazelbuild/bazel/releases/download/3.1.0/bazel-3.1.0-installer-linux-x86_64.sh 

sh bazel-3.1.0-installer-linux-x86_64.sh --prefix=/path/to/bazel/3.1.0 --skip-uncompress

wget https://github.com/bazelbuild/bazel/releases/download/3.1.0/bazel-3.1.0-linux-x86_64 -O /usr/sw-cluster/apps/soft/bazel/3.1.0/lib/bazel/bin/bazel-3.1.0-linux-x86_64

bazel 需要 glibc >= 2.1.7 ,在低版本的操作系统中需要为软件单独加载 glibc 库

编译 TensorFlow

在 GitHub 上 clone 你需要的版本

git clone -b v2.4.1 https://github.com/tensorflow/tensorflow tensorflow-2.4.1 

将刚才编译号的 bazel 添加到 PATH 后就可以开始编译了

export PATH=/path/to/bazel-3.1:$PATH
cd tensorflow-2.4.1
bazel build -c opt --verbose_failures //tensorflow:libtensorflow_cc.so

在安装过程中会自动调用你电脑上所有的 CPU 核心进行编译,如果是自己的个人电脑可能会非常卡顿!!
再安装过程中也会一直用 git 下载很多的包,所以在安装之前需要检查一下自己的网络环境,确保下载的顺利
编译时长大概 1 ~ 2 小时(24 核心服务器),一般情况不会出现错误,如果出错的话可以查看我的历史文章,里面有很多错误的详细说明

配置 TensorFlow 库

tensorflow 的 C++ 库安装完成后不会像其他软件一样可以指定一个目录一键安装(差评!),需要手动创建目录后再将需要的库挪过去

mkdir /path/to/install
export tensor_root=/path/to/install
mkdir -p $tensor_root/lib 
mkdir -p $tensor_root/include

# link libs
cp bazel-bin/tensorflow/*.so.* $tensor_root/lib
cd $tensor_root/lib
ln -s libtensorflow_cc.so.2 libtensorflow_cc.so
ln -s libtensorflow_framework.so.2 libtensorflow_framework.so
cd -

# link headers
cd bazel-bin/tensorflow/include/
cp -r absl Eigen  tensorflow  unsupported  third_party $tensor_root/include
cp -r ./src/google $tensor_root/include
cp -r ../../external $tensor_root/include

安装 deepmd

deepmd 的 python 版本可以很轻易的使用 conda 进行安装,而要想在 lammps 中使用 deepmd 插件,则需要手动编译 deepmd 的库后才能安装

git clone -b v1.3.3 --recursive https://github.com/deepmodeling/deepmd-kit.git deepmd-kit-1.3.3

cd deepmd-kit-1.3.3/source
mkdir _build
cd _build

cmake .. -DTENSORFLOW_ROOT=$tensor_root -DTensorFlow_INCLUDE_DIRS=$tensor_root/include -DCMAKE_INSTALL_PREFIX=/path/to/install/deepmd-kit-1.3.3 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++

make -j 24 && make install

因为我们还需要安装 lammps 的插件,所以还需要执行一步

make lammps

此时会看到生成了一个 USER-DEEPMD 文件夹,下面再简单介绍一下在 lammps 中的安装

为 lammps 安装 deepmd

在 lammps 官网下载好 lammps-29Oct20 的安装包,这里需要注意,因为我们安装的 deepmd 版本较新,在旧版本的 lammps 中会出现错误,无法安装

cd lammps-29Oct20/src
cp -r /path/to/deepmd-kit-1.3.3/source/_build/USER-DEEPMD .
# 这里只演示最小化安装,如果需要其他插件请自行安装
make yes-KSPACE yes-USER-DEEPMD
make mpi

你可能感兴趣的:(软件安装,深度学习,deepmd,tensorflow,lammps,linux)