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