From a3354a763096b807e27185d48bd473010acd488b Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Wed, 27 Mar 2024 22:00:30 +0100 Subject: [PATCH] Cap the number of parallel threads --- interface/gemm.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/interface/gemm.c b/interface/gemm.c index 4778b641b..0902bc024 100644 --- a/interface/gemm.c +++ b/interface/gemm.c @@ -533,8 +533,12 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANS MNK = (double) args.m * (double) args.n * (double) args.k; if ( MNK <= (SMP_THRESHOLD_MIN * (double) GEMM_MULTITHREAD_THRESHOLD) ) args.nthreads = 1; - else + else { args.nthreads = num_cpu_avail(3); + if (MNK/args.nthreads < SMP_THRESHOLD_MIN*(double)GEMM_MULTITHREAD_THRESHOLD) + args.nthreads = MNK/(SMP_THRESHOLD_MIN*(double)GEMM_MULTITHREAD_THRESHOLD); + } + args.common = NULL; if (args.nthreads == 1) {