@@ -63,6 +63,7 @@ void ucc_tl_ucp_allgather_knomial_progress(ucc_coll_task_t *coll_task)
6363 ucc_coll_args_t * args = & TASK_ARGS (task );
6464 ucc_tl_ucp_team_t * team = TASK_TEAM (task );
6565 ucc_tl_ucp_context_t * ctx = UCC_TL_UCP_TEAM_CTX (team );
66+ ucc_kn_radix_t radix = task -> allgather_kn .p .radix ;
6667 uint8_t node_type = task -> allgather_kn .p .node_type ;
6768 ucc_knomial_pattern_t * p = & task -> allgather_kn .p ;
6869 void * rbuf = GET_DST (args );
@@ -152,7 +153,7 @@ void ucc_tl_ucp_allgather_knomial_progress(ucc_coll_task_t *coll_task)
152153 & local_seg_offset );
153154 sbuf = PTR_OFFSET (rbuf , local_seg_offset * dt_size );
154155
155- for (loop_step = p -> radix - 1 ; loop_step > 0 ; loop_step -- ) {
156+ for (loop_step = radix - 1 ; loop_step > 0 ; loop_step -- ) {
156157 peer = ucc_knomial_pattern_get_loop_peer (p , rank , loop_step );
157158 if (peer == UCC_KN_PEER_NULL )
158159 continue ;
@@ -170,7 +171,7 @@ void ucc_tl_ucp_allgather_knomial_progress(ucc_coll_task_t *coll_task)
170171 task , out );
171172 }
172173
173- for (loop_step = 1 ; loop_step < p -> radix ; loop_step ++ ) {
174+ for (loop_step = 1 ; loop_step < radix ; loop_step ++ ) {
174175 peer = ucc_knomial_pattern_get_loop_peer (p , rank , loop_step );
175176 if (peer == UCC_KN_PEER_NULL )
176177 continue ;
@@ -198,6 +199,7 @@ void ucc_tl_ucp_allgather_knomial_progress(ucc_coll_task_t *coll_task)
198199 return ;
199200 }
200201 ucc_kn_ag_pattern_next_iter (p );
202+ radix = p -> radix ;
201203 }
202204
203205 if (KN_NODE_PROXY == node_type ) {
0 commit comments