File tree Expand file tree Collapse file tree 2 files changed +19
-0
lines changed Expand file tree Collapse file tree 2 files changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -403,6 +403,7 @@ int exec_blas(BLASLONG num, blas_queue_t *queue){
403
403
break ;
404
404
}
405
405
406
+ if (openblas_omp_adaptive_env () != 0 ) {
406
407
#pragma omp parallel for num_threads(num) schedule(OMP_SCHED)
407
408
for (i = 0 ; i < num ; i ++ ) {
408
409
@@ -412,6 +413,17 @@ int exec_blas(BLASLONG num, blas_queue_t *queue){
412
413
413
414
exec_threads (& queue [i ], buf_index );
414
415
}
416
+ } else {
417
+ #pragma omp parallel for schedule(OMP_SCHED)
418
+ for (i = 0 ; i < num ; i ++ ) {
419
+
420
+ #ifndef USE_SIMPLE_THREADED_LEVEL3
421
+ queue [i ].position = i ;
422
+ #endif
423
+
424
+ exec_threads (& queue [i ], buf_index );
425
+ }
426
+ }
415
427
416
428
#ifdef HAVE_C11
417
429
atomic_store (& blas_buffer_inuse [buf_index ], false);
Original file line number Diff line number Diff line change @@ -39,13 +39,15 @@ static int openblas_env_block_factor=0;
39
39
static int openblas_env_openblas_num_threads = 0 ;
40
40
static int openblas_env_goto_num_threads = 0 ;
41
41
static int openblas_env_omp_num_threads = 0 ;
42
+ static int openblas_env_omp_adaptive = 0 ;
42
43
43
44
int openblas_verbose () { return openblas_env_verbose ;}
44
45
unsigned int openblas_thread_timeout () { return openblas_env_thread_timeout ;}
45
46
int openblas_block_factor () { return openblas_env_block_factor ;}
46
47
int openblas_num_threads_env () { return openblas_env_openblas_num_threads ;}
47
48
int openblas_goto_num_threads_env () { return openblas_env_goto_num_threads ;}
48
49
int openblas_omp_num_threads_env () { return openblas_env_omp_num_threads ;}
50
+ int openblas_omp_adaptive_env () { return openblas_env_omp_adaptive ;}
49
51
50
52
void openblas_read_env () {
51
53
int ret = 0 ;
@@ -79,6 +81,11 @@ void openblas_read_env() {
79
81
if (ret < 0 ) ret = 0 ;
80
82
openblas_env_omp_num_threads = ret ;
81
83
84
+ ret = 0 ;
85
+ if (readenv (p ,"OMP_ADAPTIVE" )) ret = atoi (p );
86
+ if (ret < 0 ) ret = 0 ;
87
+ openblas_env_omp_adaptive = ret ;
88
+
82
89
}
83
90
84
91
You can’t perform that action at this time.
0 commit comments