Skip to content

Commit 73abeb4

Browse files
committed
REWVIEW: various fixes
1 parent 37808e0 commit 73abeb4

File tree

7 files changed

+337
-300
lines changed

7 files changed

+337
-300
lines changed

src/components/tl/ucp/alltoall/alltoall.c

Lines changed: 4 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,6 @@ ucc_status_t ucc_tl_ucp_alltoall_onesided_init(ucc_base_coll_args_t *coll_args,
7676
ucc_coll_task_t **task_h)
7777
{
7878
ucc_tl_ucp_team_t *tl_team = ucc_derived_of(team, ucc_tl_ucp_team_t);
79-
ucc_mem_map_memh_t *src_memh = NULL;
80-
ucc_mem_map_memh_t *dst_memh = NULL;
8179
ucc_status_t status = UCC_OK;
8280
ucc_tl_ucp_task_t *task;
8381

@@ -110,28 +108,10 @@ ucc_status_t ucc_tl_ucp_alltoall_onesided_init(ucc_base_coll_args_t *coll_args,
110108
task->super.post = ucc_tl_ucp_alltoall_onesided_start;
111109
task->super.progress = ucc_tl_ucp_alltoall_onesided_progress;
112110

113-
if (!(coll_args->args.mask & UCC_COLL_ARGS_FIELD_FLAGS)) {
114-
if (!(coll_args->args.flags & UCC_COLL_ARGS_FLAG_MEM_MAPPED_BUFFERS)) {
115-
if (!(coll_args->args.mask &
116-
UCC_COLL_ARGS_FIELD_MEM_MAP_SRC_MEMH) ||
117-
!(coll_args->args.mask &
118-
UCC_COLL_ARGS_FIELD_MEM_MAP_DST_MEMH)) {
119-
status = ucc_tl_ucp_coll_dynamic_segment_init(
120-
&coll_args->args, &src_memh, &dst_memh, task);
121-
if (UCC_OK != status) {
122-
tl_error(UCC_TL_TEAM_LIB(tl_team),
123-
"failed to initialize dynamic segments");
124-
goto out;
125-
}
126-
127-
TASK_ARGS(task).src_memh.local_memh = src_memh;
128-
TASK_ARGS(task).dst_memh.local_memh = dst_memh;
129-
TASK_ARGS(task).mask |= UCC_COLL_ARGS_FIELD_MEM_MAP_SRC_MEMH |
130-
UCC_COLL_ARGS_FIELD_MEM_MAP_DST_MEMH;
131-
TASK_ARGS(task).flags |= UCC_COLL_ARGS_FLAG_DST_MEMH_GLOBAL |
132-
UCC_COLL_ARGS_FLAG_SRC_MEMH_GLOBAL;
133-
}
134-
}
111+
status = ucc_tl_ucp_coll_dynamic_segment_init(&coll_args->args, task);
112+
if (UCC_OK != status) {
113+
tl_error(UCC_TL_TEAM_LIB(tl_team),
114+
"failed to initialize dynamic segments");
135115
}
136116
out:
137117
return status;

src/components/tl/ucp/alltoall/alltoall_onesided.c

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -26,34 +26,24 @@ ucc_status_t ucc_tl_ucp_alltoall_onesided_start(ucc_coll_task_t *ctask)
2626
ucc_rank_t start = (grank + 1) % gsize;
2727
long *pSync = TASK_ARGS(task).global_work_buffer;
2828
ucc_mem_map_mem_h src_memh = TASK_ARGS(task).src_memh.local_memh;
29-
ucc_mem_map_mem_h dst_memh = TASK_ARGS(task).dst_memh.local_memh;
30-
ucc_mem_map_mem_h *src_memh_g = NULL;
31-
ucc_mem_map_mem_h *dst_memh_g = NULL;
29+
ucc_mem_map_mem_h *dst_memh_g = TASK_ARGS(task).dst_memh.global_memh;
3230
ucc_rank_t peer;
3331
ucc_status_t status;
3432

3533
ucc_tl_ucp_task_reset(task, UCC_INPROGRESS);
36-
if (TASK_ARGS(task).mask & UCC_COLL_ARGS_FIELD_MEM_MAP_SRC_MEMH) {
37-
status = ucc_tl_ucp_coll_dynamic_segment_exchange(
38-
task, src_memh, dst_memh, (ucc_mem_map_memh_t **)src_memh_g,
39-
(ucc_mem_map_memh_t **)dst_memh_g);
34+
if (task->flags & UCC_TL_UCP_TASK_FLAG_USE_DYN_SEG) {
35+
status = ucc_tl_ucp_coll_dynamic_segment_exchange(task);
4036
if (UCC_OK != status) {
4137
task->super.status = status;
4238
goto out;
4339
}
44-
}
45-
if (TASK_ARGS(task).flags & UCC_COLL_ARGS_FLAG_SRC_MEMH_GLOBAL) {
46-
if (src_memh_g) {
47-
src_memh = (ucc_mem_map_mem_h)&src_memh_g[grank];
48-
} else {
40+
src_memh = task->dynamic_segments.src_global[grank];
41+
dst_memh_g = (ucc_mem_map_mem_h *)task->dynamic_segments.dst_global;
42+
} else {
43+
if (TASK_ARGS(task).flags & UCC_COLL_ARGS_FLAG_SRC_MEMH_GLOBAL) {
4944
src_memh = TASK_ARGS(task).src_memh.global_memh[grank];
5045
}
5146
}
52-
if (TASK_ARGS(task).flags & UCC_COLL_ARGS_FLAG_DST_MEMH_GLOBAL) {
53-
if (!dst_memh_g) {
54-
dst_memh_g = TASK_ARGS(task).dst_memh.global_memh;
55-
}
56-
}
5747

5848
/* TODO: change when support for library-based work buffers is complete */
5949
nelems = (nelems / gsize) * ucc_dt_size(TASK_ARGS(task).src.info.datatype);
@@ -84,7 +74,5 @@ void ucc_tl_ucp_alltoall_onesided_progress(ucc_coll_task_t *ctask)
8474
}
8575

8676
pSync[0] = 0;
87-
task->super.status = ucc_tl_ucp_coll_dynamic_segment_finalize(
88-
task, (ucc_mem_map_memh_t **)&TASK_ARGS(task).src_memh.global_memh,
89-
(ucc_mem_map_memh_t **)&TASK_ARGS(task).dst_memh.global_memh, gsize);
77+
task->super.status = ucc_tl_ucp_coll_dynamic_segment_finalize(task);
9078
}

src/components/tl/ucp/alltoallv/alltoallv_onesided.c

Lines changed: 11 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -26,26 +26,21 @@ ucc_status_t ucc_tl_ucp_alltoallv_onesided_start(ucc_coll_task_t *ctask)
2626
size_t rdt_size = ucc_dt_size(TASK_ARGS(task).dst.info_v.datatype);
2727
ucc_mem_map_mem_h src_memh = TASK_ARGS(task).src_memh.local_memh;
2828
ucc_mem_map_mem_h *dst_memh = TASK_ARGS(task).dst_memh.global_memh;
29-
ucc_mem_map_memh_t *src_memh_g = NULL;
30-
ucc_mem_map_memh_t *dst_memh_g = NULL;
29+
//ucc_mem_map_memh_t *src_memh_g = NULL;
30+
//ucc_mem_map_memh_t *dst_memh_g = NULL;
3131
ucc_rank_t peer;
3232
ucc_status_t status;
3333
size_t sd_disp, dd_disp, data_size;
3434

3535
ucc_tl_ucp_task_reset(task, UCC_INPROGRESS);
36-
status = ucc_tl_ucp_coll_dynamic_segment_exchange(
37-
task, src_memh, *dst_memh, &src_memh_g, &dst_memh_g);
36+
status = ucc_tl_ucp_coll_dynamic_segment_exchange(task);
3837
if (UCC_OK != status) {
3938
task->super.status = status;
4039
goto out;
4140
}
4241

4342
if (TASK_ARGS(task).flags & UCC_COLL_ARGS_FLAG_SRC_MEMH_GLOBAL) {
44-
if (src_memh_g) {
45-
src_memh = (ucc_mem_map_mem_h)&src_memh_g[grank];
46-
} else {
47-
src_memh = TASK_ARGS(task).src_memh.global_memh[grank];
48-
}
43+
src_memh = TASK_ARGS(task).src_memh.global_memh[grank];
4944
}
5045

5146
/* perform a put to each member peer using the peer's index in the
@@ -88,18 +83,14 @@ void ucc_tl_ucp_alltoallv_onesided_progress(ucc_coll_task_t *ctask)
8883

8984
pSync[0] = 0;
9085
task->super.status = UCC_OK;
91-
ucc_tl_ucp_coll_dynamic_segment_finalize(
92-
task, (ucc_mem_map_memh_t **)&TASK_ARGS(task).src_memh.global_memh,
93-
(ucc_mem_map_memh_t **)&TASK_ARGS(task).dst_memh.global_memh, gsize);
86+
ucc_tl_ucp_coll_dynamic_segment_finalize(task);
9487
}
9588

9689
ucc_status_t ucc_tl_ucp_alltoallv_onesided_init(ucc_base_coll_args_t *coll_args,
9790
ucc_base_team_t *team,
9891
ucc_coll_task_t **task_h)
9992
{
10093
ucc_tl_ucp_team_t *tl_team = ucc_derived_of(team, ucc_tl_ucp_team_t);
101-
ucc_mem_map_memh_t *src_memh = NULL;
102-
ucc_mem_map_memh_t *dst_memh = NULL;
10394
ucc_status_t status = UCC_OK;
10495
ucc_tl_ucp_task_t *task;
10596

@@ -122,21 +113,12 @@ ucc_status_t ucc_tl_ucp_alltoallv_onesided_init(ucc_base_coll_args_t *coll_args,
122113
task->super.post = ucc_tl_ucp_alltoallv_onesided_start;
123114
task->super.progress = ucc_tl_ucp_alltoallv_onesided_progress;
124115

125-
if (!(coll_args->args.mask & UCC_COLL_ARGS_FIELD_MEM_MAP_SRC_MEMH) ||
126-
!(coll_args->args.mask & UCC_COLL_ARGS_FIELD_MEM_MAP_DST_MEMH)) {
127-
status = ucc_tl_ucp_coll_dynamic_segment_init(
128-
&coll_args->args, &src_memh, &dst_memh, task);
129-
if (UCC_OK != status) {
130-
tl_error(UCC_TL_TEAM_LIB(tl_team),
131-
"failed to initialize dynamic segments");
132-
goto out;
133-
}
134-
coll_args->args.src_memh.local_memh = src_memh;
135-
coll_args->args.dst_memh.local_memh = dst_memh;
136-
coll_args->args.mask |= UCC_COLL_ARGS_FIELD_MEM_MAP_SRC_MEMH |
137-
UCC_COLL_ARGS_FIELD_MEM_MAP_DST_MEMH;
138-
coll_args->args.flags |= UCC_COLL_ARGS_FLAG_DST_MEMH_GLOBAL |
139-
UCC_COLL_ARGS_FLAG_SRC_MEMH_GLOBAL;
116+
status = ucc_tl_ucp_coll_dynamic_segment_init(
117+
&coll_args->args, task);
118+
if (UCC_OK != status) {
119+
tl_error(UCC_TL_TEAM_LIB(tl_team),
120+
"failed to initialize dynamic segments");
121+
goto out;
140122
}
141123
out:
142124
return status;

src/components/tl/ucp/tl_ucp.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -291,10 +291,10 @@ static ucs_config_field_t ucc_tl_ucp_context_config_table[] = {
291291
ucc_offsetof(ucc_tl_ucp_context_config_t, memtype_copy_enable),
292292
UCC_CONFIG_TYPE_BOOL},
293293

294-
{"EXPORTED_MEMORY_HANDLE", "n",
295-
"If set to yes, initialize UCP context with the exported memory handle "
296-
"feature, which is useful for offload devices such as a DPU. Otherwise "
297-
"disable the use of this feature.",
294+
{"EXPORTED_MEMORY_HANDLE", "0",
295+
"If set to 1, initialize UCP context with the exported memory handle "
296+
"feature, which is useful for offload devices such as a DPU. Set to 0 "
297+
"to disable this feature (default is 0).",
298298
ucc_offsetof(ucc_tl_ucp_context_config_t, exported_memory_handle),
299299
UCC_CONFIG_TYPE_BOOL},
300300

0 commit comments

Comments
 (0)