From eadb2c7371f4eaeace2463771ba7584530480590 Mon Sep 17 00:00:00 2001 From: ESCOBAR Juan <escj@nuwa> Date: Mon, 14 Sep 2020 15:14:47 +0200 Subject: [PATCH] Juan 14/09/2020: Rules.LXnvhpc2005.mk , add support of arch CPU type = TP & MANAGEDO2/OPENACCO2 optlevel <=> without "-g" --- src/Rules.LXnvhpc2005.mk | 63 +++++++++++++++++++++++++++++----------- 1 file changed, 46 insertions(+), 17 deletions(-) diff --git a/src/Rules.LXnvhpc2005.mk b/src/Rules.LXnvhpc2005.mk index 9aafd7a10..8f9f2ab8f 100644 --- a/src/Rules.LXnvhpc2005.mk +++ b/src/Rules.LXnvhpc2005.mk @@ -9,13 +9,18 @@ ########################################################## #OBJDIR_PATH=${WORKDIR} # +# Processor type +#TP= -tp=sandybridge +#TP= -tp=px +TP= -tp=p7-64 +# #Version of CUDA #(8.0 at least if compute capability >= 6.0) -CUDALEVEL=cuda10.2 +CUDALEVEL=cuda10.1 # #Compute capability of GPU # -OPT_CPTCAP=cc35,cc50 +OPT_CPTCAP=cc35,cc50,cc70 #Aeropc45: cc50 #Nuwa: cc35 #Ouessant Firestone K80: cc35 @@ -30,7 +35,7 @@ OPT_INFO = -Minfo=accel # #PW: if -Ktrap=fp: nvprof/pgprof do not work OPT_BASE = -Ktrap=fp ... #PW: -g: big impact on performance -OPT_BASE = -Mbackslash -Mextend -Kieee -nofma +OPT_BASE = $(TP) -Mbackslash -Mextend -Kieee -nofma -Mallocatable=95 # OPT_PERF0 = -O0 OPT_PERF1 = -O1 @@ -39,7 +44,7 @@ OPT_PERF2 = -O2 OPT_MANAGED = -Mframe -Mnostack_arrays -Mallocatable=95 -acc=host,gpu -gpu=nofma,$(OPT_CPTCAP),$(CUDALEVEL),managed $(OPT_INFO) $(OPT_PROF) OPT_MULTICORE = -acc=multicore $(OPT_INFO) $(OPT_PROF) OPT_NOOPENACC = -acc=host $(OPT_INFO) $(OPT_PROF) -OPT_OPENACC = -Mnostack_arrays -Mallocatable=95 -acc=host,gpu -gpu=nofma,$(OPT_CPTCAP),$(CUDALEVEL) $(OPT_INFO) $(OPT_PROF) +OPT_OPENACC = -Mnostack_arrays -Mnostack_arrays -Mallocatable=95 -acc=host,gpu -gpu=nofma,$(OPT_CPTCAP),$(CUDALEVEL) $(OPT_INFO) $(OPT_PROF) # OPT_CHECK = -C #-Mchkfpstk -Mchkptr OPT_I8 = -i8 @@ -78,8 +83,6 @@ ifeq "$(OPTLEVEL)" "DEBUG" OPT = -g $(OPT_BASE) $(OPT_PERF0) $(OPT_CHECK) OPT0 = -g $(OPT_BASE) $(OPT_PERF0) $(OPT_CHECK) OPT_NOCB = -g $(OPT_BASE) $(OPT_PERF0) -OBJS_DWARF3 = spll_model_n.o -$(OBJS_DWARF3) : OPT = -g -Mdwarf2 $(OPT_BASE) $(OPT_PERF0) $(OPT_CHECK) endif # ifeq "$(OPTLEVEL)" "MANAGED" @@ -92,6 +95,16 @@ OBJS_REPROD= spll_mode_sum_ll.o $(OBJS_REPROD) : OPT = $(OPT_BASE) $(OPT_MANAGED) $(OPT_PERF2) -Mvect=nosimd -Minfo=all -g endif # +ifeq "$(OPTLEVEL)" "MANAGEDO2" +CPPFLAGS += -DMNH_OPENACC +OPT = $(OPT_BASE) $(OPT_MANAGED) $(OPT_PERF2) +OPT0 = $(OPT_BASE) $(OPT_MANAGED) $(OPT_PERF0) +OPT_NOCB = $(OPT_BASE) $(OPT_MANAGED) $(OPT_PERF2) +CXXFLAGS = -acc -Kieee -Mnofma $(OPT_MANAGED) -gpu=nofma +OBJS_REPROD= spll_mode_sum_ll.o +$(OBJS_REPROD) : OPT = $(OPT_BASE) $(OPT_MANAGED) $(OPT_PERF2) -Mvect=nosimd -Minfo=all +endif +# ifeq "$(OPTLEVEL)" "MULTICORE" CPPFLAGS += -DMNH_OPENACC OPT = $(OPT_BASE) $(OPT_MULTICORE) @@ -112,12 +125,12 @@ $(OBJS_REPROD) : OPT = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2) -Mvect=nosimd -Mi endif ifeq "$(OPTLEVEL)" "OPENACCO2" CPPFLAGS += -DMNH_OPENACC -OPT = -g $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2) -OPT0 = -g $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF0) -OPT_NOCB = -g $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2) -CXXFLAGS = -g -acc -Kieee -Mnofma $(OPT_OPENACC) +OPT = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2) +OPT0 = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF0) +OPT_NOCB = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2) +CXXFLAGS = -acc -Kieee -Mnofma $(OPT_OPENACC) OBJS_REPROD= spll_mode_sum_ll.o -$(OBJS_REPROD) : OPT = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2) -Mvect=nosimd -Minfo=all -g +$(OBJS_REPROD) : OPT = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2) -Mvect=nosimd -Minfo=all endif # ifeq "$(OPTLEVEL)" "OPENACCDEFONLY" @@ -125,9 +138,9 @@ CPPFLAGS += -DMNH_OPENACC -D_FAKEOPENACC OPT = $(OPT_BASE) $(OPT_NOOPENACC) $(OPT_PERF2) OPT0 = $(OPT_BASE) $(OPT_NOOPENACC) $(OPT_PERF0) OPT_NOCB = $(OPT_BASE) $(OPT_NOOPENACC) $(OPT_PERF2) -CXXFLAGS = -Kieee -Mnofma $(OPT_NOOPENACC) +CXXFLAGS = -Kieee -Mnofma $(OPT_NOOPENACC) OBJS_REPROD= spll_mode_sum_ll.o -$(OBJS_REPROD) : OPT = $(OPT_BASE) $(OPT_NOOPENACC) $(OPT_PERF2) -Mvect=nosimd -Minfo=all -g +$(OBJS_REPROD) : OPT = $(OPT_BASE) $(OPT_NOOPENACC) $(OPT_PERF2) -Mvect=nosimd -Minfo=all endif # ifeq "$(OPTLEVEL)" "NOOPENACC" @@ -141,6 +154,8 @@ $(OBJS_REPROD) : OPT = $(OPT_BASE) $(OPT_NOOPENACC) $(OPT_PERF2) -Mvect=nosimd - endif # CC = pgcc +CXXFLAGS += $(TP) +CFLAGS += $(TP) FC = pgf90 ifeq "$(VER_MPI)" "MPIAUTO" F90 = mpif90 @@ -176,7 +191,14 @@ CPPFLAGS_MNH += -Uvector -Upixel TARGET_GRIBEX=linux CNAME_GRIBEX=_pgf77 GRIBAPI_CONF="CPP=cpp" +# +# Netcdf/HDF5 flags +# +#HDF_CONF= CXXFLAGS=$(TP) +HDF_OPT ?= $(TP) +NETCDF_OPT ?= $(TP) CDF_CONF="CPP=cpp" +HDF_CONF="CPP=cpp" # # BITREP flags # @@ -220,11 +242,14 @@ include Makefile.MESONH.mk # etc ... # # # ########################################################## -OBJS_O1= spll_modd_isba_n.o spll_mode_construct_ll.o \ +OBJS_O1 += spll_modd_isba_n.o spll_mode_construct_ll.o \ spll_init_surf_atm_n.o spll_mode_scatter_ll.o spll_convert_patch_teb.o \ spll_define_mask_n.o spll_del1dfield_ll.o spll_mode_fm.o spll_mode_gather_ll.o \ spll_convect_updraft.o spll_convect_updraft_shal.o \ - spll_mode_dustopt.o spll_mode_saltopt.o + spll_mode_dustopt.o spll_mode_saltopt.o \ + spll_aeroopt_get.o spll_write_lfifm1_for_diag_supp.o spll_write_lfifm1_for_diag.o spll_write_lfifm_n.o \ + +#spll_unpack_1d_2d_from2d.o #spll_pack_isba_patch_n.o #spll_phys_param_n.o $(OBJS_O1) : OPT = $(OPT_BASE) $(OPT_PERF1) @@ -232,9 +257,13 @@ $(OBJS_O1) : OPT = $(OPT_BASE) $(OPT_PERF1) OBJS_O0= spll_mode_mppdb.o \ spll_fft55.o spll_fft.o spll_flat_invz.o \ spll_mode_repro_sum.o \ -# spll_fast_terms.o + spll_modd_les_n.o + +# spll_fast_terms.o +# spll_modd_ch_solver_n.o \ +# spll_modd_dummy_gr_field_n.o spll_modd_dyn_n.o # spll_mode_sum_ll.o -$(OBJS_O0) : OPT = $(OPT_BASE) $(OPT_PERF0) +$(OBJS_O0) : OPT = -g $(OPT_BASE) $(OPT_PERF0) OBJS_O2= spll_mode_device.o $(OBJS_O2) : OPT = $(OPT_BASE) $(OPT_OPENACC) $(OPT_PERF2) -- GitLab