@@ -20,6 +20,7 @@ mca_coll_ucc_alltoall_init_common(const void *sbuf, size_t scount, struct ompi_d
2020 ucc_datatype_t ucc_sdt = UCC_DT_INT8 , ucc_rdt = UCC_DT_INT8 ;
2121 bool is_inplace = (MPI_IN_PLACE == sbuf );
2222 int comm_size = ompi_comm_size (ucc_module -> comm );
23+ uint64_t flags = 0 ;
2324
2425 if (!(is_inplace || ompi_datatype_is_contiguous_memory_layout (sdtype , scount * comm_size )) ||
2526 !ompi_datatype_is_contiguous_memory_layout (rdtype , rcount * comm_size )) {
@@ -39,9 +40,12 @@ mca_coll_ucc_alltoall_init_common(const void *sbuf, size_t scount, struct ompi_d
3940 goto fallback ;
4041 }
4142
43+ flags = (is_inplace ? UCC_COLL_ARGS_FLAG_IN_PLACE : 0 ) |
44+ (persistent ? UCC_COLL_ARGS_FLAG_PERSISTENT : 0 );
45+
4246 ucc_coll_args_t coll = {
43- .mask = 0 ,
44- .flags = 0 ,
47+ .mask = flags ? UCC_COLL_ARGS_FIELD_FLAGS : 0 ,
48+ .flags = flags ,
4549 .coll_type = UCC_COLL_TYPE_ALLTOALL ,
4650 .src .info = {
4751 .buffer = (void * )sbuf ,
@@ -57,14 +61,6 @@ mca_coll_ucc_alltoall_init_common(const void *sbuf, size_t scount, struct ompi_d
5761 }
5862 };
5963
60- if (is_inplace ) {
61- coll .mask = UCC_COLL_ARGS_FIELD_FLAGS ;
62- coll .flags = UCC_COLL_ARGS_FLAG_IN_PLACE ;
63- }
64- if (true == persistent ) {
65- coll .mask |= UCC_COLL_ARGS_FIELD_FLAGS ;
66- coll .flags |= UCC_COLL_ARGS_FLAG_PERSISTENT ;
67- }
6864 COLL_UCC_REQ_INIT (coll_req , req , coll , ucc_module );
6965 return UCC_OK ;
7066fallback :
0 commit comments