Loading Makefile_summitdeleted 100644 → 0 +0 −129 Original line number Diff line number Diff line SHELL=/bin/bash #MACHINE = Summit ### the Spock compiler flags also work on Crusher (with exception that no GCC with OpenMP Offloading on Crusher yet) MACHINE = Spock #COMPILER = Native COMPILER = GCC #CPU_or_GPU = CPU CPU_or_GPU = GPU #### Summit ifeq ($(MACHINE),Summit) ifeq ($(COMPILER),Native) ifeq ($(CPU_or_GPU),CPU) ## CPU-Only ## enable OpenMP without defining USE_OPENMP_OFFLOAD to use the omp_get_wtime ## function and this makes me use the xlf_r compiler instead of xlf FC = xlf_r FFLAGS = -O3 -qsmp=omp -qfree -qpreprocess -qtune=pwr9 -qarch=pwr9 -W@,"-v" LDFLAGS = -qsmp=omp else ## GPUs with OpenMP Offloading FC = xlcuf FFLAGS = -O3 -qfree -qpreprocess -qsmp=omp -qoffload -qcuda -qtune=pwr9 -qarch=pwr9 -qtgtarch=sm_70 -W@,"-v" FFLAGS += -DUSE_OPENMP_OFFLOAD -DUSE_CUDA LDFLAGS = -qsmp=omp -qoffload -L${OLCF_CUDA_ROOT}/lib64 -lnvToolsExt -lcudart endif endif ifeq ($(COMPILER),GCC) ifeq ($(CPU_or_GPU),GPU) FC = gfortran FFLAGS = -O3 -ffree-form -cpp -fopenmp -foffload="-lm -latomic" FFLAGS += -DUSE_OPENMP_OFFLOAD -DUSE_CUDA LDFLAGS = -fopenmp -foffload="-lm -latomic" -L${OLCF_CUDA_ROOT}/lib64 -lnvToolsExt -lcudart else FC = gfortran FFLAGS = -O3 -ffree-form -cpp LDFLAGS = endif endif endif #### Spock and Crusher (GCC option not available on Crusher yet) ifeq ($(MACHINE),Spock) ROCM_LIB_PATH=${OLCF_ROCM_ROOT}/lib ROCM_INC_PATH=${OLCF_ROCM_ROOT}/include ifeq ($(COMPILER),Native) FC = ftn ifeq ($(CPU_or_GPU),GPU) ### GPU FFLAGS = -N1023 -O3 -homp -em -ef -eT -ffree -DUSE_OPENMP_OFFLOAD -DUSE_AMD ##FFLAGS += -I$(ROCM_INC_PATH) LDFLAGS = -homp -L$(ROCM_LIB_PATH) -lamdhip64 -lhsa-runtime64 else ### CPU-only without OpenMP #FFLAGS = -N1023 -O3 -hnoomp -em -ef -eT -ffree #LDFLAGS = -hnoomp ### CPU-only with OpenMP flag ... no cpu-based openmp is in the code, but I ### want to use omp_get_wtime function ... don't define USE_OPENMP_OFFLOAD FFLAGS = -N1023 -O3 -homp -em -ef -eT -ffree LDFLAGS = -homp endif endif ifeq ($(COMPILER),GCC) ifeq ($(CPU_or_GPU),GPU) FC = gfortran FFLAGS = -O3 -ffree-form -cpp -fopenmp -foffload="-march=gfx908 -lm" FFLAGS += -DUSE_OPENMP_OFFLOAD -DUSE_AMD LDFLAGS = -fopenmp -foffload="-march=gfx908 -lm" #LDFLAGS += -L$(ROCM_LIB_PATH) -lamdhip64 -lhsa-runtime64 LDFLAGS += -L$(ROCM_LIB_PATH) -lamdhip64 else ### CPU-only without OpenMP ... uses gfortran timer #FC = gfortran #FFLAGS = -O3 -ffree-form -ffree-line-length-none -cpp #LDFLAGS = ### CPU-only with OpenMP flag ... no cpu-based openmp is in the code, but I ### want to use omp_get_wtime function ... don't define USE_OPENMP_OFFLOAD FC = gfortran FFLAGS = -O3 -fopenmp -ffree-form -ffree-line-length-none -cpp LDFLAGS = -fopenmp endif endif endif F_SRC = custom_linsolve.f90 MODS = ifneq (,$(findstring USE_CUDA,$(FFLAGS))) MODS += my_cudainterfaces.f90 MODS += nvtx.f90 endif ifneq (,$(findstring USE_AMD,$(FFLAGS))) MODS += my_hipinterfaces.f90 endif MODS += global_parameters.f90 timing_functions.f90 matrix_ops.f90 OBJECTS = $(MODS:.f90=.o) $(F_SRC:.f90=.o) EXE = custom_linsolve.x # rules for makefile #$(FC) -o $@ $^ $(LDFLAGS) $(EXE): $(OBJECTS) $(FC) $(LDFLAGS) -o $@ $^ %.o:%.f90 $(FC) $(FFLAGS) -c -o $@ $< default: all all: $(EXE) clean: rm -f *.o *.mod *.x *.s clobber: rm -f *.o *.mod *.x *.s *~ Loading
Makefile_summitdeleted 100644 → 0 +0 −129 Original line number Diff line number Diff line SHELL=/bin/bash #MACHINE = Summit ### the Spock compiler flags also work on Crusher (with exception that no GCC with OpenMP Offloading on Crusher yet) MACHINE = Spock #COMPILER = Native COMPILER = GCC #CPU_or_GPU = CPU CPU_or_GPU = GPU #### Summit ifeq ($(MACHINE),Summit) ifeq ($(COMPILER),Native) ifeq ($(CPU_or_GPU),CPU) ## CPU-Only ## enable OpenMP without defining USE_OPENMP_OFFLOAD to use the omp_get_wtime ## function and this makes me use the xlf_r compiler instead of xlf FC = xlf_r FFLAGS = -O3 -qsmp=omp -qfree -qpreprocess -qtune=pwr9 -qarch=pwr9 -W@,"-v" LDFLAGS = -qsmp=omp else ## GPUs with OpenMP Offloading FC = xlcuf FFLAGS = -O3 -qfree -qpreprocess -qsmp=omp -qoffload -qcuda -qtune=pwr9 -qarch=pwr9 -qtgtarch=sm_70 -W@,"-v" FFLAGS += -DUSE_OPENMP_OFFLOAD -DUSE_CUDA LDFLAGS = -qsmp=omp -qoffload -L${OLCF_CUDA_ROOT}/lib64 -lnvToolsExt -lcudart endif endif ifeq ($(COMPILER),GCC) ifeq ($(CPU_or_GPU),GPU) FC = gfortran FFLAGS = -O3 -ffree-form -cpp -fopenmp -foffload="-lm -latomic" FFLAGS += -DUSE_OPENMP_OFFLOAD -DUSE_CUDA LDFLAGS = -fopenmp -foffload="-lm -latomic" -L${OLCF_CUDA_ROOT}/lib64 -lnvToolsExt -lcudart else FC = gfortran FFLAGS = -O3 -ffree-form -cpp LDFLAGS = endif endif endif #### Spock and Crusher (GCC option not available on Crusher yet) ifeq ($(MACHINE),Spock) ROCM_LIB_PATH=${OLCF_ROCM_ROOT}/lib ROCM_INC_PATH=${OLCF_ROCM_ROOT}/include ifeq ($(COMPILER),Native) FC = ftn ifeq ($(CPU_or_GPU),GPU) ### GPU FFLAGS = -N1023 -O3 -homp -em -ef -eT -ffree -DUSE_OPENMP_OFFLOAD -DUSE_AMD ##FFLAGS += -I$(ROCM_INC_PATH) LDFLAGS = -homp -L$(ROCM_LIB_PATH) -lamdhip64 -lhsa-runtime64 else ### CPU-only without OpenMP #FFLAGS = -N1023 -O3 -hnoomp -em -ef -eT -ffree #LDFLAGS = -hnoomp ### CPU-only with OpenMP flag ... no cpu-based openmp is in the code, but I ### want to use omp_get_wtime function ... don't define USE_OPENMP_OFFLOAD FFLAGS = -N1023 -O3 -homp -em -ef -eT -ffree LDFLAGS = -homp endif endif ifeq ($(COMPILER),GCC) ifeq ($(CPU_or_GPU),GPU) FC = gfortran FFLAGS = -O3 -ffree-form -cpp -fopenmp -foffload="-march=gfx908 -lm" FFLAGS += -DUSE_OPENMP_OFFLOAD -DUSE_AMD LDFLAGS = -fopenmp -foffload="-march=gfx908 -lm" #LDFLAGS += -L$(ROCM_LIB_PATH) -lamdhip64 -lhsa-runtime64 LDFLAGS += -L$(ROCM_LIB_PATH) -lamdhip64 else ### CPU-only without OpenMP ... uses gfortran timer #FC = gfortran #FFLAGS = -O3 -ffree-form -ffree-line-length-none -cpp #LDFLAGS = ### CPU-only with OpenMP flag ... no cpu-based openmp is in the code, but I ### want to use omp_get_wtime function ... don't define USE_OPENMP_OFFLOAD FC = gfortran FFLAGS = -O3 -fopenmp -ffree-form -ffree-line-length-none -cpp LDFLAGS = -fopenmp endif endif endif F_SRC = custom_linsolve.f90 MODS = ifneq (,$(findstring USE_CUDA,$(FFLAGS))) MODS += my_cudainterfaces.f90 MODS += nvtx.f90 endif ifneq (,$(findstring USE_AMD,$(FFLAGS))) MODS += my_hipinterfaces.f90 endif MODS += global_parameters.f90 timing_functions.f90 matrix_ops.f90 OBJECTS = $(MODS:.f90=.o) $(F_SRC:.f90=.o) EXE = custom_linsolve.x # rules for makefile #$(FC) -o $@ $^ $(LDFLAGS) $(EXE): $(OBJECTS) $(FC) $(LDFLAGS) -o $@ $^ %.o:%.f90 $(FC) $(FFLAGS) -c -o $@ $< default: all all: $(EXE) clean: rm -f *.o *.mod *.x *.s clobber: rm -f *.o *.mod *.x *.s *~