Browse Source

Limit _AXPY threading due to observed regression with excess threads

pull/1884/head
Andrew 7 years ago
parent
commit
da5894a2ed
2 changed files with 15 additions and 0 deletions
  1. +8
    -0
      interface/axpy.c
  2. +7
    -0
      interface/zaxpy.c

+ 8
- 0
interface/axpy.c View File

@@ -46,6 +46,10 @@
#else
#define MULTI_THREAD_MINIMAL 10000
#endif
#if defined(ARCH_X86) || defined(ARCH_X86_64)
#define MULTI_THREAD_MAX_NUM 2
#endif

#ifndef CBLAS

void NAME(blasint *N, FLOAT *ALPHA, FLOAT *x, blasint *INCX, FLOAT *y, blasint *INCY){
@@ -91,7 +95,11 @@ void CNAME(blasint n, FLOAT alpha, FLOAT *x, blasint incx, FLOAT *y, blasint inc
if (incx == 0 || incy == 0 || n <= MULTI_THREAD_MINIMAL)
nthreads = 1;
else
#ifdef MULTI_THREAD_MAX_NUM
nthreads = MIN(MULTI_THREAD_MAX_NUM,num_cpu_avail(1));
#else
nthreads = num_cpu_avail(1);
#endif

if (nthreads == 1) {
#endif


+ 7
- 0
interface/zaxpy.c View File

@@ -46,6 +46,9 @@
#else
#define MULTI_THREAD_MINIMAL 10000
#endif
#if defined(ARCH_X86) || defined(ARCH_X86_64)
#define MULTI_THREAD_MAX_NUM 2
#endif
#ifndef CBLAS

void NAME(blasint *N, FLOAT *ALPHA, FLOAT *x, blasint *INCX, FLOAT *y, blasint *INCY){
@@ -98,7 +101,11 @@ void CNAME(blasint n, FLOAT *ALPHA, FLOAT *x, blasint incx, FLOAT *y, blasint in
if (incx == 0 || incy == 0 || n <= MULTI_THREAD_MINIMAL)
nthreads = 1;
else
#ifdef MULTI_THREAD_MAX_NUM
nthreads = MIN(MULTI_THREAD_MAX_NUM,num_cpu_avail(1));
#else
nthreads = num_cpu_avail(1);
#endif

if (nthreads == 1) {
#endif


Loading…
Cancel
Save