Skip to content

Commit 85c71a8

Browse files
authored
SRC/PLUGINS/UCX_MO: Removed Multi-Object UCX backend. (#898)
Signed-off-by: Raul Akhmetshin <[email protected]>
1 parent 1a6d851 commit 85c71a8

File tree

22 files changed

+11
-1780
lines changed

22 files changed

+11
-1780
lines changed

.gitlab/test_cpp.sh

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,6 @@ if $TEST_LIBFABRIC ; then
6868
fi
6969
./bin/nixl_etcd_example
7070
./bin/ucx_backend_test
71-
# Skip UCX_MO backend test on GPU worker, fails VRAM transfers
72-
if ! $HAS_GPU ; then
73-
./bin/ucx_mo_backend_test
74-
fi
7571
mkdir -p /tmp/telemetry_test
7672
NIXL_TELEMETRY_ENABLE=y NIXL_TELEMETRY_DIR=/tmp/telemetry_test ./bin/agent_example &
7773
sleep 1

benchmark/kvbench/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ These arguments are used by both `plan` and `profile` commands:
118118
| -------- | ----------- |
119119
| `--source` | Source of the nixl descriptors [file, memory, gpu] (default: file) |
120120
| `--destination` | Destination of the nixl descriptors [file, memory, gpu] (default: memory) |
121-
| `--backend` | Communication backend [UCX, UCX_MO, GDS, GDS_MT, POSIX, GPUNETIO, Mooncake, HF3FS, OBJ] (default: UCX) |
121+
| `--backend` | Communication backend [UCX, GDS, GDS_MT, POSIX, GPUNETIO, Mooncake, HF3FS, OBJ] (default: UCX) |
122122
| `--worker_type` | Worker to use to transfer data [nixl, nvshmem] (default: nixl) |
123123
| `--initiator_seg_type` | Memory segment type for initiator [DRAM, VRAM] (default: DRAM) |
124124
| `--target_seg_type` | Memory segment type for target [DRAM, VRAM] (default: DRAM) |

benchmark/kvbench/commands/args.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def nixl_bench_args(func):
7272
func = click.option(
7373
"--backend",
7474
type=str,
75-
help="Communication backend [UCX, UCX_MO, GDS, GDS_MT, POSIX, GPUNETIO, Mooncake, HF3FS, OBJ] (default: UCX)",
75+
help="Communication backend [UCX, GDS, GDS_MT, POSIX, GPUNETIO, Mooncake, HF3FS, OBJ] (default: UCX)",
7676
)(func)
7777
func = click.option(
7878
"--worker_type",

benchmark/kvbench/commands/nixlbench.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ def _configure_posix(self, source: str, destination: str):
205205
raise ValueError(f"Invalid source for POSIX/HF3FS: {source}")
206206

207207
def _configure_ucx(self, backend: str, source: str, destination: str):
208-
"""Configure UCX, UCX_MO, GPUNETIO, and Mooncake plugins (same logic for all)"""
208+
"""Configure UCX, GPUNETIO, and Mooncake plugins (same logic for all)"""
209209
arg_to_seg_type = {
210210
"memory": "DRAM",
211211
"gpu": "VRAM",
@@ -241,7 +241,7 @@ def configure_segment_type(self, backend: str, source: str, destination: str):
241241
self._configure_gds(source, destination)
242242
elif backend_lower in ["posix", "hf3fs"]:
243243
self._configure_posix(source, destination)
244-
elif backend_lower in ["ucx", "ucx_mo", "gpunetio", "mooncake"]:
244+
elif backend_lower in ["ucx", "gpunetio", "mooncake"]:
245245
self._configure_ucx(backend_lower, source, destination)
246246
elif backend_lower == "obj":
247247
self._configure_obj(source, destination)

benchmark/nixlbench/README.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ A comprehensive benchmarking tool for the NVIDIA Inference Xfer Library (NIXL) t
3232

3333
## Features
3434

35-
- **Multiple Communication Backends**: UCX, UCX_MO, GPUNETIO, Mooncake, Libfabric for network communication
35+
- **Multiple Communication Backends**: UCX, GPUNETIO, Mooncake, Libfabric for network communication
3636
- **Storage Backend Support**: GDS, GDS_MT, POSIX, HF3FS, OBJ (S3), GUSLI for storage operations
3737
- **Flexible Communication Patterns**:
3838
- **Pairwise**: Point-to-point communication between pairs
@@ -420,7 +420,7 @@ sudo systemctl start etcd && sudo systemctl enable etcd
420420
```
421421
--runtime_type NAME # Type of runtime to use [ETCD] (default: ETCD)
422422
--worker_type NAME # Worker to use to transfer data [nixl, nvshmem] (default: nixl)
423-
--backend NAME # Communication backend [UCX, UCX_MO, GDS, GDS_MT, POSIX, GPUNETIO, Mooncake, HF3FS, OBJ, GUSLI] (default: UCX)
423+
--backend NAME # Communication backend [UCX, GDS, GDS_MT, POSIX, GPUNETIO, Mooncake, HF3FS, OBJ, GUSLI] (default: UCX)
424424
--benchmark_group NAME # Name of benchmark group for parallel runs (default: default)
425425
--etcd_endpoints URL # ETCD server URL for coordination (default: http://localhost:2379)
426426
```
@@ -520,7 +520,7 @@ Note: storage_enable_direct is automatically enabled for GUSLI backend
520520
NIXL Benchmark uses an ETCD key-value store for coordination between benchmark workers. This is useful in containerized or cloud-native environments.
521521

522522
**ETCD Requirements:**
523-
- **Required**: Network backends (UCX, UCX_MO, GPUNETIO, Mooncake, Libfabric) and multi-node setups
523+
- **Required**: Network backends (UCX, GPUNETIO, Mooncake, Libfabric) and multi-node setups
524524
- **Optional**: Storage backends (GDS, GDS_MT, POSIX, HF3FS, OBJ, GUSLI) running as single instances
525525
- **Required**: Storage backends when `--etcd_endpoints` is explicitly specified
526526

@@ -565,9 +565,6 @@ The workers automatically coordinate ranks through ETCD as they connect.
565565

566566
# UCX with specific devices
567567
./nixlbench --etcd_endpoints http://etcd-server:2379 --backend UCX --device_list mlx5_0,mlx5_1
568-
569-
# UCX Memory-Only variant
570-
./nixlbench --etcd_endpoints http://etcd-server:2379 --backend UCX_MO
571568
```
572569

573570
**GPUNETIO Backend:**

benchmark/nixlbench/src/utils/utils.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ DEFINE_string(worker_type, XFERBENCH_WORKER_NIXL, "Type of worker [nixl, nvshmem
4747
DEFINE_string(
4848
backend,
4949
XFERBENCH_BACKEND_UCX,
50-
"Name of NIXL backend [UCX, UCX_MO, GDS, GDS_MT, POSIX, GPUNETIO, Mooncake, HF3FS, OBJ, GUSLI] \
50+
"Name of NIXL backend [UCX, GDS, GDS_MT, POSIX, GPUNETIO, Mooncake, HF3FS, OBJ, GUSLI] \
5151
(only used with nixl worker)");
5252
DEFINE_string(initiator_seg_type, XFERBENCH_SEG_TYPE_DRAM, "Type of memory segment for initiator \
5353
[DRAM, VRAM]. Note: Storage backends always use DRAM locally.");
@@ -431,8 +431,7 @@ xferBenchConfig::printConfig() {
431431
}
432432
printOption("Worker type (--worker_type=[nixl,nvshmem])", worker_type);
433433
if (worker_type == XFERBENCH_WORKER_NIXL) {
434-
printOption("Backend (--backend=[UCX,UCX_MO,GDS,GDS_MT,POSIX,Mooncake,HF3FS,OBJ])",
435-
backend);
434+
printOption("Backend (--backend=[UCX,GDS,GDS_MT,POSIX,Mooncake,HF3FS,OBJ])", backend);
436435
printOption ("Enable pt (--enable_pt=[0,1])", std::to_string (enable_pt));
437436
printOption("Progress threads (--progress_threads=N)", std::to_string(progress_threads));
438437
printOption ("Device list (--device_list=dev1,dev2,...)", device_list);

benchmark/nixlbench/src/utils/utils.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@
6666

6767
// Backend types
6868
#define XFERBENCH_BACKEND_UCX "UCX"
69-
#define XFERBENCH_BACKEND_UCX_MO "UCX_MO"
7069
#define XFERBENCH_BACKEND_LIBFABRIC "LIBFABRIC"
7170
#define XFERBENCH_BACKEND_GDS "GDS"
7271
#define XFERBENCH_BACKEND_GDS_MT "GDS_MT"

benchmark/nixlbench/src/worker/nixl/nixl_worker.cpp

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@ xferBenchNixlWorker::xferBenchNixlWorker(int *argc, char ***argv, std::vector<st
113113
agent->getAvailPlugins(plugins);
114114

115115
if (0 == xferBenchConfig::backend.compare(XFERBENCH_BACKEND_UCX) ||
116-
0 == xferBenchConfig::backend.compare(XFERBENCH_BACKEND_UCX_MO) ||
117116
0 == xferBenchConfig::backend.compare(XFERBENCH_BACKEND_LIBFABRIC) ||
118117
0 == xferBenchConfig::backend.compare(XFERBENCH_BACKEND_GPUNETIO) ||
119118
0 == xferBenchConfig::backend.compare(XFERBENCH_BACKEND_MOONCAKE) ||
@@ -126,23 +125,16 @@ xferBenchNixlWorker::xferBenchNixlWorker(int *argc, char ***argv, std::vector<st
126125

127126
agent->getPluginParams(backend_name, mems, backend_params);
128127

129-
if (0 == xferBenchConfig::backend.compare(XFERBENCH_BACKEND_UCX) ||
130-
0 == xferBenchConfig::backend.compare(XFERBENCH_BACKEND_UCX_MO)) {
128+
if (0 == xferBenchConfig::backend.compare(XFERBENCH_BACKEND_UCX)) {
131129
backend_params["num_threads"] = std::to_string(xferBenchConfig::progress_threads);
132130

133131
// No need to set device_list if all is specified
134132
// fallback to backend preference
135133
if (devices[0] != "all" && devices.size() >= 1) {
136134
if (isInitiator()) {
137135
backend_params["device_list"] = devices[rank];
138-
if (0 == xferBenchConfig::backend.compare(XFERBENCH_BACKEND_UCX_MO)) {
139-
backend_params["num_ucx_engines"] = xferBenchConfig::num_initiator_dev;
140-
}
141136
} else {
142137
backend_params["device_list"] = devices[rank - xferBenchConfig::num_initiator_dev];
143-
if (0 == xferBenchConfig::backend.compare(XFERBENCH_BACKEND_UCX_MO)) {
144-
backend_params["num_ucx_engines"] = xferBenchConfig::num_target_dev;
145-
}
146138
}
147139
}
148140

src/core/meson.build

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,6 @@ if 'UCX' in static_plugins
2929
nixl_lib_deps += [ ucx_backend_interface, asio_dep, cuda_dep ]
3030
endif
3131

32-
if 'UCX_MO' in static_plugins
33-
nixl_lib_deps += [ ucx_mo_backend_interface, cuda_dep ]
34-
endif
35-
3632
if 'POSIX' in static_plugins
3733
nixl_lib_deps += [ posix_backend_interface ]
3834
endif

src/core/nixl_plugin_manager.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -403,10 +403,6 @@ void nixlPluginManager::registerBuiltinPlugins() {
403403
NIXL_REGISTER_STATIC_PLUGIN(UCX)
404404
#endif
405405

406-
#ifdef STATIC_PLUGIN_UCX_MO
407-
NIXL_REGISTER_STATIC_PLUGIN(UCX_MO)
408-
#endif
409-
410406
#ifdef STATIC_PLUGIN_GDS
411407
#ifndef DISABLE_GDS_BACKEND
412408
NIXL_REGISTER_STATIC_PLUGIN(GDS)

0 commit comments

Comments
 (0)