enabled SMP for sbmv and zsbmv, but only for 64bit binaries
This commit is contained in:
parent
1fad2b759f
commit
01a119abfc
|
@ -43,6 +43,13 @@
|
||||||
#include "functable.h"
|
#include "functable.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef SMP
|
||||||
|
#ifdef __64BIT__
|
||||||
|
#define SMPTEST 1
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef XDOUBLE
|
#ifdef XDOUBLE
|
||||||
#define ERROR_NAME "QSBMV "
|
#define ERROR_NAME "QSBMV "
|
||||||
#elif defined(DOUBLE)
|
#elif defined(DOUBLE)
|
||||||
|
@ -61,7 +68,7 @@ static int (*sbmv[])(BLASLONG, BLASLONG, FLOAT, FLOAT *, BLASLONG, FLOAT *, BLA
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef SMPBUG
|
#ifdef SMPTEST
|
||||||
static int (*sbmv_thread[])(BLASLONG, BLASLONG, FLOAT, FLOAT *, BLASLONG, FLOAT *, BLASLONG, FLOAT *, BLASLONG, FLOAT *, int) = {
|
static int (*sbmv_thread[])(BLASLONG, BLASLONG, FLOAT, FLOAT *, BLASLONG, FLOAT *, BLASLONG, FLOAT *, BLASLONG, FLOAT *, int) = {
|
||||||
#ifdef XDOUBLE
|
#ifdef XDOUBLE
|
||||||
qsbmv_thread_U, qsbmv_thread_L,
|
qsbmv_thread_U, qsbmv_thread_L,
|
||||||
|
@ -90,7 +97,7 @@ void NAME(char *UPLO, blasint *N, blasint *K, FLOAT *ALPHA, FLOAT *a, blasint *
|
||||||
blasint info;
|
blasint info;
|
||||||
int uplo;
|
int uplo;
|
||||||
FLOAT *buffer;
|
FLOAT *buffer;
|
||||||
#ifdef SMPBUG
|
#ifdef SMPTEST
|
||||||
int nthreads;
|
int nthreads;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -130,7 +137,7 @@ void CNAME(enum CBLAS_ORDER order,
|
||||||
FLOAT *buffer;
|
FLOAT *buffer;
|
||||||
int uplo;
|
int uplo;
|
||||||
blasint info;
|
blasint info;
|
||||||
#ifdef SMPBUG
|
#ifdef SMPTEST
|
||||||
int nthreads;
|
int nthreads;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -189,7 +196,7 @@ void CNAME(enum CBLAS_ORDER order,
|
||||||
|
|
||||||
buffer = (FLOAT *)blas_memory_alloc(1);
|
buffer = (FLOAT *)blas_memory_alloc(1);
|
||||||
|
|
||||||
#ifdef SMPBUG
|
#ifdef SMPTEST
|
||||||
nthreads = num_cpu_avail(2);
|
nthreads = num_cpu_avail(2);
|
||||||
|
|
||||||
if (nthreads == 1) {
|
if (nthreads == 1) {
|
||||||
|
@ -197,7 +204,7 @@ void CNAME(enum CBLAS_ORDER order,
|
||||||
|
|
||||||
(sbmv[uplo])(n, k, alpha, a, lda, x, incx, y, incy, buffer);
|
(sbmv[uplo])(n, k, alpha, a, lda, x, incx, y, incy, buffer);
|
||||||
|
|
||||||
#ifdef SMPBUG
|
#ifdef SMPTEST
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
(sbmv_thread[uplo])(n, k, alpha, a, lda, x, incx, y, incy, buffer, nthreads);
|
(sbmv_thread[uplo])(n, k, alpha, a, lda, x, incx, y, incy, buffer, nthreads);
|
||||||
|
|
|
@ -43,6 +43,13 @@
|
||||||
#include "functable.h"
|
#include "functable.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef SMP
|
||||||
|
#ifdef __64BIT__
|
||||||
|
#define SMPTEST 1
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef XDOUBLE
|
#ifdef XDOUBLE
|
||||||
#define ERROR_NAME "XSBMV "
|
#define ERROR_NAME "XSBMV "
|
||||||
#elif defined(DOUBLE)
|
#elif defined(DOUBLE)
|
||||||
|
@ -61,7 +68,7 @@ static int (*sbmv[])(BLASLONG, BLASLONG, FLOAT, FLOAT, FLOAT *, BLASLONG, FLOAT
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef SMPBUG
|
#ifdef SMPTEST
|
||||||
static int (*sbmv_thread[])(BLASLONG, BLASLONG, FLOAT *, FLOAT *, BLASLONG, FLOAT *, BLASLONG, FLOAT *, BLASLONG, FLOAT *, int) = {
|
static int (*sbmv_thread[])(BLASLONG, BLASLONG, FLOAT *, FLOAT *, BLASLONG, FLOAT *, BLASLONG, FLOAT *, BLASLONG, FLOAT *, int) = {
|
||||||
#ifdef XDOUBLE
|
#ifdef XDOUBLE
|
||||||
xsbmv_thread_U, xsbmv_thread_L,
|
xsbmv_thread_U, xsbmv_thread_L,
|
||||||
|
@ -90,7 +97,7 @@ void NAME(char *UPLO, blasint *N, blasint *K, FLOAT *ALPHA, FLOAT *a, blasint *
|
||||||
blasint info;
|
blasint info;
|
||||||
int uplo;
|
int uplo;
|
||||||
FLOAT *buffer;
|
FLOAT *buffer;
|
||||||
#ifdef SMPBUG
|
#ifdef SMPTEST
|
||||||
int nthreads;
|
int nthreads;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -131,7 +138,7 @@ void NAME(char *UPLO, blasint *N, blasint *K, FLOAT *ALPHA, FLOAT *a, blasint *
|
||||||
|
|
||||||
buffer = (FLOAT *)blas_memory_alloc(1);
|
buffer = (FLOAT *)blas_memory_alloc(1);
|
||||||
|
|
||||||
#ifdef SMPBUG
|
#ifdef SMPTEST
|
||||||
nthreads = num_cpu_avail(2);
|
nthreads = num_cpu_avail(2);
|
||||||
|
|
||||||
if (nthreads == 1) {
|
if (nthreads == 1) {
|
||||||
|
@ -139,7 +146,7 @@ void NAME(char *UPLO, blasint *N, blasint *K, FLOAT *ALPHA, FLOAT *a, blasint *
|
||||||
|
|
||||||
(sbmv[uplo])(n, k, alpha_r, alpha_i, a, lda, b, incx, c, incy, buffer);
|
(sbmv[uplo])(n, k, alpha_r, alpha_i, a, lda, b, incx, c, incy, buffer);
|
||||||
|
|
||||||
#ifdef SMPBUG
|
#ifdef SMPTEST
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
(sbmv_thread[uplo])(n, k, ALPHA, a, lda, b, incx, c, incy, buffer, nthreads);
|
(sbmv_thread[uplo])(n, k, ALPHA, a, lda, b, incx, c, incy, buffer, nthreads);
|
||||||
|
|
|
@ -119,7 +119,7 @@ XCOPYKERNEL = zcopy.S
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef SDOTKERNEL
|
ifndef SDOTKERNEL
|
||||||
SDOTKERNEL = dot_sse.S
|
SDOTKERNEL = ../arm/dot.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue