Browse Source

Use BLAS rather than CBLAS in test_fork.c

This is handy for people not lapack.
pull/1626/head
Craig Donner 8 years ago
parent
commit
f4f1107325
3 changed files with 13 additions and 13 deletions
  1. +0
    -2
      utest/CMakeLists.txt
  2. +0
    -2
      utest/Makefile
  3. +13
    -9
      utest/test_fork.c

+ 0
- 2
utest/CMakeLists.txt View File

@@ -25,7 +25,6 @@ endif ()


# known to hang with the native Windows and Android threads # known to hang with the native Windows and Android threads
# FIXME needs checking if this works on any of the other platforms # FIXME needs checking if this works on any of the other platforms
if (NOT NO_CBLAS)
if (NOT USE_OPENMP) if (NOT USE_OPENMP)
if (OS_CYGWIN_NT OR OS_LINUX) if (OS_CYGWIN_NT OR OS_LINUX)
set(OpenBLAS_utest_src set(OpenBLAS_utest_src
@@ -34,7 +33,6 @@ set(OpenBLAS_utest_src
) )
endif() endif()
endif() endif()
endif()


if (NOT NO_LAPACK) if (NOT NO_LAPACK)
set(OpenBLAS_utest_src set(OpenBLAS_utest_src


+ 0
- 2
utest/Makefile View File

@@ -17,13 +17,11 @@ endif


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


all : run_test all : run_test




+ 13
- 9
utest/test_fork.c View File

@@ -13,9 +13,9 @@ met:
notice, this list of conditions and the following disclaimer in notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the the documentation and/or other materials provided with the
distribution. distribution.
3. Neither the name of the OpenBLAS project nor the names of
its contributors may be used to endorse or promote products
derived from this software without specific prior written
3. Neither the name of the OpenBLAS project nor the names of
its contributors may be used to endorse or promote products
derived from this software without specific prior written
permission. permission.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
@@ -48,11 +48,13 @@ void* xmalloc(size_t n)
} }
} }


void check_dgemm(double *a, double *b, double *result, double *expected, int n)
void check_dgemm(double *a, double *b, double *result, double *expected, blasint n)
{ {
char trans1 = 'T';
char trans2 = 'N';
double zerod = 0, oned = 1;
int i; int i;
cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, n, n, n,
1.0, a, n, b, n, 0.0, result, n);
BLASFUNC(dgemm)(&trans1, &trans2, &n, &n, &n, &oned, a, &n, b, &n, &zerod, result, &n);
for(i = 0; i < n * n; ++i) { for(i = 0; i < n * n; ++i) {
ASSERT_DBL_NEAR_TOL(expected[i], result[i], DOUBLE_EPS); ASSERT_DBL_NEAR_TOL(expected[i], result[i], DOUBLE_EPS);
} }
@@ -60,7 +62,7 @@ void check_dgemm(double *a, double *b, double *result, double *expected, int n)


CTEST(fork, safety) CTEST(fork, safety)
{ {
int n = 1000;
blasint n = 1000;
int i; int i;


double *a, *b, *c, *d; double *a, *b, *c, *d;
@@ -84,8 +86,10 @@ CTEST(fork, safety)


// Compute a DGEMM product in the parent process prior to forking to // Compute a DGEMM product in the parent process prior to forking to
// ensure that the OpenBLAS thread pool is initialized. // ensure that the OpenBLAS thread pool is initialized.
cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, n, n, n,
1.0, a, n, b, n, 0.0, c, n);
char trans1 = 'T';
char trans2 = 'N';
double zerod = 0, oned = 1;
BLASFUNC(dgemm)(&trans1, &trans2, &n, &n, &n, &oned, a, &n, b, &n, &zerod, c, &n);


fork_pid = fork(); fork_pid = fork();
if (fork_pid == -1) { if (fork_pid == -1) {


Loading…
Cancel
Save