diff --git a/interface/gemv.c b/interface/gemv.c index 8e0bdcca3..30709e361 100644 --- a/interface/gemv.c +++ b/interface/gemv.c @@ -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 diff --git a/interface/ger.c b/interface/ger.c index b2f803dec..8cf1614e3 100644 --- a/interface/ger.c +++ b/interface/ger.c @@ -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; diff --git a/interface/zgemv.c b/interface/zgemv.c index 520136b45..584080d30 100644 --- a/interface/zgemv.c +++ b/interface/zgemv.c @@ -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 diff --git a/interface/zger.c b/interface/zger.c index 5bcbfc09b..f7354d26d 100644 --- a/interface/zger.c +++ b/interface/zger.c @@ -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;