GENESIS 2.1.6.1 with GPU support
Webpage
https://mdgenesis.org/
https://github.com/genesis-release-r-ccs/genesis
Version
2.1.6.1
Build Environment
- GCC 15.1.1 (gcc-toolset-15)
- MKL 2025.3 (oneAPI 2025.3.1)
- Intel MPI 2021.17.2 (oneAPI 2025.3.1)
- CUDA 13.1 Update 1
Files Required
- genesis-2.1.6.1.tar.gz
Build Procedure
Built and tested on ccgpu.
#!/bin/sh
VERSION=2.1.6.1
BASEDIR=/home/users/${USER}/Software/GENESIS/${VERSION}
TARBALL=${BASEDIR}/genesis-${VERSION}.tar.gzINSTALL_DIR=/apl/genesis/${VERSION}-CUDA
WORKDIR=/gwork/users/${USER}
PARALLEL_TESTS=8
# --------------------------------------------------------------------------
umask 0022module -s purge
module -s load gcc-toolset/15
module -s load mkl/2025.3
module -s load intelmpi/2021.17.2
module -s load cuda/13.1u1
export LANG=C
export LC_ALL=C
export OMP_NUM_THREADS=1
MKL_LIBS="$(mkl_link_tool --quiet -libs -c gnu_f -o gomp)"
ulimit -s unlimitedcd ${WORKDIR}
if [ -d genesis-${VERSION} ]; then
mv genesis-${VERSION} genesis-erase
rm -rf genesis-erase &
fitar xf ${TARBALL}
cd genesis-${VERSION}sed -i -e "s|nvToolsExt.h|nvtx3/nvToolsExt.h|" src/spdyn/gpu_sp_energy.cu
autoreconf
LAPACK_LIBS="${MKL_LIBS}" FC=mpif90 CC=mpicc \
./configure --prefix=${INSTALL_DIR} \
--enable-gpu \
--enable-single \
--with-cuda=/apl/cuda/13.1u1 \
--with-gpuarch=sm_80
make && make install# tests
SPDYN=${INSTALL_DIR}/bin/spdyncd tests/regression_test
for f in test.py test_remd.py test_fep.py test_rpath.py test_gamd.py; do
sed -i -e "s/env python/env python3/" $f
done
# spdyn tests
./test.py "mpirun -np ${PARALLEL_TESTS} $SPDYN"
./test_remd.py "mpirun -np ${PARALLEL_TESTS} $SPDYN"
./test_rpath.py "mpirun -np ${PARALLEL_TESTS} $SPDYN"
./test_gamd.py "mpirun -np ${PARALLEL_TESTS} $SPDYN"
./test_fep.py "mpirun -np ${PARALLEL_TESTS} $SPDYN"
Tests
Tests using CUTOFF have aborted (as expected). All the other tests have passed.
メモ
- Intel Compiler is not so good for GPU version unlike CPU-only version.
- Fix for nvToolsExt.h is necessary for CUDA 12.9 or later.
- --with-gpuarch=sm_80 (for Ampere) was necessary for this build. (Flag for compute capability 6.0 caused an error.)