mirror of
https://github.com/amd/blis.git
synced 2026-05-11 17:50:00 +00:00
Disabled parallelism for right-sided TRMM JC loop
The loop has dependent iterations.
This commit is contained in:
@@ -125,7 +125,7 @@ void bli_trmm_front( side_t side,
|
||||
if ( bli_is_left( side ) ) cntl = l_cntl;
|
||||
else cntl = r_cntl;
|
||||
|
||||
trmm_thrinfo_t** infos = bli_create_trmm_thrinfo_paths();
|
||||
trmm_thrinfo_t** infos = bli_create_trmm_thrinfo_paths( !bli_is_left( side ) );
|
||||
dim_t n_threads = thread_num_threads( infos[0] );
|
||||
|
||||
// Invoke the internal back-end.
|
||||
|
||||
@@ -108,15 +108,23 @@ void bli_trmm_thrinfo_free_paths( trmm_thrinfo_t** threads, dim_t num )
|
||||
bli_free( threads );
|
||||
}
|
||||
|
||||
trmm_thrinfo_t** bli_create_trmm_thrinfo_paths( )
|
||||
trmm_thrinfo_t** bli_create_trmm_thrinfo_paths( bool_t jc_dependency )
|
||||
{
|
||||
#ifdef BLIS_ENABLE_MULTITHREADING
|
||||
dim_t jc_way = bli_read_nway_from_env( "BLIS_JC_NT" );
|
||||
// dim_t kc_way = bli_read_nway_from_env( "BLIS_KC_NT" );
|
||||
dim_t kc_way = 1;
|
||||
dim_t ic_way = bli_read_nway_from_env( "BLIS_IC_NT" );
|
||||
dim_t jr_way = bli_read_nway_from_env( "BLIS_JR_NT" );
|
||||
dim_t ir_way = bli_read_nway_from_env( "BLIS_IR_NT" );
|
||||
|
||||
if( !jc_dependency ){
|
||||
dim_t jc_way = bli_read_nway_from_env( "BLIS_JC_NT" );
|
||||
dim_t jr_way = bli_read_nway_from_env( "BLIS_JR_NT" );
|
||||
}
|
||||
else
|
||||
{
|
||||
dim_t jc_way = 1;
|
||||
dim_t jr_way = bli_read_nway_from_env( "BLIS_JC_NT" ) * bli_read_nway_from_env( "BLIS_JR_NT" );
|
||||
}
|
||||
#else
|
||||
dim_t jc_way = 1;
|
||||
dim_t kc_way = 1;
|
||||
|
||||
@@ -58,7 +58,7 @@ typedef struct trmm_thrinfo_s trmm_thrinfo_t;
|
||||
#define trmm_l_ir_my_iter( index, thread ) ( index % thread->n_way == thread->work_id % thread->n_way )
|
||||
#define trmm_l_jr_my_iter( index, thread ) ( index % thread->n_way == thread->work_id % thread->n_way )
|
||||
|
||||
trmm_thrinfo_t** bli_create_trmm_thrinfo_paths( );
|
||||
trmm_thrinfo_t** bli_create_trmm_thrinfo_paths( bool_t jc_dependency );
|
||||
void bli_trmm_thrinfo_free_paths( trmm_thrinfo_t** info, dim_t n_threads );
|
||||
|
||||
void bli_setup_trmm_thrinfo_node( trmm_thrinfo_t* thread,
|
||||
|
||||
@@ -127,7 +127,7 @@ void bli_trmm3_front( side_t side,
|
||||
if ( bli_is_left( side ) ) cntl = l_cntl;
|
||||
else cntl = r_cntl;
|
||||
|
||||
trmm_thrinfo_t** infos = bli_create_trmm_thrinfo_paths();
|
||||
trmm_thrinfo_t** infos = bli_create_trmm_thrinfo_paths( FALSE );
|
||||
dim_t n_threads = thread_num_threads( infos[0] );
|
||||
|
||||
// Invoke the internal back-end.
|
||||
|
||||
Reference in New Issue
Block a user