Browse Source

Merge 806073ccbc into 06c09deee9

pull/4080/merge
aitap GitHub 9 months ago
parent
commit
96210915c8
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
5 changed files with 33 additions and 3 deletions
  1. +10
    -0
      c_check
  2. +10
    -0
      c_check.pl
  3. +2
    -0
      ctest3.c
  4. +4
    -0
      driver/others/blas_server_omp.c
  5. +7
    -3
      utest/Makefile

+ 10
- 0
c_check View File

@@ -412,6 +412,14 @@ fi

[ "$USE_OPENMP" != 1 ] && openmp=''

have_omp_pause_resource_all=0
if [ "$USE_OPENMP" = 1 ]; then
if $compiler_name $flags $openmp -o ctest3 ctest3.c; then
have_omp_pause_resource_all=1
fi
rm -f ctest3.o ctest3 ctest3.exe
fi

linker_L=""
linker_l=""
linker_a=""
@@ -501,6 +509,7 @@ done
[ "$oldgcc" -eq 1 ] && printf "OLDGCC=1\n"
[ "$no_lsx" -eq 1 ] && printf "NO_LSX=1\n"
[ "$no_lasx" -eq 1 ] && printf "NO_LASX=1\n"
[ "$have_omp_pause_resource_all" -eq 1 ] && printf "HAVE_OMP_PAUSE_RESOURCE_ALL=1\n"
} >> "$makefile"

os=`echo "$os" | tr '[[:lower:]]' '[[:upper:]]'/ `
@@ -518,6 +527,7 @@ compiler=`echo "$compiler" | tr '[[:lower:]]' '[[:upper:]]' `
[ "$c11_atomics" -eq 1 ] && printf "#define HAVE_C11\t1\n"
[ "$no_lsx" -eq 1 ] && printf "#define NO_LSX\t1\n"
[ "$no_lasx" -eq 1 ] && printf "#define NO_LASX\t1\n"
[ "$have_omp_pause_resource_all" -eq 1 ] && printf "#define HAVE_OMP_PAUSE_RESOURCE_ALL\t1\n"
} >> "$config"




+ 10
- 0
c_check.pl View File

@@ -394,6 +394,14 @@ $cross = 0 if (($os eq "Android") && ($hostos eq "Linux") && ($ENV{TERMUX_APP_PI

$openmp = "" if $ENV{USE_OPENMP} != 1;

$have_omp_pause_resource_all=0;
if ($ENV{USE_OPENMP} == 1) {
if (system("$compiler_name $flags $openmp -o ctest3 ctest3.c") == 0) {
$have_omp_pause_resource_all=1;
}
unlink "ctest3.o", "ctest3", "ctest3.exe";
}

$linker_L = "";
$linker_l = "";
$linker_a = "";
@@ -472,6 +480,7 @@ print MAKEFILE "NO_AVX2=1\n" if $no_avx2 eq 1;
print MAKEFILE "OLDGCC=1\n" if $oldgcc eq 1;
print MAKEFILE "NO_LSX=1\n" if $no_lsx eq 1;
print MAKEFILE "NO_LASX=1\n" if $no_lasx eq 1;
print MAKEFILE "HAVE_OMP_PAUSE_RESOURCE_ALL=1\n" if $have_omp_pause_resource_all eq 1;

$os =~ tr/[a-z]/[A-Z]/;
$architecture =~ tr/[a-z]/[A-Z]/;
@@ -487,6 +496,7 @@ print CONFFILE "#define HAVE_MSA\t1\n" if $have_msa eq 1;
print CONFFILE "#define HAVE_C11\t1\n" if $c11_atomics eq 1;
print CONFFILE "#define NO_LSX\t1\n" if $no_lsx eq 1;
print CONFFILE "#define NO_LASX\t1\n" if $no_lasx eq 1;
print CONFFILE "#define HAVE_OMP_PAUSE_RESOURCE_ALL\t1\n" if $have_omp_pause_resource_all eq 1;


if ($os eq "LINUX") {


+ 2
- 0
ctest3.c View File

@@ -0,0 +1,2 @@
#include <omp.h>
int main(void) { return omp_pause_resource_all(omp_pause_hard); }

+ 4
- 0
driver/others/blas_server_omp.c View File

@@ -48,6 +48,7 @@

#else

#include <omp.h>
#ifndef likely
#ifdef __GNUC__
#define likely(x) __builtin_expect(!!(x), 1)
@@ -172,6 +173,9 @@ int BLASFUNC(blas_thread_shutdown)(void){
}
}
}
#if HAVE_OMP_PAUSE_RESOURCE_ALL
omp_pause_resource_all(omp_pause_hard);
#endif

return 0;
}


+ 7
- 3
utest/Makefile View File

@@ -44,10 +44,14 @@ endif
#this does not work with OpenMP nor with native Windows or Android threads
# FIXME TBD if this works on OSX, SunOS, POWER and zarch
ifeq ($(OSNAME), $(filter $(OSNAME),Linux CYGWIN_NT))
ifneq ($(USE_OPENMP), 1)
OBJS += test_fork.o
ifeq ($(USE_OPENMP), 1)
ifeq ($(HAVE_OMP_PAUSE_RESOURCE_ALL), 1)
OBJS += test_fork.o
endif
OBJS += test_post_fork.o
else
OBJS += test_fork.o
endif
OBJS += test_post_fork.o
endif

ifeq ($(C_COMPILER), PGI)


Loading…
Cancel
Save