Merge pull request #3045 from martin-frbg/nvidiasdk
Support NVIDIA HPC SDK 20.11 compilers on x86_64
This commit is contained in:
commit
07c5e549b2
6
Makefile
6
Makefile
|
@ -59,6 +59,9 @@ endif
|
||||||
@$(CC) --version > /dev/null 2>&1;\
|
@$(CC) --version > /dev/null 2>&1;\
|
||||||
if [ $$? -eq 0 ]; then \
|
if [ $$? -eq 0 ]; then \
|
||||||
cverinfo=`$(CC) --version | sed -n '1p'`; \
|
cverinfo=`$(CC) --version | sed -n '1p'`; \
|
||||||
|
if [ -z "$${cverinfo}" ]; then \
|
||||||
|
cverinfo=`$(CC) --version | sed -n '2p'`; \
|
||||||
|
fi; \
|
||||||
echo " C compiler ... $(C_COMPILER) (cmd & version : $${cverinfo})";\
|
echo " C compiler ... $(C_COMPILER) (cmd & version : $${cverinfo})";\
|
||||||
else \
|
else \
|
||||||
echo " C compiler ... $(C_COMPILER) (command line : $(CC))";\
|
echo " C compiler ... $(C_COMPILER) (command line : $(CC))";\
|
||||||
|
@ -67,6 +70,9 @@ ifeq ($(NOFORTRAN), $(filter 0,$(NOFORTRAN)))
|
||||||
@$(FC) --version > /dev/null 2>&1;\
|
@$(FC) --version > /dev/null 2>&1;\
|
||||||
if [ $$? -eq 0 ]; then \
|
if [ $$? -eq 0 ]; then \
|
||||||
fverinfo=`$(FC) --version | sed -n '1p'`; \
|
fverinfo=`$(FC) --version | sed -n '1p'`; \
|
||||||
|
if [ -z "$${fverinfo}" ]; then \
|
||||||
|
fverinfo=`$(FC) --version | sed -n '2p'`; \
|
||||||
|
fi; \
|
||||||
echo " Fortran compiler ... $(F_COMPILER) (cmd & version : $${fverinfo})";\
|
echo " Fortran compiler ... $(F_COMPILER) (cmd & version : $${fverinfo})";\
|
||||||
else \
|
else \
|
||||||
echo " Fortran compiler ... $(F_COMPILER) (command line : $(FC))";\
|
echo " Fortran compiler ... $(F_COMPILER) (command line : $(FC))";\
|
||||||
|
|
|
@ -181,7 +181,7 @@ endif
|
||||||
|
|
||||||
# On x86_64 build getarch with march=native unless the compiler is PGI. This is required to detect AVX512 support in getarch.
|
# On x86_64 build getarch with march=native unless the compiler is PGI. This is required to detect AVX512 support in getarch.
|
||||||
ifeq ($(HOSTARCH), x86_64)
|
ifeq ($(HOSTARCH), x86_64)
|
||||||
ifeq ($(findstring pgcc,$(HOSTCC)),)
|
ifeq ($(findstring pgcc,$(HOSTCC))$(findstring nvc,$(HOSTCC)),)
|
||||||
GETARCH_FLAGS += -march=native
|
GETARCH_FLAGS += -march=native
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
@ -847,9 +847,19 @@ endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(C_COMPILER), PGI)
|
ifeq ($(C_COMPILER), PGI)
|
||||||
|
PGCVERSIONGT20 := $(shell expr `$(CC) --version|sed -n "2p" |sed -e "s/[^0-9.]//g" |cut -d "." -f 1` \> 20)
|
||||||
|
PGCVERSIONGTEQ20 := $(shell expr `$(CC) --version|sed -n "2p" |sed -e "s/[^0-9.]//g" |cut -d "." -f 1` \>= 20)
|
||||||
|
PGCMINORVERSIONGE11 := $(shell expr `$(CC) --version|sed -n "2p" |sed -e "s/[^0-9.]//g" |cut -c 4-5` == 11)
|
||||||
|
PGCVERSIONCHECK := $(PGCVERSIONGT20)$(PGCVERSIONEQ20)$(PGCMINORVERSIONGE11)
|
||||||
|
ifeq ($(PGCVERSIONCHECK), $(filter $(PGCVERSIONCHECK), 110 111 011))
|
||||||
|
NEWPGI := 1
|
||||||
|
endif
|
||||||
ifdef BINARY64
|
ifdef BINARY64
|
||||||
ifeq ($(ARCH), x86_64)
|
ifeq ($(ARCH), x86_64)
|
||||||
CCOMMON_OPT += -tp p7-64 -D__MMX__ -Mnollvm
|
CCOMMON_OPT += -tp p7-64
|
||||||
|
ifneq ($(NEWPGI),1)
|
||||||
|
CCOMMON_OPT += -D__MMX__ -Mnollvm
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
ifeq ($(ARCH), power)
|
ifeq ($(ARCH), power)
|
||||||
ifeq ($(CORE), POWER8)
|
ifeq ($(CORE), POWER8)
|
||||||
|
@ -1040,7 +1050,7 @@ endif
|
||||||
else
|
else
|
||||||
FCOMMON_OPT += -tp p7
|
FCOMMON_OPT += -tp p7
|
||||||
endif
|
endif
|
||||||
FCOMMON_OPT += -Mrecursive
|
FCOMMON_OPT += -Mrecursive -Kieee
|
||||||
ifeq ($(USE_OPENMP), 1)
|
ifeq ($(USE_OPENMP), 1)
|
||||||
FCOMMON_OPT += -mp
|
FCOMMON_OPT += -mp
|
||||||
endif
|
endif
|
||||||
|
|
11
f_check
11
f_check
|
@ -32,7 +32,7 @@ if ($compiler eq "") {
|
||||||
"xlf95", "xlf90", "xlf",
|
"xlf95", "xlf90", "xlf",
|
||||||
"ppuf77", "ppuf95", "ppuf90", "ppuxlf",
|
"ppuf77", "ppuf95", "ppuf90", "ppuxlf",
|
||||||
"pathf90", "pathf95",
|
"pathf90", "pathf95",
|
||||||
"pgf95", "pgf90", "pgf77",
|
"pgf95", "pgf90", "pgf77", "pgfortran", "nvfortran",
|
||||||
"flang", "egfortran",
|
"flang", "egfortran",
|
||||||
"ifort");
|
"ifort");
|
||||||
|
|
||||||
|
@ -64,7 +64,6 @@ if ($compiler eq "") {
|
||||||
if (!$?) {
|
if (!$?) {
|
||||||
|
|
||||||
$data = `$compiler -O2 -S ftest.f > /dev/null 2>&1 && cat ftest.s && rm -f ftest.s`;
|
$data = `$compiler -O2 -S ftest.f > /dev/null 2>&1 && cat ftest.s && rm -f ftest.s`;
|
||||||
|
|
||||||
if ($data =~ /zhoge_/) {
|
if ($data =~ /zhoge_/) {
|
||||||
$bu = "_";
|
$bu = "_";
|
||||||
}
|
}
|
||||||
|
@ -87,7 +86,7 @@ if ($compiler eq "") {
|
||||||
if ($compiler =~ /flang/) {
|
if ($compiler =~ /flang/) {
|
||||||
$vendor = FLANG;
|
$vendor = FLANG;
|
||||||
$openmp = "-fopenmp";
|
$openmp = "-fopenmp";
|
||||||
} elsif ($compiler =~ /pgf/) {
|
} elsif ($compiler =~ /pgf/ || $compiler =~ /nvf/) {
|
||||||
$vendor = PGI;
|
$vendor = PGI;
|
||||||
$openmp = "-mp";
|
$openmp = "-mp";
|
||||||
} else {
|
} else {
|
||||||
|
@ -123,7 +122,7 @@ if ($compiler eq "") {
|
||||||
$openmp = "-mp";
|
$openmp = "-mp";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($data =~ /PGF/) {
|
if ($data =~ /PGF/ || $data =~ /NVF/) {
|
||||||
$vendor = PGI;
|
$vendor = PGI;
|
||||||
$openmp = "-mp";
|
$openmp = "-mp";
|
||||||
}
|
}
|
||||||
|
@ -177,7 +176,7 @@ if ($compiler eq "") {
|
||||||
$openmp = "-mp";
|
$openmp = "-mp";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($compiler =~ /pgf/) {
|
if ($compiler =~ /pgf/ || $compiler =~ /nvf/) {
|
||||||
$vendor = PGI;
|
$vendor = PGI;
|
||||||
$bu = "_";
|
$bu = "_";
|
||||||
$openmp = "-mp";
|
$openmp = "-mp";
|
||||||
|
@ -330,7 +329,7 @@ if ($link ne "") {
|
||||||
$flags =~ s/\@/\,/g;
|
$flags =~ s/\@/\,/g;
|
||||||
$linker_L .= "-Wl,". $flags . " " ;
|
$linker_L .= "-Wl,". $flags . " " ;
|
||||||
}
|
}
|
||||||
if ($flags =~ /-lgomp/ && $ENV{"CC"} =~ /clang/) {
|
if ($flags =~ /-lgomp/ && $CC =~ /clang/) {
|
||||||
$flags = "-lomp";
|
$flags = "-lomp";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ ifeq ($(TARGET_CORE), COOPERLAKE)
|
||||||
ifeq ($(GCCVERSIONGTEQ10), 1)
|
ifeq ($(GCCVERSIONGTEQ10), 1)
|
||||||
override CFLAGS += -march=cooperlake
|
override CFLAGS += -march=cooperlake
|
||||||
else
|
else
|
||||||
override CFLAGS += -march=skylake-avx512
|
override CFLAGS += -march=skylake-avx512 -mavx512f
|
||||||
endif
|
endif
|
||||||
ifeq ($(OSNAME), CYGWIN_NT)
|
ifeq ($(OSNAME), CYGWIN_NT)
|
||||||
override CFLAGS += -fno-asynchronous-unwind-tables
|
override CFLAGS += -fno-asynchronous-unwind-tables
|
||||||
|
@ -47,7 +47,7 @@ ifeq ($(TARGET_CORE), COOPERLAKE)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
else ifeq ($(TARGET_CORE), SKYLAKEX)
|
else ifeq ($(TARGET_CORE), SKYLAKEX)
|
||||||
override CFLAGS += -DBUILD_KERNEL -DTABLE_NAME=gotoblas_$(TARGET_CORE) -march=skylake-avx512
|
override CFLAGS += -DBUILD_KERNEL -DTABLE_NAME=gotoblas_$(TARGET_CORE) -march=skylake-avx512 -mavx512f
|
||||||
ifeq ($(OSNAME), CYGWIN_NT)
|
ifeq ($(OSNAME), CYGWIN_NT)
|
||||||
override CFLAGS += -fno-asynchronous-unwind-tables
|
override CFLAGS += -fno-asynchronous-unwind-tables
|
||||||
endif
|
endif
|
||||||
|
|
Loading…
Reference in New Issue