Use rocky8 singularity container to build and run to work around legacy glibc issue.
singularity exec -B /public,/etc --nv /public/groups/ai4ec/libs/images/rocky8.sif /bin/bash -l build_lammps.sh
Start shell environment in GPU node
salloc -p GPU_s --gres=gpu:1
ssh gpu001
singularity shell -B /public,/etc --nv -s /bin/bash /public/groups/ai4ec/libs/images/rocky8.sif
source /public/groups/ai4ec/libs/bin/mace/build_env.sh
lmp
#! /bin/bash
# SBATCH -p GPU_s
# SBATCH --gres=gpu:1
module load singularity/3.8.3
singularity exec -B /public,/etc --nv /public/groups/ai4ec/libs/images/rocky8.sif /bin/bash -l << EOF
source /public/groups/ai4ec/libs/bin/mace/build_env.sh
lmp ...
EOF
FROM rockylinux:8.9
RUN mkdir -p /public
RUN yum group install " Development Tools" -y && \
yum clean all && rm -rf /var/cache/yum
RUN yum install tcl compat-openssl10 -y && \
yum clean all && rm -rf /var/cache/yum
module purge
module load gcc/9.3
module load dev/oneapi/2022.3.1
module load cuda/11.6
module load cudnn/8.4.1
module load cmake/3.21
export CUDNN_INCLUDE_DIR=/public/software/cudnn/8.4.1/include
export CUDNN_LIBRARY=/public/software/cudnn/8.4.1/lib
set -e
mkdir -p lammps-mace-gpu
cd lammps-mace-gpu
[ -d lammps ] || git clone --branch=mace --depth 1 https://github.com/ACEsuit/lammps
# Use this if you are living in China: copy the zip to your folder before running your script
# [ -d lammps ] || ( unzip ../lammps-mace.zip && mv lammps-mace lammps )
CUDA_VER=cu116
LIBTORCH_ZIP=libtorch-cxx11-abi-shared-with-deps-1.13.1+$CUDA_VER .zip
[ -f $LIBTORCH_ZIP ] || wget https://download.pytorch.org/libtorch/$CUDA_VER /libtorch-cxx11-abi-shared-with-deps-1.13.1%2B$CUDA_VER .zip
[ -d libtorch-gpu ] || ( unzip libtorch-cxx11-abi-shared-with-deps-1.13.1+$CUDA_VER .zip && mv libtorch libtorch-gpu )
module purge
module load gcc/9.3
module load dev/oneapi/2022.3.1
module load cuda/11.6
module load cudnn/8.4.1
module load cmake/3.21
export CUDNN_INCLUDE_DIR=/public/software/cudnn/8.4.1/include
export CUDNN_LIBRARY=/public/software/cudnn/8.4.1/lib
cd lammps
rm -rf build-kokkos-cuda || true
mkdir -p build-kokkos-cuda && cd build-kokkos-cuda
cmake \
-DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DCMAKE_Fortran_COMPILER=ifx \
-DKokkos_ARCH_AMPERE80=ON \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=$( pwd) \
-D BUILD_MPI=yes \
-D BUILD_OMP=yes \
-D BUILD_SHARED_LIBS=yes \
-D LAMMPS_EXCEPTIONS=yes \
-D PKG_KOKKOS=yes \
-D Kokkos_ARCH_AMDAVX=yes \
-D Kokkos_ARCH_AMPERE100=yes \
-D Kokkos_ENABLE_CUDA=yes \
-D Kokkos_ENABLE_OPENMP=yes \
-D Kokkos_ENABLE_DEBUG=no \
-D Kokkos_ENABLE_DEBUG_BOUNDS_CHECK=no \
-D Kokkos_ENABLE_CUDA_UVM=no \
-D CMAKE_CXX_COMPILER=$( pwd) /../lib/kokkos/bin/nvcc_wrapper \
-D PKG_ML-MACE=yes \
-D CMAKE_PREFIX_PATH=$( pwd) /../../libtorch-gpu \
../cmake
make -j 12