-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Dan Dietz
committed
Jun 29, 2023
1 parent
c6c474e
commit e1c28a4
Showing
3 changed files
with
252 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
# omp = USER-OMP package, MPI with its default compiler | ||
|
||
SHELL = /bin/sh | ||
|
||
# --------------------------------------------------------------------- | ||
# compiler/linker settings | ||
# specify flags and libraries needed for your compiler | ||
|
||
cc = cc | ||
CC = CC | ||
CCFLAGS = -O3 -fopenmp | ||
SHFLAGS = -fPIC | ||
DEPFLAGS = -M | ||
|
||
LINK = CC | ||
LINKFLAGS = -O3 -fopenmp | ||
LIB = | ||
SIZE = size | ||
|
||
ARCHIVE = ar | ||
ARFLAGS = -rc | ||
SHLIBFLAGS = -shared | ||
|
||
# --------------------------------------------------------------------- | ||
# LAMMPS-specific settings, all OPTIONAL | ||
# specify settings for LAMMPS features you will use | ||
# if you change any -D setting, do full re-compile after "make clean" | ||
|
||
# LAMMPS ifdef settings | ||
# see possible settings in Section 2.2 (step 4) of manual | ||
|
||
LMP_INC = -DLAMMPS_GZIP | ||
|
||
# MPI library | ||
# see discussion in Section 2.2 (step 5) of manual | ||
# MPI wrapper compiler/linker can provide this info | ||
# can point to dummy MPI library in src/STUBS as in Makefile.serial | ||
# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts | ||
# INC = path for mpi.h, MPI compiler settings | ||
# PATH = path for MPI library | ||
# LIB = name of MPI library | ||
|
||
MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 | ||
MPI_PATH = | ||
MPI_LIB = | ||
|
||
# FFT library | ||
# see discussion in Section 2.2 (step 6) of manual | ||
# can be left blank to use provided KISS FFT library | ||
# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings | ||
# PATH = path for FFT library | ||
# LIB = name of FFT library | ||
|
||
FFT_INC = | ||
FFT_PATH = | ||
FFT_LIB = | ||
|
||
# JPEG and/or PNG library | ||
# see discussion in Section 2.2 (step 7) of manual | ||
# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC | ||
# INC = path(s) for jpeglib.h and/or png.h | ||
# PATH = path(s) for JPEG library and/or PNG library | ||
# LIB = name(s) of JPEG library and/or PNG library | ||
|
||
JPG_INC = | ||
JPG_PATH = | ||
JPG_LIB = | ||
|
||
# --------------------------------------------------------------------- | ||
# build rules and dependencies | ||
# do not edit this section | ||
|
||
include Makefile.package.settings | ||
include Makefile.package | ||
|
||
EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) | ||
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) | ||
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) | ||
EXTRA_CPP_DEPENDS = $(PKG_CPP_DEPENDS) | ||
EXTRA_LINK_DEPENDS = $(PKG_LINK_DEPENDS) | ||
|
||
# Path to src files | ||
|
||
vpath %.cpp .. | ||
vpath %.h .. | ||
|
||
# Link target | ||
|
||
$(EXE): main.o $(OBJ) $(EXTRA_LINK_DEPENDS) | ||
$(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) | ||
$(SIZE) $(EXE) | ||
|
||
# Library targets | ||
|
||
lib: $(OBJ) $(EXTRA_LINK_DEPENDS) | ||
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) | ||
|
||
shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) | ||
$(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ | ||
$(OBJ) $(EXTRA_LIB) $(LIB) | ||
|
||
# Compilation rules | ||
|
||
%.o:%.cpp $(EXTRA_CPP_DEPENDS) | ||
$(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< | ||
|
||
%.d:%.cpp $(EXTRA_CPP_DEPENDS) | ||
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ | ||
|
||
%.o:%.cu $(EXTRA_CPP_DEPENDS) | ||
$(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< | ||
|
||
# Individual dependencies | ||
|
||
depend : fastdep.exe $(SRC) | ||
@./fastdep.exe $(EXTRA_INC) -- $^ > .depend || exit 1 | ||
|
||
fastdep.exe: ../DEPEND/fastdep.c | ||
clang -I${MPICH_DIR}/include -O -o $@ $< -L${MPICH_DIR}/lib -lmpi ${PE_MPICH_GTL_DIR_amd_gfx908} -lmpi_gtl_hsa -L${ROCM_PATH}/lib -lhsa-runtime64 | ||
|
||
sinclude .depend | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,125 @@ | ||
# omp = USER-OMP package, MPI with its default compiler | ||
|
||
SHELL = /bin/sh | ||
|
||
# --------------------------------------------------------------------- | ||
# compiler/linker settings | ||
# specify flags and libraries needed for your compiler | ||
|
||
CC = hipcc | ||
CCFLAGS = -std=c++14 -O3 -DLAMMPS_BIGBIG -I${MPICH_DIR}/include | ||
SHFLAGS = -fPIC | ||
DEPFLAGS = -M | ||
|
||
LINK = hipcc | ||
LINKFLAGS = -O3 | ||
LIB = -L${MPICH_DIR}/lib -lmpi ${PE_MPICH_GTL_DIR_amd_gfx90a} -lmpi_gtl_hsa -L${ROCM_PATH}/lib -lhsa-runtime64 -lamdhip64 | ||
SIZE = size | ||
|
||
ARCHIVE = ar | ||
ARFLAGS = -rc | ||
SHLIBFLAGS = -shared | ||
|
||
KOKKOS_DEVICES = ZEN3,HIP | ||
KOKKOS_ARCH = Vega90a | ||
#KOKKOS_USE_TPLS=hwloc | ||
|
||
# --------------------------------------------------------------------- | ||
# LAMMPS-specific settings, all OPTIONAL | ||
# specify settings for LAMMPS features you will use | ||
# if you change any -D setting, do full re-compile after "make clean" | ||
|
||
# LAMMPS ifdef settings | ||
# see possible settings in Section 2.2 (step 4) of manual | ||
|
||
LMP_INC = -DLAMMPS_GZIP | ||
|
||
# MPI library | ||
# see discussion in Section 2.2 (step 5) of manual | ||
# MPI wrapper compiler/linker can provide this info | ||
# can point to dummy MPI library in src/STUBS as in Makefile.serial | ||
# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts | ||
# INC = path for mpi.h, MPI compiler settings | ||
# PATH = path for MPI library | ||
# LIB = name of MPI library | ||
|
||
MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1 | ||
MPI_PATH = | ||
MPI_LIB = | ||
|
||
# FFT library | ||
# see discussion in Section 2.2 (step 6) of manual | ||
# can be left blank to use provided KISS FFT library | ||
# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings | ||
# PATH = path for FFT library | ||
# LIB = name of FFT library | ||
|
||
FFT_INC = -I${ROCM_PATH}/hipfft/include -DFFT_HIPFFT | ||
FFT_PATH = -L${ROCM_PATH}/hipfft/lib | ||
FFT_LIB = -L${ROCM_PATH}/hipfft/lib -lhipfft | ||
|
||
# JPEG and/or PNG library | ||
# see discussion in Section 2.2 (step 7) of manual | ||
# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC | ||
# INC = path(s) for jpeglib.h and/or png.h | ||
# PATH = path(s) for JPEG library and/or PNG library | ||
# LIB = name(s) of JPEG library and/or PNG library | ||
|
||
JPG_INC = | ||
JPG_PATH = | ||
JPG_LIB = | ||
|
||
# --------------------------------------------------------------------- | ||
# build rules and dependencies | ||
# do not edit this section | ||
|
||
include Makefile.package.settings | ||
include Makefile.package | ||
|
||
EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC) | ||
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH) | ||
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB) | ||
EXTRA_CPP_DEPENDS = $(PKG_CPP_DEPENDS) | ||
EXTRA_LINK_DEPENDS = $(PKG_LINK_DEPENDS) | ||
|
||
# Path to src files | ||
|
||
vpath %.cpp .. | ||
vpath %.h .. | ||
|
||
# Link target | ||
|
||
$(EXE): main.o $(OBJ) $(EXTRA_LINK_DEPENDS) | ||
$(LINK) $(LINKFLAGS) main.o $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE) | ||
$(SIZE) $(EXE) | ||
|
||
# Library targets | ||
|
||
lib: $(OBJ) $(EXTRA_LINK_DEPENDS) | ||
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ) | ||
|
||
shlib: $(OBJ) $(EXTRA_LINK_DEPENDS) | ||
$(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \ | ||
$(OBJ) $(EXTRA_LIB) $(LIB) | ||
|
||
# Compilation rules | ||
|
||
%.o:%.cpp $(EXTRA_CPP_DEPENDS) | ||
$(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< | ||
|
||
%.d:%.cpp $(EXTRA_CPP_DEPENDS) | ||
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@ | ||
|
||
%.o:%.cu $(EXTRA_CPP_DEPENDS) | ||
$(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $< | ||
|
||
# Individual dependencies | ||
|
||
depend : fastdep.exe $(SRC) | ||
@./fastdep.exe $(EXTRA_INC) -- $^ > .depend || exit 1 | ||
|
||
fastdep.exe: ../DEPEND/fastdep.c | ||
clang -I${MPICH_DIR}/include -O -o $@ $< -L${MPICH_DIR}/lib -lmpi ${PE_MPICH_GTL_DIR_amd_gfx908} -lmpi_gtl_hsa -L${ROCM_PATH}/lib -lhsa-runtime64 | ||
|
||
sinclude .depend | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters