- It's for CentOS 7, so the conda version have to be limited to cuda 11.8
CONDA_OVERRIDE_CUDA=11.8 nohup conda create -y -p ./3.0.0b0-cuda118 pytorch=2.1.2=cuda118* python=3.11.* cudatoolkit=11.8 zlib cudnn cusparselt -c conda-forge --override-channels &
cd ./3.0.0b0-cuda118
source activate ./
pip install tensorflow==2.14.1
ln -s <path to source> source
bash build-deepmd-cuda118.sh
#!/bin/bash
set -e
SCRIPT_PATH=$(realpath $0)
SCRIPT_DIR=$(dirname "$SCRIPT_PATH")
deepmd_source_dir=$SCRIPT_DIR/source/deepmd-kit
lammps_source_dir=$SCRIPT_DIR/source/lammps-2Aug2023
lasp_source_dir=$SCRIPT_DIR/source/LASP_INTER_pro3.7.1_intel18_b48
echo "SCRIPT_DIR=$SCRIPT_DIR"
echo '' > $SCRIPT_DIR/etc/conda/activate.d/libdeepmd.sh
echo '' > $SCRIPT_DIR/etc/conda/deactivate.d/libdeepmd.sh
module load cuda/11.8
module load anaconda/2022.5
module load gsl/2.8
# module load mkl/2021.1.1
source activate $SCRIPT_DIR
conda list
which python3
module load mpi/openmpi/4.0.3-gcc
# module load gcc/9.3
module load gcc/12.1
export CC=`which gcc`
export CXX=`which g++`
export FC=`which gfortran`
# export CUDA_HOME=$CONDA_PREFIX
export NVCC_APPEND_FLAGS='-allow-unsupported-compiler'
export LD_LIBRARY_PATH=$SCRIPT_DIR/lib:$LD_LIBRARY_PATH
export CMAKE_PREFIX_PATH=$CONDA_PREFIX
export CAFFE2_USE_CUDNN=1
export CAFFE2_USE_CUSPARSELT=1
# to fix
# nvcc warning : incompatible redefinition for option 'compiler-bindir', the last value of this option was used
# export CUDA_HOST_COMPILER=$CC
export DP_VARIANT=cuda
export DP_ENABLE_PYTORCH=1
# install python module
pushd $deepmd_source_dir
# git clean -xdf
# git checkout -f v3.0.0b0
# CMAKE_ARGS="$CMAKE_ARGS -DCAFFE2_USE_CUDNN=TRUE -DCAFFE2_USE_CUSPARSELT=TRUE -DUSE_CUDA_TOOLKIT=TRUE" pip install .
popd
module unload cmake gcc
module load gcc/12.1
export CC=`which gcc`
export CXX=`which g++`
export FC=`which gfortran`
module load dev/cmake/3.26.3
which cmake
# build c++ module
deepmd_root=$SCRIPT_DIR/opt/deepmd
echo "deepmd_root=$deepmd_root"
mkdir -p $deepmd_root
rm -rf $deepmd_source_dir/source/build || true
mkdir -p $deepmd_source_dir/source/build
pushd $deepmd_source_dir/source/build
# export TORCH_CUDA_ARCH_LIST="8.0 8.6 8.9 9.0"
# cmake -DUSE_TF_PYTHON_LIBS=TRUE -DENABLE_PYTORCH=TRUE -DENABLE_TENSORFLOW=TRUE -DCMAKE_INSTALL_PREFIX=$deepmd_root -DCAFFE2_USE_CUDNN=TRUE -DCAFFE2_USE_CUSPARSELT=TRUE -DUSE_CUDA_TOOLKIT=TRUE -DLAMMPS_SOURCE_ROOT=$lammps_source_dir -DCMAKE_PREFIX_PATH=`python3 -c 'import torch;print(torch.utils.cmake_prefix_path)'` -DCUDNN_ROOT=$CONDA_PREFIX -DCUSPARSELT_ROOT=$CONDA_PREFIX ..
# make -j8
# make install
popd
# install lammps
lammps_root=$SCRIPT_DIR/opt/lammps
rm -rf $lammps_source_dir/build || true
mkdir -p $lammps_source_dir/build
pushd $lammps_source_dir/build
# https://docs.lammps.org/Packages_details.html
cmake -D PKG_MOLECULE=ON PKG_EXTRA_MOLECULE=ON PKG_DIFFRACTION=ON -D PKG_PLUGIN=ON -D PKG_EXTRA-FIX=ON -D PKG_KSPACE=ON -D PKG_MISC=ON -D PKG_PLUMED=ON -D LAMMPS_INSTALL_RPATH=ON -D BUILD_MPI=yes -D BUILD_OMP=yes -D BUILD_SHARED_LIBS=yes -D CMAKE_INSTALL_PREFIX=$lammps_root -D CMAKE_INSTALL_LIBDIR=lib -D CMAKE_INSTALL_FULL_LIBDIR=${lammps_root}/lib -D PKG_VORONOI=yes -D DOWNLOAD_VORO=yes ../cmake
make -j8
make install
popd
# generate activate script
cat << __EOF > $SCRIPT_DIR/etc/conda/activate.d/libdeepmd.sh
export LAMMPS_PLUGIN_PATH=\$CONDA_PREFIX/opt/deepmd/lib/deepmd_lmp
export CUDA_HOME=\$CONDA_PREFIX
export _ADD_LD_LIBRARY_PATH=\$CONDA_PREFIX/opt/deepmd/lib:\$CONDA_PREFIX/lib:\$CONDA_PREFIX/opt/lammps/lib
export _ADD_PATH=\$CONDA_PREFIX/opt/lammps/bin
export LD_LIBRARY_PATH=\$_ADD_LD_LIBRARY_PATH:\$LD_LIBRARY_PATH
export PATH=\$_ADD_PATH:\$PATH
cat << EOF
This environment have cuda-toolkit included,
you don't need to load extra cuda module.
If you are to run dp train,
you don't need to load extra modules.
If you are to run LAMMPS,
then you must add the following modules to your script.
module load gcc/12.1
module load gsl/2.8
module load mpi/openmpi/4.0.3-gcc
EOF
__EOF
cat << __EOF > $SCRIPT_DIR/etc/conda/deactivate.d/libdeepmd.sh
export LAMMPS_PLUGIN_PATH=
export CUDA_HOME=
export LD_LIBRARY_PATH="\${LD_LIBRARY_PATH/"\$_ADD_LD_LIBRARY_PATH:"/""}"
export PATH="\${PATH/"\$_ADD_PATH:"/""}"
export _ADD_PATH=
export _ADD_LD_LIBRARY_PATH=
__EOF