From 244147495ac672015af6a87ad51b60fd1a0ba603 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Thu, 23 Mar 2023 23:13:02 +0100 Subject: [PATCH] Do not use multithreading for small workloads --- interface/symv.c | 3 +++ interface/syr2k.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/interface/symv.c b/interface/symv.c index 07bd200227..1f23ce4ee5 100644 --- a/interface/symv.c +++ b/interface/symv.c @@ -180,6 +180,9 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, FLOAT alpha, buffer = (FLOAT *)blas_memory_alloc(1); #ifdef SMP + if (n <200) + nthreads=1; + else nthreads = num_cpu_avail(2); if (nthreads == 1) { diff --git a/interface/syr2k.c b/interface/syr2k.c index a72330c0bd..47df7f89f0 100644 --- a/interface/syr2k.c +++ b/interface/syr2k.c @@ -368,6 +368,9 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE Tr mode |= (uplo << BLAS_UPLO_SHIFT); args.common = NULL; + if (args.n*args.k <1000) + args.nthreads =1 ; + else args.nthreads = num_cpu_avail(3); if (args.nthreads == 1) {