GENESIS 2.1.6.1 with GPU support
ウェブページ
https://mdgenesis.org/
https://github.com/genesis-release-r-ccs/genesis
バージョン
2.1.6.1
ビルド環境
- 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
ビルドに必要なファイル
- genesis-2.1.6.1.tar.gz
ビルド手順
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"
テスト
CUTOFF を使うテストは全て abort (仕様)、他のテストは全てパス。
メモ
- CPU 版のようにインテルコンパイラを使うと速度が少し落ちてしまうため gcc を利用。
- CUDA 12.9 以降を使う場合には nvToolsExt.h の修正が必要。
- --with-gpuarch=sm_80 (for Ampere)をつけない場合 compute capability 6.0 用のフラグでエラーが発生。