Skip to content

Instantly share code, notes, and snippets.

@Siriusitzy
Last active May 26, 2025 03:32
Show Gist options
  • Save Siriusitzy/6ab503822dc225741c0b9b755c0803da to your computer and use it in GitHub Desktop.
Save Siriusitzy/6ab503822dc225741c0b9b755c0803da to your computer and use it in GitHub Desktop.
IKKEM 一键安装DeePMD-kit 3.1.0a 免编译lammps (from ChiahsinChu)
#!/bin/bash
set -e
EVN_NAME=deepmd_dpa3
module purge
# download deepmd-kit v3.1.0a0
if [ ! -d ./deepmd-kit ]; then
git clone https://github.com/deepmodeling/deepmd-kit.git -b v3.1.0a0
fi
export deepmd_source_dir=$(pwd)/deepmd-kit
module load intel/2023.2
module load anaconda/2022.5
# create conda environment if not exist
conda env list | grep -q $EVN_NAME || conda create -y -n $EVN_NAME python=3.11
source activate $EVN_NAME
export _LD_LIBRARY_PATH=$LD_LIBRARY_PATH
export _PATH=$PATH
export _CONDA_PREFIX=$CONDA_PREFIX
module load cuda/12.1
module load cudnn/8.4.1
module load gcc/12.1
export CC=$(which gcc)
export CXX=$(which g++)
export FC=$(which gfortran)
export MPI_CXX=$(which mpicxx)
export MPI_CC=$(which mpicc)
export TORCH_CUDA_ARCH_LIST="8.0 8.6 8.9 9.0"
export DP_VARIANT=cuda
export DP_ENABLE_PYTORCH=1
export CONDA_PREFIX=$_CONDA_PREFIX
export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH
export PATH=$CONDA_PREFIX/bin:$PATH
pip install tensorflow==2.18
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
pip install ninja cmake
pip install nvidia-cuda-nvcc-cu11
# install deepmd-kit python interface
[ -f deepmd-py.done ] || {
pushd $deepmd_source_dir
git clean -fdx
CMAKE_ARGS="$CMAKE_ARGS -DUSE_CUDA_TOOLKIT=TRUE" pip install .
popd
touch deepmd-py.done
}
# install deepmd-kit lammps plugin
module load gsl/2.8
# download if libtorch does not exist
if [ ! -d ./libtorch ]; then
wget -c https://download.pytorch.org/libtorch/cu121/libtorch-cxx11-abi-shared-with-deps-2.1.1%2Bcu121.zip
unzip -q libtorch-cxx11-abi-shared-with-deps-2.1.1+Bcu121.zip
rm libtorch-*.zip
fi
export torch_root=$(pwd)/libtorch
# if don't need other package
# module load lammps to avoid build lammps
module load lammps/2024.8.29-intel-2023
export LAMMPS_PREFIX=/public/sourcepackage/lammps-2024/lammps-29Aug2024/
export deepmd_root=$deepmd_source_dir/build/deepmd_root
export LAMMPS_PLUGIN_PATH=$deepmd_root/lib/deepmd_lmp
export LD_LIBRARY_PATH=$deepmd_root/lib:$LD_LIBRARY_PATH
export PATH=$LAMMPS_PREFIX/build:$PATH
cd $deepmd_source_dir/source
mkdir -p build && cd build
cmake -DUSE_CUDA_TOOLKIT=ON \
-DENABLE_TENSORFLOW=TRUE \
-DUSE_TF_PYTHON_LIBS=TRUE \
-DENABLE_PYTORCH=TRUE \
-DCMAKE_PREFIX_PATH=$torch_root \
-DCMAKE_INSTALL_PREFIX=$deepmd_root \
-DCAFFE2_USE_CUDNN=TRUE \
-DCUDNN_ROOT=/public/software/cudnn/8.4.1/ \
-DLAMMPS_SOURCE_ROOT=$LAMMPS_PREFIX ..
make -j4
make install
mkdir -p $CONDA_PREFIX/etc/conda/activate.d
mkdir -p $CONDA_PREFIX/etc/conda/deactivate.d
cat <<__EOF >$CONDA_PREFIX/etc/conda/activate.d/libdeepmd.sh
export _LD_LIBRARY_PATH=\$LD_LIBRARY_PATH
export _PATH=\$PATH
export _CONDA_PREFIX=\$CONDA_PREFIX
module load cuda/12.1
module load cudnn/8.4.1
module load gcc/12.1
export CC=\$(which gcc)
export CXX=\$(which g++)
export FC=\$(which gfortran)
export TORCH_CUDA_ARCH_LIST="8.0 8.6 8.9 9.0"
export DP_VARIANT=cuda
export DP_ENABLE_PYTORCH=1
export CONDA_PREFIX=\$_CONDA_PREFIX
unset _CONDA_PREFIX
export deepmd_source_dir=$deepmd_source_dir
export deepmd_root=\$deepmd_source_dir/build/deepmd_root
export LAMMPS_PLUGIN_PATH=\$deepmd_root/lib/deepmd_lmp
export LAMMPS_PREFIX=$LAMMPS_PREFIX
export torch_root=$torch_root
export LD_LIBRARY_PATH=\$deepmd_root/lib:\$CONDA_PREFIX/lib:\$LD_LIBRARY_PATH
export PATH=\$LAMMPS_PREFIX/build:\$CONDA_PREFIX/bin:\$PATH
cat <<EOF
If you are to run LAMMPS,
then you must add the following modules to your script.
module load intel/2023.2
module load gsl/2.8
module load lammps/2024.8.29-intel-2023
EOF
__EOF
cat <<__EOF >$CONDA_PREFIX/etc/conda/deactivate.d/libdeepmd.sh
module purge
unset DP_VARIANT
unset DP_ENABLE_PYTORCH
export LD_LIBRARY_PATH=\$_LD_LIBRARY_PATH
unset _LD_LIBRARY_PATH
export PATH=\$_PATH
unset _PATH
__EOF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment