Browse Source

Merge pull request #759 from jeromerobert/bug742

Bug742
tags/v0.2.16.rc1
Zhang Xianyi 9 years ago
parent
commit
e382713423
4 changed files with 8 additions and 35 deletions
  1. +3
    -16
      interface/gemv.c
  2. +1
    -1
      interface/ger.c
  3. +3
    -17
      interface/zgemv.c
  4. +1
    -1
      interface/zger.c

+ 3
- 16
interface/gemv.c View File

@@ -82,9 +82,6 @@ void NAME(char *TRANS, blasint *M, blasint *N,
int buffer_size;
#ifdef SMP
int nthreads;
int nthreads_max;
int nthreads_avail;
double MNK;
#endif

int (*gemv[])(BLASLONG, BLASLONG, BLASLONG, FLOAT, FLOAT *, BLASLONG, FLOAT * , BLASLONG, FLOAT *, BLASLONG, FLOAT *) = {
@@ -139,9 +136,6 @@ void CNAME(enum CBLAS_ORDER order,
blasint info, t;
#ifdef SMP
int nthreads;
int nthreads_max;
int nthreads_avail;
double MNK;
#endif

int (*gemv[])(BLASLONG, BLASLONG, BLASLONG, FLOAT, FLOAT *, BLASLONG, FLOAT * , BLASLONG, FLOAT *, BLASLONG, FLOAT *) = {
@@ -226,17 +220,10 @@ void CNAME(enum CBLAS_ORDER order,

#ifdef SMP

nthreads_max = num_cpu_avail(2);
nthreads_avail = nthreads_max;

MNK = (double) m * (double) n;
if ( MNK <= (24.0 * 24.0 * (double) (GEMM_MULTITHREAD_THRESHOLD*GEMM_MULTITHREAD_THRESHOLD) ) )
nthreads_max = 1;

if ( nthreads_max > nthreads_avail )
nthreads = nthreads_avail;
if ( 1L * m * n < 2304L * GEMM_MULTITHREAD_THRESHOLD )
nthreads = 1;
else
nthreads = nthreads_max;
nthreads = num_cpu_avail(2);

if (nthreads == 1) {
#endif


+ 1
- 1
interface/ger.c View File

@@ -175,7 +175,7 @@ void CNAME(enum CBLAS_ORDER order,

#ifdef SMPTEST
// Threshold chosen so that speed-up is > 1 on a Xeon E5-2630
if(1L * m * n > 24L * GEMM_MULTITHREAD_THRESHOLD)
if(1L * m * n > 2048L * GEMM_MULTITHREAD_THRESHOLD)
nthreads = num_cpu_avail(2);
else
nthreads = 1;


+ 3
- 17
interface/zgemv.c View File

@@ -79,9 +79,6 @@ void NAME(char *TRANS, blasint *M, blasint *N,
FLOAT *buffer;
#ifdef SMP
int nthreads;
int nthreads_max;
int nthreads_avail;
double MNK;
#endif

int (*gemv[])(BLASLONG, BLASLONG, BLASLONG, FLOAT, FLOAT, FLOAT *, BLASLONG,
@@ -148,9 +145,6 @@ void CNAME(enum CBLAS_ORDER order,
blasint info, t;
#ifdef SMP
int nthreads;
int nthreads_max;
int nthreads_avail;
double MNK;
#endif

int (*gemv[])(BLASLONG, BLASLONG, BLASLONG, FLOAT, FLOAT, FLOAT *, BLASLONG,
@@ -240,18 +234,10 @@ void CNAME(enum CBLAS_ORDER order,

#ifdef SMP

nthreads_max = num_cpu_avail(2);
nthreads_avail = nthreads_max;

MNK = (double) m * (double) n;
if ( MNK <= ( 256.0 * (double) (GEMM_MULTITHREAD_THRESHOLD * GEMM_MULTITHREAD_THRESHOLD) ))
nthreads_max = 1;

if ( nthreads_max > nthreads_avail )
nthreads = nthreads_avail;
if ( 1L * m * n < 1024L * GEMM_MULTITHREAD_THRESHOLD )
nthreads = 1;
else
nthreads = nthreads_max;

nthreads = num_cpu_avail(2);

if (nthreads == 1) {
#endif


+ 1
- 1
interface/zger.c View File

@@ -214,7 +214,7 @@ void CNAME(enum CBLAS_ORDER order,

#ifdef SMPTEST
// Threshold chosen so that speed-up is > 1 on a Xeon E5-2630
if(1L * m * n > 3L * sizeof(FLOAT) * GEMM_MULTITHREAD_THRESHOLD)
if(1L * m * n > 36L * sizeof(FLOAT) * sizeof(FLOAT) * GEMM_MULTITHREAD_THRESHOLD)
nthreads = num_cpu_avail(2);
else
nthreads = 1;


Loading…
Cancel
Save