Add multithreading threshold
This commit is contained in:
parent
a495ffc554
commit
f2d6b1c70e
|
@ -44,6 +44,7 @@
|
|||
#endif
|
||||
|
||||
#ifndef COMPLEX
|
||||
#define SMP_THRESHOLD_MIN 65536.
|
||||
#ifdef XDOUBLE
|
||||
#define ERROR_NAME "QSYMM "
|
||||
#elif defined(DOUBLE)
|
||||
|
@ -52,6 +53,7 @@
|
|||
#define ERROR_NAME "SSYMM "
|
||||
#endif
|
||||
#else
|
||||
#define SMP_THRESHOLD_MIN 8192.
|
||||
#ifndef GEMM3M
|
||||
#ifndef HEMM
|
||||
#ifdef XDOUBLE
|
||||
|
@ -91,6 +93,10 @@
|
|||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef GEMM_MULTITHREAD_THRESHOLD
|
||||
#define GEMM_MULTITHREAD_THRESHOLD 4
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef SMP
|
||||
#ifndef COMPLEX
|
||||
|
@ -159,7 +165,9 @@ void NAME(char *SIDE, char *UPLO,
|
|||
#if defined(SMP) && !defined(NO_AFFINITY)
|
||||
int nodes;
|
||||
#endif
|
||||
|
||||
# if defined(SMP)
|
||||
int MN;
|
||||
#endif
|
||||
blasint info;
|
||||
int side;
|
||||
int uplo;
|
||||
|
@ -255,6 +263,9 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_SIDE Side, enum CBLAS_UPLO Uplo,
|
|||
#if defined(SMP) && !defined(NO_AFFINITY)
|
||||
int nodes;
|
||||
#endif
|
||||
#if defined(SMP)
|
||||
int MN;
|
||||
#endif
|
||||
|
||||
PRINT_DEBUG_CNAME;
|
||||
|
||||
|
@ -375,15 +386,18 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_SIDE Side, enum CBLAS_UPLO Uplo,
|
|||
|
||||
#ifdef SMP
|
||||
args.common = NULL;
|
||||
args.nthreads = num_cpu_avail(3);
|
||||
|
||||
MN = 2.* (double) args.m * (double)args.m * (double) args.n;
|
||||
if (MN <= (SMP_THRESHOLD_MIN * (double) GEMM_MULTITHREAD_THRESHOLD) ) {
|
||||
args.nthreads = 1;
|
||||
} else {
|
||||
args.nthreads = num_cpu_avail(3);
|
||||
}
|
||||
if (args.nthreads == 1) {
|
||||
#endif
|
||||
|
||||
(symm[(side << 1) | uplo ])(&args, NULL, NULL, sa, sb, 0);
|
||||
|
||||
#ifdef SMP
|
||||
|
||||
} else {
|
||||
|
||||
#ifndef NO_AFFINITY
|
||||
|
|
Loading…
Reference in New Issue