From 37e1da82ff1e0fc083ae025bb3ef2021191a4c73 Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Tue, 31 May 2022 15:15:36 +0200 Subject: [PATCH] CONFIG: add ARM64 nvidia rules CONFIG: revise Pstream/OpenFOAM linkage (nvidia) - double-pass linkage seems to be unnecessary --- src/Allwmake | 2 +- wmake/rules/linuxARM64Nvidia/c | 15 +++++++++++++++ wmake/rules/linuxARM64Nvidia/c++ | 17 +++++++++++++++++ wmake/rules/linuxARM64Nvidia/c++Debug | 2 ++ wmake/rules/linuxARM64Nvidia/c++Opt | 2 ++ wmake/rules/linuxARM64Nvidia/c++Prof | 2 ++ wmake/rules/linuxARM64Nvidia/cDebug | 2 ++ wmake/rules/linuxARM64Nvidia/cOpt | 2 ++ wmake/rules/linuxARM64Nvidia/cProf | 2 ++ wmake/rules/linuxARM64Nvidia/general | 13 +++++++++++++ wmake/rules/linuxARM64Nvidia/mplibOPENMPI | 3 +++ 11 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 wmake/rules/linuxARM64Nvidia/c create mode 100644 wmake/rules/linuxARM64Nvidia/c++ create mode 100644 wmake/rules/linuxARM64Nvidia/c++Debug create mode 100644 wmake/rules/linuxARM64Nvidia/c++Opt create mode 100644 wmake/rules/linuxARM64Nvidia/c++Prof create mode 100644 wmake/rules/linuxARM64Nvidia/cDebug create mode 100644 wmake/rules/linuxARM64Nvidia/cOpt create mode 100644 wmake/rules/linuxARM64Nvidia/cProf create mode 100644 wmake/rules/linuxARM64Nvidia/general create mode 100644 wmake/rules/linuxARM64Nvidia/mplibOPENMPI diff --git a/src/Allwmake b/src/Allwmake index 62983dcf1f5..ff447a10756 100755 --- a/src/Allwmake +++ b/src/Allwmake @@ -30,7 +30,7 @@ OpenFOAM/Alltouch -check 2>/dev/null OSspecific/"${WM_OSTYPE:-POSIX}"/Allwmake $targetType $* case "$WM_COMPILER" in -(Mingw* | Nvidia*) +(Mingw*) # Pstream/OpenFOAM cyclic dependency # 1st pass: link as Pstream as single .o object WM_MPLIB=dummy Pstream/Allwmake libo diff --git a/wmake/rules/linuxARM64Nvidia/c b/wmake/rules/linuxARM64Nvidia/c new file mode 100644 index 00000000000..b1447dd9fec --- /dev/null +++ b/wmake/rules/linuxARM64Nvidia/c @@ -0,0 +1,15 @@ +#------------------------------------------------------------------------------ +include $(GENERAL_RULES)/Nvidia/c + +cARCH = + +# Compile option is non-mandatory, but must be non-empty +sinclude $(DEFAULT_RULES)/c$(WM_COMPILE_OPTION) + +cFLAGS = $(cARCH) $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC + +ctoo = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $< -o $@ + +include $(GENERAL_RULES)/Nvidia/link-c + +#------------------------------------------------------------------------------ diff --git a/wmake/rules/linuxARM64Nvidia/c++ b/wmake/rules/linuxARM64Nvidia/c++ new file mode 100644 index 00000000000..e3e45d17886 --- /dev/null +++ b/wmake/rules/linuxARM64Nvidia/c++ @@ -0,0 +1,17 @@ +#------------------------------------------------------------------------------ +include $(GENERAL_RULES)/Nvidia/c++ + +c++ARCH = + +include $(DEFAULT_RULES)/c++$(WM_COMPILE_OPTION) + +c++FLAGS = $(c++ARCH) $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) $(LIB_HEADER_DIRS) -fPIC + +Ctoo = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $< -o $@ +cctoo = $(Ctoo) +cpptoo = $(Ctoo) +cxxtoo = $(Ctoo) + +include $(GENERAL_RULES)/Nvidia/link-c++ + +#------------------------------------------------------------------------------ diff --git a/wmake/rules/linuxARM64Nvidia/c++Debug b/wmake/rules/linuxARM64Nvidia/c++Debug new file mode 100644 index 00000000000..48f0b6643e1 --- /dev/null +++ b/wmake/rules/linuxARM64Nvidia/c++Debug @@ -0,0 +1,2 @@ +c++DBUG = -g -DFULLDEBUG +c++OPT = -O0 diff --git a/wmake/rules/linuxARM64Nvidia/c++Opt b/wmake/rules/linuxARM64Nvidia/c++Opt new file mode 100644 index 00000000000..2aedabd6280 --- /dev/null +++ b/wmake/rules/linuxARM64Nvidia/c++Opt @@ -0,0 +1,2 @@ +c++DBUG = +c++OPT = -O3 diff --git a/wmake/rules/linuxARM64Nvidia/c++Prof b/wmake/rules/linuxARM64Nvidia/c++Prof new file mode 100644 index 00000000000..3bda4dad55e --- /dev/null +++ b/wmake/rules/linuxARM64Nvidia/c++Prof @@ -0,0 +1,2 @@ +c++DBUG = -pg +c++OPT = -O2 diff --git a/wmake/rules/linuxARM64Nvidia/cDebug b/wmake/rules/linuxARM64Nvidia/cDebug new file mode 100644 index 00000000000..7b7adf10dea --- /dev/null +++ b/wmake/rules/linuxARM64Nvidia/cDebug @@ -0,0 +1,2 @@ +cDBUG = -g -DFULLDEBUG +cOPT = -O0 diff --git a/wmake/rules/linuxARM64Nvidia/cOpt b/wmake/rules/linuxARM64Nvidia/cOpt new file mode 100644 index 00000000000..17318709f1f --- /dev/null +++ b/wmake/rules/linuxARM64Nvidia/cOpt @@ -0,0 +1,2 @@ +cDBUG = +cOPT = -O3 diff --git a/wmake/rules/linuxARM64Nvidia/cProf b/wmake/rules/linuxARM64Nvidia/cProf new file mode 100644 index 00000000000..ca3ac9bf5f0 --- /dev/null +++ b/wmake/rules/linuxARM64Nvidia/cProf @@ -0,0 +1,2 @@ +cDBUG = -pg +cOPT = -O2 diff --git a/wmake/rules/linuxARM64Nvidia/general b/wmake/rules/linuxARM64Nvidia/general new file mode 100644 index 00000000000..5cfb798fac4 --- /dev/null +++ b/wmake/rules/linuxARM64Nvidia/general @@ -0,0 +1,13 @@ +CPP = cpp -traditional-cpp $(GFLAGS) + +include $(GENERAL_RULES)/standard +## include $(GENERAL_RULES)/Pgi/openmp + +ifneq (,$(findstring ~openmp,$(WM_COMPILE_CONTROL))) + include $(GENERAL_RULES)/no-openmp +endif + +include $(DEFAULT_RULES)/c +include $(DEFAULT_RULES)/c++ + +# ----------------------------------------------------------------------------- diff --git a/wmake/rules/linuxARM64Nvidia/mplibOPENMPI b/wmake/rules/linuxARM64Nvidia/mplibOPENMPI new file mode 100644 index 00000000000..0faf49ed1e5 --- /dev/null +++ b/wmake/rules/linuxARM64Nvidia/mplibOPENMPI @@ -0,0 +1,3 @@ +PFLAGS = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX +PINC = -I$(MPI_ARCH_PATH)/include +PLIBS = -L$(MPI_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) -L$(MPI_ARCH_PATH)/lib -lmpi -- GitLab