Browse Source

enabled SMP for sbmv and zsbmv, but only for 64bit binaries

tags/v0.2.10.rc2^2
wernsaar 12 years ago
parent
commit
01a119abfc
3 changed files with 24 additions and 10 deletions
  1. +12
    -5
      interface/sbmv.c
  2. +11
    -4
      interface/zsbmv.c
  3. +1
    -1
      kernel/x86_64/KERNEL

+ 12
- 5
interface/sbmv.c View File

@@ -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);


+ 11
- 4
interface/zsbmv.c View File

@@ -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);


+ 1
- 1
kernel/x86_64/KERNEL View File

@@ -119,7 +119,7 @@ XCOPYKERNEL = zcopy.S
endif endif


ifndef SDOTKERNEL ifndef SDOTKERNEL
SDOTKERNEL = dot_sse.S
SDOTKERNEL = ../arm/dot.c
endif endif






Loading…
Cancel
Save