LAMMPS 22Jul2025 Update 3 - CUDA
ウェブページ
バージョン
22Jul2025 Update 3
ビルド環境
- GCC 10.3.1 (gcc-toolset-10)
- Open MPI 4.1.8 (CUDA-aware)
- GSL 2.8
- OpenBLAS 0.3.29
- CUDA 12.8 Update 1
ビルドに必要なファイル
- lammps-stable_22Jul2025_update3.tar.gz
- (一部ファイルは以下スクリプト中で取得)
ビルド手順
#!/bin/sh
VERSION=2025-Jul22-u3
NAME=lammps-stable_22Jul2025_update3
INSTALL_PREFIX=/apl/lammps/${VERSION}-CUDABASEDIR=/home/users/${USER}/Software/LAMMPS/${VERSION}
LAMMPS_TARBALL=${BASEDIR}/${NAME}.tar.gzWORKDIR=/gwork/users/${USER}
LAMMPS_WORKDIR=${WORKDIR}/${NAME}FFMPEG_BIN=/apl/ffmpeg/6.1/bin/ffmpeg
VMD_MOLFILE_INC=/home/users/${USER}/Software/VMD/1.9.4/vmd-1.9.4a57/plugins/include
GSL_ROOT=/apl/gsl/2.8GPU_ARCH=sm_80
PARALLEL=12
#------------------------------------------------------------------
umask 0022
export LANG=C
ulimit -s unlimitedmodule -s purge
module -s load gcc-toolset/10
module -s load openmpi/4.1.8/gcc13-cuda12.8u1
module -s load gsl/2.8
#module -s load mkl/2023.2.0
module -s load openblas/0.3.29-lp64
module -s load cuda/12.8u1PYTHONEXE=/usr/bin/python3.6m
PYTHONINC=/usr/include/python3.6mmkdir -p ${WORKDIR}
cd ${WORKDIR}
if [ -d ${NAME} ]; then
mv ${NAME} lammps_erase
rm -rf lammps_erase &
fi
tar zxf ${LAMMPS_TARBALL}cd ${NAME}
# for FFT_SINGLE=on
sed -i -e '26i#include "force.h"' unittest/force-styles/test_fix_timestep.cpp
sed -i -e '29i#include "kspace.h"' unittest/force-styles/test_pair_style.cpp
# pass python exe path to MDI cmake
sed -i -e "59i\ -DPython_EXECUTABLE=${PYTHONEXE}" cmake/Modules/Packages/MDI.cmake
mkdir build && cd build# Disabled PKGs:
# ADIOS, VTK: noavail
# GUI: manually disabled
# KIM: to avoid dependence to libkim-api.so.2
# INTEL: not necessary for gcc build
cmake ../cmake \
-DLAMMPS_MACHINE=rccs-cuda \
-DENABLE_TESTING=on \
-DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
-DCMAKE_C_COMPILER=mpicc \
-DCMAKE_CXX_COMPILER=mpicxx \
-DCMAKE_Fortran_COMPILER=mpif90 \
-DCMAKE_C_FLAGS_RELEASE="-O3 -DNDEBUG" \
-DCMAKE_CXX_FLAGS_RELEASE="-O3 -DNDEBUG" \
-DCMAKE_Fortran_FLAGS_RELEASE="-O3 -DNDEBUG" \
-DPython_EXECUTABLE=${PYTHONEXE} \
-DPython_INCLUDE_DIR=${PYTHONINC} \
-DGSL_ROOT_DIR=${GSL_ROOT} \
-DBUILD_SHARED_LIBS=on \
-DBUILD_TOOLS=on \
-DBUILD_MPI=on \
-DBUILD_OMP=on \
-DBUILD_LAMMPS_GUI=off \
-DBUILD_WHAM=off \
-DFFT=FFTW3 \
-DFFT_SINGLE=on \
-DFFT_FFTW_THREADS=on \
-DWITH_JPEG=on \
-DWITH_PNG=on \
-DWITH_GZIP=on \
-DWITH_FFMPEG=on \
-DFFMPEG_EXECUTABLE=${FFMPEG_BIN} \
-DPKG_ADIOS=off \
-DPKG_AMOEBA=off \
-DPKG_APIP=on \
-DPKG_ASPHERE=on \
-DPKG_ATC=on \
-DPKG_AWPMD=on \
-DPKG_BOCS=on \
-DPKG_BODY=on \
-DPKG_BPM=on \
-DPKG_BROWNIAN=on \
-DPKG_CG-DNA=on \
-DPKG_CG-SPICA=on \
-DPKG_CLASS2=on \
-DPKG_COLLOID=on \
-DPKG_COLVARS=on \
-DPKG_COMPRESS=on \
-DPKG_CORESHELL=on \
-DPKG_DIELECTRIC=on \
-DPKG_DIFFRACTION=on \
-DPKG_DIPOLE=on \
-DPKG_DPD-BASIC=on \
-DPKG_DPD-MESO=on \
-DPKG_DPD-REACT=on \
-DPKG_DPD-SMOOTH=on \
-DPKG_DRUDE=on \
-DPKG_EFF=on \
-DPKG_ELECTRODE=on \
-DPKG_EXTRA-COMMAND=on \
-DPKG_EXTRA-COMPUTE=on \
-DPKG_EXTRA-DUMP=on \
-DPKG_EXTRA-FIX=on \
-DPKG_EXTRA-MOLECULE=on \
-DPKG_EXTRA-PAIR=on \
-DPKG_FEP=on \
-DPKG_GPU=on \
-DGPU_API=cuda \
-DGPU_ARCH=${GPU_ARCH} \
-DPKG_GRANULAR=on \
-DPKG_H5MD=on \
-DPKG_INTEL=off \
-DPKG_INTERLAYER=on \
-DPKG_KIM=off \
-DDOWNLOAD_KIM=off \
-DPKG_KOKKOS=off \
-DPKG_KSPACE=on \
-DPKG_LATBOLTZ=on \
-DPKG_LEPTON=on \
-DPKG_MACHDYN=on \
-DDOWNLOAD_EIGEN3=on \
-DPKG_MANIFOLD=on \
-DPKG_MANYBODY=on \
-DPKG_MC=on \
-DPKG_MDI=on \
-DDOWNLOAD_MDI=on \
-DPKG_MEAM=on \
-DPKG_MESONT=on \
-DPKG_MGPT=on \
-DPKG_MISC=on \
-DPKG_ML-HDNNP=off \
-DDOWNLOAD_N2P2=off \
-DPKG_ML-IAP=off \
-DPKG_ML-PACE=on \
-DPKG_ML-POD=on \
-DPKG_ML-QUIP=off \
-DDOWNLOAD_QUIP=off \
-DPKG_ML-RANN=on \
-DPKG_ML-SNAP=on \
-DPKG_ML-UF3=on \
-DPKG_MOFFF=on \
-DPKG_MOLECULE=on \
-DPKG_MOLFILE=on \
-DMOLFILE_INCLUDE_DIR=${VMD_MOLFILE_INC} \
-DPKG_NETCDF=on \
-DPKG_OPENMP=on \
-DPKG_OPT=on \
-DPKG_ORIENT=on \
-DPKG_PERI=on \
-DPKG_PHONON=on \
-DPKG_PLUGIN=on \
-DPKG_PLUMED=on \
-DDOWNLOAD_PLUMED=on \
-DPKG_POEMS=on \
-DPKG_PTM=on \
-DPKG_PYTHON=on \
-DPKG_QEQ=on \
-DPKG_QMMM=on \
-DPKG_QTB=on \
-DPKG_REACTION=on \
-DPKG_REAXFF=on \
-DPKG_REPLICA=on \
-DPKG_RHEO=on \
-DPKG_RIGID=on \
-DPKG_SCAFACOS=on \
-DDOWNLOAD_SCAFACOS=on \
-DPKG_SHOCK=on \
-DPKG_SMTBQ=on \
-DPKG_SPH=on \
-DPKG_SPIN=on \
-DPKG_SRD=on \
-DPKG_TALLY=on \
-DPKG_UEF=on \
-DPKG_VORONOI=on \
-DDOWNLOAD_VORO=on \
-DPKG_VTK=off \
-DPKG_YAFF=on \
-DBLA_VENDOR=OpenBLAS \
-DBLA_PREFER_PKGCONFIG=on \
-DCMAKE_BUILD_TYPE=Release
#make -j ${PARALLEL}
make VERBOSE=1 -j ${PARALLEL}export OMP_NUM_THREADS=2
#make test
make installcp -a ../examples ${INSTALL_PREFIX}
cd ${INSTALL_PREFIX}
for f in etc/profile.d/*; do
if [ -f $f ]; then
ln -s $f .
fi
donecd lib64
if [ -f liblammps_rccs-cuda.so ]; then
ln -s liblammps_rccs-cuda.so liblammps.so
fi
if [ -f liblammps_rccs-cuda.so.0 ]; then
ln -s liblammps_rccs-cuda.so.0 liblammps.so.0
fi
テスト
ccgpu にて以下のスクリプトで実行
#!/bin/sh
VERSION=2025-Jul22-u3
NAME=lammps-stable_22Jul2025_update3
INSTALL_PREFIX=/apl/lammps/${VERSION}-CUDABASEDIR=/home/users/${USER}/Software/LAMMPS/${VERSION}
LAMMPS_TARBALL=${BASEDIR}/${NAME}.tar.gzWORKDIR=/gwork/users/${USER}
LAMMPS_WORKDIR=${WORKDIR}/${NAME}GPU_ARCH=sm_80
FFMPEG_BIN=/apl/ffmpeg/6.1/bin/ffmpeg
VMD_MOLFILE_INC=/home/users/${USER}/Software/VMD/1.9.4/vmd-1.9.4a57/plugins/include
GSL_ROOT=/apl/gsl/2.8
PARALLEL=12#------------------------------------------------------------------
umask 0022
export LANG=C
ulimit -s unlimited
export OMP_NUM_THREADS=1module -s purge
module -s load gcc-toolset/10
module -s load openmpi/4.1.8/gcc13-cuda12.8u1
module -s load gsl/2.8
module -s load openblas/0.3.29-lp64
module -s load cuda/12.8u1PYTHONEXE=/usr/bin/python3.6m
PYTHONINC=/usr/include/python3.6mcd ${WORKDIR}
cd ${NAME}
cd build
make test # need to do it separately...
テスト結果
- 38 SimpleCommands でエラー。
- Update 1 の時と同じ
- 128:MolPairStyle:coul_long_cs (PairStyle.gpu)でエラー。大きな数値エラー。Update 1 では発生せず
- 199:MolPairStyle:lj_cut_dipole_cut (PairStyle.gpu)でエラー。Update 1 では発生せず
- Cuda driver error 1 in call at file '/gwork/users/qf7/lammps-stable_22Jul2025_update3/lib/gpu/geryon/nvd_kernel.h' in line 338.
有効なパッケージ
APIP ASPHERE ATC AWPMD BOCS BODY BPM BROWNIAN CG-DNA CG-SPICA CLASS2 COLLOID
COLVARS COMPRESS CORESHELL DIELECTRIC DIFFRACTION DIPOLE DPD-BASIC DPD-MESO
DPD-REACT DPD-SMOOTH DRUDE EFF ELECTRODE EXTRA-COMMAND EXTRA-COMPUTE
EXTRA-DUMP EXTRA-FIX EXTRA-MOLECULE EXTRA-PAIR FEP GPU GRANULAR H5MD
INTERLAYER KSPACE LATBOLTZ LEPTON MACHDYN MANIFOLD MANYBODY MC MDI MEAM MESONT
MGPT MISC ML-PACE ML-POD ML-RANN ML-SNAP ML-UF3 MOFFF MOLECULE MOLFILE
NETCDF OPENMP OPT ORIENT PERI PHONON PLUGIN PLUMED POEMS PTM PYTHON QEQ QMMM
QTB REACTION REAXFF REPLICA RHEO RIGID SCAFACOS SHOCK SMTBQ SPH SPIN SRD TALLY
UEF VORONOI YAFF
メモ
- 22Jul2025(CUDA) とほぼ同じ手順でビルドしていますが、コンパイルに失敗する QUIP は外しています。
- Update 1 の時と比べると、128:MolPairStyle:coul_long_cs と 199:MolPairStyle:lj_cut_dipole_cut において追加でエラーが発生しています。
- Update 2 のあたりで大きな変更があったためかもしれません。Update 2 で同様の手順でビルド、テストするともっと多くのテストで失敗します。