From b985cea65dbb4d60b51d204fd6144741fb9a7f0b Mon Sep 17 00:00:00 2001 From: wernsaar Date: Tue, 15 Jul 2014 16:04:46 +0200 Subject: [PATCH] adjust number of threads for sgemv and dgemv --- interface/gemv.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/interface/gemv.c b/interface/gemv.c index 562ceee9f..08553ad21 100644 --- a/interface/gemv.c +++ b/interface/gemv.c @@ -211,7 +211,18 @@ void CNAME(enum CBLAS_ORDER order, buffer = (FLOAT *)blas_memory_alloc(1); #ifdef SMP - nthreads = num_cpu_avail(2); + + int nthreads_max = num_cpu_avail(2); + int nthreads_avail = nthreads_max; + + double MNK = (double) m * (double) n; + if ( MNK <= (500.0 * 100.0 * (double) GEMM_MULTITHREAD_THRESHOLD) ) + nthreads_max = 1; + + if ( nthreads_max > nthreads_avail ) + nthreads = nthreads_avail; + else + nthreads = nthreads_max; if (nthreads == 1) { #endif