You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: experimental/CollectiveX/README.md
+10-5Lines changed: 10 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,18 +13,22 @@ responsibility. The full measurement methodology is in [docs/methodology.md](doc
13
13
14
14
The workload uses packed placement and one pinned `fixed-profile` resource configuration per
15
15
backend/topology; there is no tuning sweep. Combine is always BF16; dispatch precision is a swept
16
-
dimension — a BF16 control plus a caller-prequantized FP8 dispatch on every backend. Coverage is
17
-
uniform routing only. Cases run in one of two modes:
16
+
dimension — a BF16 control plus an FP8 dispatch on every backend, caller-prequantized in `normal`
17
+
mode (in `low-latency` the DeepEP and UCCL-EP kernels quantize internally from BF16; MoRI stays
18
+
caller-prequantized). Coverage is uniform routing only. Cases run in one of two modes:
18
19
19
20
-`normal` uses `layout-and-dispatch-v1`, rank-deduplicated token payloads, and activation-only,
20
21
unweighted rank-sum combine. It runs the full decode and prefill ladders.
21
22
-`low-latency` uses each backend's decode-optimized kernel family: on DeepEP the legacy
22
23
`deep_ep.Buffer` IBGDA `low_latency_dispatch`/`low_latency_combine` (a per-expert padded receive
23
-
and a source-side gate-weighted combine); on MoRI the `IntraNodeLL` kernel (single-call,
24
+
and a source-side gate-weighted combine); on UCCL-EP the same legacy `Buffer` low-latency kernels
25
+
over its CPU-proxy transport; on MoRI the `IntraNodeLL` kernel (single-call,
24
26
pure-intranode, same compact layout and unweighted rank-sum combine as `IntraNode`). It is a
25
27
decode-phase-only, per-SKU-capability-gated addition whose runnable set differs from `normal`'s, so
26
-
it is enabled from each SKU's `ll_backends` registry entry (currently DeepEP V2 EP8 on H100/H200/B200
27
-
and MoRI EP8 on MI300X/MI325X/MI355X). Scoped single-node EP8 runs over the intra-node NVLink/XGMI
28
+
it is enabled from each SKU's `ll_backends` registry entry (currently DeepEP V2 EP8 on H100/H200/B200,
29
+
MoRI EP8 on MI300X/MI325X/MI355X, and UCCL-EP EP8 on H100/H200/B200 only — UCCL's low-latency kernel
30
+
trips a warp-group assertion on AMD's CU count, so the AMD SKUs keep UCCL-EP normal mode without LL).
31
+
Scoped single-node EP8 runs over the intra-node NVLink/XGMI
28
32
low-latency path (no `/dev/gdrdrv` needed — validated on H200 with it absent); NVSHMEM/IBGDA on the
29
33
wire is only a multi-node scale-out (EP16) concern.
30
34
@@ -63,6 +67,7 @@ scale-up domain.
63
67
|---|---|
64
68
| DeepEP V2 |`normal` mode is PR #605`ElasticBuffer` plus exact upstream #630 and #640 fixes: LSA for scale-up and GIN for x86 EP16 scale-out. FP8 dispatch via `use_fp8_dispatch` (blockwise e4m3fn) alongside BF16. `low-latency` mode is the legacy `deep_ep.Buffer` IBGDA decode kernels (per-expert padded layout, weighted combine, `use_fp8` e4m3fn), decode/EP8 only |
65
69
| MoRI |`normal` mode uses the direct `IntraNode` kernel for scale-up EP8 on every CDNA SKU and pins `InterNodeV1` for EP16 over 2x8 XGMI + RDMA. `low-latency` mode selects the `IntraNodeLL` decode kernel (single-call, pure-intranode, same compact layout and unweighted combine as `IntraNode`), decode/EP8 only. FP8 dispatch is caller-prequantized (per-SKU e4m3fnuz on gfx942, e4m3fn on gfx950); combine stays BF16 (`quant_type=none`) alongside BF16 dispatch |
70
+
| UCCL-EP | [UCCL](https://github.com/uccl-project/uccl) EP: a drop-in, API-identical DeepEP replacement whose CPU proxies issue GPUDirect RDMA over plain `libibverbs` (no NVSHMEM/IBGDA), with software message ordering, atomics, and flow control; scale-up is single-node `cudaIpc` over NVLink/XGMI (never MNNVL). `normal` mode is the legacy `Buffer` `dispatch`/`combine` (unweighted rank-sum); `low-latency` reuses the legacy `low_latency_dispatch`/`low_latency_combine` decode kernels (weighted combine), decode/EP8 only. FP8 dispatch is caller-prequantized in `normal` mode (blockwise e4m3fn, per-SKU e4m3fnuz on gfx942); in `low-latency` mode the caller sends BF16 and the decode kernel quantizes to e4m3 internally (`use_fp8`). Combine is BF16. Runs on NVIDIA and AMD (H100/H200/B200 + MI300X/MI325X/MI355X), EP8 scale-up. Cross-node EP16 is functional (the internode RDMA path connects and the light case passes correctness) but its CPU-proxy throughput overruns the standardized per-case wall-clock budget on heavy token counts, so EP16 is an unsupported coverage row for now |
66
71
67
72
DeepEP V2 means the `ElasticBuffer` implementation introduced by
68
73
[DeepEP PR #605](https://github.com/deepseek-ai/DeepEP/pull/605), not a newer legacy `Buffer` build.
0 commit comments