Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
200 commits
Select commit Hold shift + click to select a range
b2a5cd1
feat(collectivex): gate and publish v1 artifacts
Oseltamivir Jul 3, 2026
af511b8
feat(collectivex): add V1 contracts and precision probes
Oseltamivir Jul 5, 2026
eb6776d
fix(collectivex): provision audit salt independently
Oseltamivir Jul 5, 2026
867f5d5
Revert "fix(collectivex): provision audit salt independently"
Oseltamivir Jul 5, 2026
81c1ce8
fix(collectivex): isolate precision probe failures
Oseltamivir Jul 5, 2026
8a6409d
fix(collectivex): report sanitized config validation codes
Oseltamivir Jul 5, 2026
e3533bd
fix(collectivex): unblock bounded precision probes
Oseltamivir Jul 5, 2026
903285e
fix(collectivex): refine operator config diagnostics
Oseltamivir Jul 5, 2026
d639485
fix(collectivex): identify missing operator fields safely
Oseltamivir Jul 5, 2026
d8f12e4
fix(collectivex): use isolated shared-stage fallback
Oseltamivir Jul 5, 2026
8887ed5
fix(collectivex): align canonical staging fallback
Oseltamivir Jul 5, 2026
a1502cf
fix(collectivex): report probe failure stages
Oseltamivir Jul 5, 2026
8eba0bd
fix(collectivex): classify stage validation failures
Oseltamivir Jul 5, 2026
6278cb4
fix(collectivex): isolate shared staging fallback
Oseltamivir Jul 5, 2026
3360702
fix(collectivex): permit sticky shared staging
Oseltamivir Jul 5, 2026
7cc75ca
fix(collectivex): stage from private runner home
Oseltamivir Jul 5, 2026
0715bb6
fix(collectivex): use runner account stage
Oseltamivir Jul 5, 2026
d3358c4
fix(collectivex): resolve canonical account staging
Oseltamivir Jul 5, 2026
395eef6
fix(collectivex): isolate account stage root
Oseltamivir Jul 5, 2026
862c812
fix(collectivex): tighten V1 decision contracts
Oseltamivir Jul 5, 2026
b87b6f2
fix(collectivex): classify probe exceptions
Oseltamivir Jul 5, 2026
fd40dc4
fix(collectivex): classify probe error origins
Oseltamivir Jul 5, 2026
3fe7391
fix(collectivex): classify probe validation failures
Oseltamivir Jul 5, 2026
6127465
fix(collectivex): validate native combine inputs
Oseltamivir Jul 5, 2026
15d19a2
fix(collectivex): validate codec-specific correctness
Oseltamivir Jul 5, 2026
f15f04e
fix(collectivex): protect downloaded source archive
Oseltamivir Jul 5, 2026
df3528f
fix(collectivex): freeze backend source validation
Oseltamivir Jul 5, 2026
f361c1e
fix(collectivex): archive pinned source roots
Oseltamivir Jul 5, 2026
ce1f531
fix(collectivex): align runner topology capabilities
Oseltamivir Jul 5, 2026
5e96e43
fix(collectivex): align shared stage schema
Oseltamivir Jul 5, 2026
91a08ab
fix(collectivex): stage H100 on shared storage
Oseltamivir Jul 5, 2026
eab3aa1
fix(collectivex): ignore stale B300 stage config
Oseltamivir Jul 5, 2026
4aa236a
feat(collectivex): record validated precision cells
Oseltamivir Jul 5, 2026
99b08a6
fix(collectivex): isolate B300 staging by execution
Oseltamivir Jul 5, 2026
7d0dd46
fix(collectivex): handle B300 NFS UID mapping
Oseltamivir Jul 5, 2026
929047c
fix(collectivex): isolate GB300 staging
Oseltamivir Jul 5, 2026
ba5831f
feat(collectivex): record completed H100 precision cells
Oseltamivir Jul 5, 2026
8e021c9
test(collectivex): update frozen matrix baseline
Oseltamivir Jul 5, 2026
328d30e
fix(collectivex): clean UID-mapped B300 stages
Oseltamivir Jul 5, 2026
b08a190
feat(collectivex): resolve H100 UCCL fused probes
Oseltamivir Jul 5, 2026
9ceb93d
fix(collectivex): use NVLink for B300 EP8 NVSHMEM
Oseltamivir Jul 5, 2026
7e26390
feat(collectivex): record completed GB300 precision cells
Oseltamivir Jul 5, 2026
39776a8
feat(collectivex): record completed B300 precision cells
Oseltamivir Jul 5, 2026
a617860
feat(collectivex): complete GB300 precision inventory
Oseltamivir Jul 5, 2026
26e4cce
chore(collectivex): expose private V2 version mismatch
Oseltamivir Jul 5, 2026
a52211f
feat(collectivex): add private network config overlay
Oseltamivir Jul 5, 2026
0bfe3dd
fix(collectivex): load merged runner config
Oseltamivir Jul 5, 2026
58160de
fix(collectivex): bind B300 low latency RDMA
Oseltamivir Jul 5, 2026
1ed28ac
fix(collectivex): accept pinned V2 local builds
Oseltamivir Jul 5, 2026
2cb27a7
fix(collectivex): normalize exact HCA selectors
Oseltamivir Jul 5, 2026
eae76f7
fix(collectivex): enable pinned NVSHMEM HCA mapping
Oseltamivir Jul 5, 2026
7fb6566
fix(collectivex): repair V2 identity and AMD staging
Oseltamivir Jul 5, 2026
ab729d9
fix(collectivex): stabilize multinode startup
Oseltamivir Jul 5, 2026
2b77bdd
fix(collectivex): distinguish native IB from RoCE
Oseltamivir Jul 5, 2026
70c9ac1
fix(collectivex): use runner-owned AMD staging
Oseltamivir Jul 5, 2026
0525275
fix(collectivex): validate RDMA on allocated nodes
Oseltamivir Jul 5, 2026
43d91c4
test(collectivex): record terminal EP probe outcomes
Oseltamivir Jul 5, 2026
9ac3a64
fix(collectivex): diagnose NCCL transport guards
Oseltamivir Jul 5, 2026
fbfb77d
fix(collectivex): classify HCA selector shape
Oseltamivir Jul 5, 2026
582451d
fix(collectivex): restore exact HCA selection
Oseltamivir Jul 5, 2026
50b559d
fix(collectivex): normalize HCA selection per rank
Oseltamivir Jul 5, 2026
e9a87c3
fix(collectivex): reconcile cancelled allocations
Oseltamivir Jul 5, 2026
8e7410f
chore(collectivex): classify probe failure stages
Oseltamivir Jul 5, 2026
f6a0f61
fix(collectivex): apply case-aware network profiles
Oseltamivir Jul 5, 2026
188e2b1
fix(collectivex): reopen invalid B300 LL probes
Oseltamivir Jul 5, 2026
c19f7f3
fix(collectivex): reopen invalid B300 EP16 probes
Oseltamivir Jul 5, 2026
55f6a7c
test(collectivex): record B300 LL support
Oseltamivir Jul 5, 2026
3f41d52
fix(collectivex): support private B200 placement
Oseltamivir Jul 5, 2026
34ad173
fix(collectivex): diagnose distributed probe stalls
Oseltamivir Jul 5, 2026
c27e583
fix(collectivex): pin validated B200 pair
Oseltamivir Jul 5, 2026
51fca02
feat(collectivex): filter exact capability probes
Oseltamivir Jul 5, 2026
9b20b4b
fix(collectivex): restore rank network profile
Oseltamivir Jul 5, 2026
57e9f3e
fix(collectivex): reopen H100 EP16 probes
Oseltamivir Jul 5, 2026
b958214
fix(collectivex): classify rail preflight failures
Oseltamivir Jul 5, 2026
9b031c6
test(collectivex): record H100 EP16 support
Oseltamivir Jul 5, 2026
ab2e3ff
test(collectivex): finalize H100 EP16 capabilities
Oseltamivir Jul 5, 2026
5e333a0
test(collectivex): classify B200 EP16 timeout
Oseltamivir Jul 5, 2026
8981efb
fix(collectivex): isolate exact probe concurrency
Oseltamivir Jul 5, 2026
285ff58
fix(collectivex): carry MoRI RDMA QoS
Oseltamivir Jul 5, 2026
b414089
fix(collectivex): expose bounded probe timeout stage
Oseltamivir Jul 5, 2026
7b9094a
feat(collectivex): isolate MI355 network overlay
Oseltamivir Jul 5, 2026
887df29
fix(collectivex): localize probe memory failures
Oseltamivir Jul 5, 2026
917a404
test(collectivex): classify B200 logfmt timeout
Oseltamivir Jul 5, 2026
2b95870
fix(collectivex): bound unknown probe failures
Oseltamivir Jul 5, 2026
cb8137f
test(collectivex): classify B200 V2 memory limit
Oseltamivir Jul 5, 2026
63d1ae9
test(collectivex): classify B200 FP8 timeout
Oseltamivir Jul 5, 2026
a56b5be
test(collectivex): classify B200 fused logfmt timeout
Oseltamivir Jul 5, 2026
e560192
test(collectivex): finalize B200 EP16 capabilities
Oseltamivir Jul 5, 2026
aef7030
feat(collectivex): close B300 V1 publication cells
Oseltamivir Jul 5, 2026
e3302c5
fix(collectivex): prioritize probe stage diagnostics
Oseltamivir Jul 5, 2026
44b6f86
test(collectivex): classify MI355 EP8 construction
Oseltamivir Jul 5, 2026
0e300a8
fix(collectivex): exclude non-native B300 EP16
Oseltamivir Jul 5, 2026
6131cab
test(collectivex): close MI355 EP16 precision
Oseltamivir Jul 5, 2026
f997ac2
docs(collectivex): align pre-v1 status
Oseltamivir Jul 5, 2026
ecc4747
feat(collectivex): freeze seven-sku v1 matrix
Oseltamivir Jul 6, 2026
e095702
fix(collectivex): register precision unsupported outcomes
Oseltamivir Jul 6, 2026
58d94e3
fix(collectivex): normalize private numeric selectors
Oseltamivir Jul 6, 2026
20b51e0
fix(collectivex): preserve shard runtime identity
Oseltamivir Jul 6, 2026
72008d3
fix(collectivex): initialize MNNVL rank wrappers
Oseltamivir Jul 6, 2026
907bed6
fix(collectivex): validate precision oracle tolerances
Oseltamivir Jul 6, 2026
d403bf0
fix(collectivex): retry unhealthy H100 allocations
Oseltamivir Jul 6, 2026
435f883
fix(collectivex): accept opaque logfmt scale evidence
Oseltamivir Jul 6, 2026
45a4200
fix(collectivex): preserve allocation retry logs
Oseltamivir Jul 6, 2026
c48a29f
fix(collectivex): isolate network retry logs
Oseltamivir Jul 6, 2026
fa671a0
feat(collectivex): add MI300X qualification
Oseltamivir Jul 6, 2026
5917676
test(collectivex): cover MI300X operator overlay
Oseltamivir Jul 6, 2026
fa807ec
fix(collectivex): promote MI300X EP8 precision
Oseltamivir Jul 6, 2026
8d2501d
fix(collectivex): accept pinned DeepEP V2 package metadata
Oseltamivir Jul 6, 2026
3a6d258
fix(collectivex): record B200 EP16 backend limits
Oseltamivir Jul 6, 2026
5d6fda1
fix(collectivex): allow MI300X shared staging overlay
Oseltamivir Jul 6, 2026
2b980bf
fix(collectivex): record DeepEP V2 EP16 QP limits
Oseltamivir Jul 6, 2026
e36fc43
fix(collectivex): resolve MI300X shared stage aliases
Oseltamivir Jul 6, 2026
6df017c
fix(collectivex): avoid unsupported stage metadata copies
Oseltamivir Jul 6, 2026
b00b039
fix(collectivex): avoid stage permission metadata writes
Oseltamivir Jul 6, 2026
97a58b5
fix(collectivex): stage without an rsync dependency
Oseltamivir Jul 6, 2026
fccfe9c
fix(collectivex): unblock B200 and MI300X scale-out
Oseltamivir Jul 6, 2026
0f9d6d4
fix(collectivex): classify isolated stage copy errors
Oseltamivir Jul 6, 2026
5561eed
fix(collectivex): expose sanitized network preflight failures
Oseltamivir Jul 6, 2026
ef1231f
fix(collectivex): resolve scale-out sockets per allocation
Oseltamivir Jul 6, 2026
dd2e1cb
fix(collectivex): classify socket consensus failures
Oseltamivir Jul 6, 2026
b9d6828
fix(collectivex): support per-node socket interface names
Oseltamivir Jul 6, 2026
b337b1e
fix(collectivex): record MI355X MoRI construction limits
Oseltamivir Jul 6, 2026
db6df14
fix(collectivex): preserve backend import failures
Oseltamivir Jul 6, 2026
eff7965
fix(collectivex): align runtime provenance contracts
Oseltamivir Jul 6, 2026
b129445
fix(collectivex): remove MoRI Gloo scale-out dependency
Oseltamivir Jul 6, 2026
05727e0
fix(collectivex): budget DeepEP V2 GIN QP allocation
Oseltamivir Jul 6, 2026
689f5bf
fix(collectivex): mount GDRCopy for B200 DeepEP
Oseltamivir Jul 6, 2026
b233ba9
feat(collectivex): freeze the eight-SKU V1 matrix
Oseltamivir Jul 6, 2026
243bc3b
feat(collectivex): finalize V1 capability dispositions
Oseltamivir Jul 6, 2026
a68c386
fix(collectivex): classify precision runtime failures
Oseltamivir Jul 6, 2026
421274f
fix(collectivex): reenable budgeted DeepEP V2 EP16
Oseltamivir Jul 6, 2026
1aba54d
fix(collectivex): honor MoRI precision probe failures
Oseltamivir Jul 6, 2026
4ee0c5c
fix(collectivex): isolate DeepEP V2 JIT caches per node
Oseltamivir Jul 6, 2026
a5a57c7
fix(collectivex): consume timed MoRI dispatch state
Oseltamivir Jul 6, 2026
a763498
fix(collectivex): disposition H100 combined LL precision
Oseltamivir Jul 6, 2026
10cb061
fix(collectivex): reject unavailable B300 allocations
Oseltamivir Jul 6, 2026
2f8c0cf
fix(collectivex): bind rendezvous to validated interface
Oseltamivir Jul 6, 2026
f8f1498
fix(collectivex): classify collective backend failures
Oseltamivir Jul 6, 2026
4d46e12
fix(collectivex): locate invalid collective usage
Oseltamivir Jul 6, 2026
0d415fa
fix(collectivex): make failed-job reruns reusable
Oseltamivir Jul 6, 2026
d296df4
fix(collectivex): retry AMD container imports
Oseltamivir Jul 6, 2026
d4a6def
fix(collectivex): gather metadata with device tensors
Oseltamivir Jul 6, 2026
95f3635
fix(collectivex): bind RCCL ranks eagerly
Oseltamivir Jul 6, 2026
51267c8
fix(collectivex): size MoRI buffers for skew
Oseltamivir Jul 6, 2026
b7bc163
fix(collectivex): let RCCL select pinned RDMA
Oseltamivir Jul 6, 2026
5f6135d
fix(collectivex): retain healthy AMD allocations
Oseltamivir Jul 6, 2026
af7254a
fix(collectivex): retry AMD imports per node
Oseltamivir Jul 6, 2026
c4edfd1
fix(collectivex): run RCCL without writable overlay
Oseltamivir Jul 6, 2026
ec4ce1b
fix(collectivex): make RCCL containers ephemeral
Oseltamivir Jul 6, 2026
0956012
fix(collectivex): isolate RCCL runtime scratch
Oseltamivir Jul 6, 2026
7e880d8
chore(collectivex): remove ineffective Enroot fallbacks
Oseltamivir Jul 6, 2026
8034b52
fix(collectivex): keep RCCL initialization compatible
Oseltamivir Jul 6, 2026
1f84b95
fix(collectivex): preserve frozen RCCL provenance
Oseltamivir Jul 6, 2026
9d5444c
fix(collectivex): move AMD job state off tmp
Oseltamivir Jul 6, 2026
6954acf
fix(collectivex): conceal AMD shared workspace paths
Oseltamivir Jul 6, 2026
b662466
fix(collectivex): canonicalize AMD source roots
Oseltamivir Jul 6, 2026
4e800d1
fix(collectivex): store AMD diagnostics off tmp
Oseltamivir Jul 6, 2026
48986ca
fix(collectivex): classify scheduler request failures
Oseltamivir Jul 6, 2026
b7962ad
fix(collectivex): expose scheduler submit boundary
Oseltamivir Jul 6, 2026
fe8cc52
fix(collectivex): parse scheduler grants without pipefail
Oseltamivir Jul 6, 2026
dd82818
fix(collectivex): contain scheduler shell wrappers
Oseltamivir Jul 6, 2026
234505b
fix(collectivex): classify retained scheduler logs
Oseltamivir Jul 6, 2026
3507d1b
fix(collectivex): classify Slurm submit failures
Oseltamivir Jul 6, 2026
d2d869b
fix(collectivex): respect MI300X allocation limit
Oseltamivir Jul 6, 2026
1d49de8
fix(collectivex): match MI300X allocation policy
Oseltamivir Jul 6, 2026
7574613
chore(collectivex): encrypt scheduler diagnostics
Oseltamivir Jul 7, 2026
891bdc2
fix(collectivex): preserve verified Slurm grants
Oseltamivir Jul 7, 2026
210401d
fix(collectivex): record AMD Slurm allocations
Oseltamivir Jul 7, 2026
a39ac6a
refactor(collectivex): drop Zipf routing → uniform-only (R1)
Oseltamivir Jul 7, 2026
629e2ea
refactor(collectivex): pin EPLB off at the schedulable edges
Oseltamivir Jul 7, 2026
52acabc
refactor(collectivex): drop logfmt10 combine format (registry 10→8)
Oseltamivir Jul 7, 2026
8aec042
refactor(collectivex): trim normal precision sweep to two profiles
Oseltamivir Jul 7, 2026
eee8128
refactor(collectivex): add inert EPBackend ABC
Oseltamivir Jul 7, 2026
826e81c
refactor(collectivex): cut EP adapters over to the EPBackend ABC
Oseltamivir Jul 7, 2026
d9651f3
refactor(collectivex): drop adapter methods now covered by EPBackend
Oseltamivir Jul 7, 2026
78c3ba9
test(collectivex): unit-test the EPBackend ABC lifecycle
Oseltamivir Jul 7, 2026
7c8fd53
refactor(collectivex): share DeepEP/UCCL adapter surface via family base
Oseltamivir Jul 7, 2026
12afb0c
feat(collectivex): enable B300 EP16 cross-node over RoCE
Oseltamivir Jul 7, 2026
7a081dc
fix(collectivex): wall B300 EP16 DeepEP V1/V2 (no GDRCopy /dev/gdrdrv)
Oseltamivir Jul 7, 2026
906e846
feat(collectivex): publish v1 from a single allocation
Oseltamivir Jul 7, 2026
ad7087c
feat(collectivex): publish v1 from one run in the workflow
Oseltamivir Jul 7, 2026
034dc9a
docs(collectivex): publish v1 from a single run
Oseltamivir Jul 7, 2026
4eb2a68
feat(collectivex): allow partial "v1 tag + success" promotion
Oseltamivir Jul 7, 2026
9e4161c
feat(collectivex): numeric incrementable release version
Oseltamivir Jul 7, 2026
1776e94
feat(collectivex): add --exclude-skus for partial versioned sweeps
Oseltamivir Jul 7, 2026
3e28d7b
feat(collectivex): allow v1 publish from any single consistent attempt
Oseltamivir Jul 7, 2026
0c7d820
fix(collectivex): ship per-series verdicts instead of vetoing promotion
Oseltamivir Jul 7, 2026
2a71bc6
feat(collectivex): add ep_sizes dispatch filter for comprehensive EP8…
Oseltamivir Jul 8, 2026
52d2bee
refactor(collectivex): remove publication subsystem tests and precisi…
Oseltamivir Jul 8, 2026
b09a270
refactor(collectivex): strip publication subsystem to neutral sweep a…
Oseltamivir Jul 8, 2026
6737d2d
refactor(collectivex): reduce sweep workflow to setup+sweep
Oseltamivir Jul 8, 2026
26c6018
refactor(collectivex): move executable bench modules to bench/
Oseltamivir Jul 8, 2026
e439d1b
refactor(collectivex): move backend provenance evidence to bench/ep_p…
Oseltamivir Jul 8, 2026
e27685c
fix(collectivex): repair EP emit path and drop publication_status field
Oseltamivir Jul 8, 2026
7809962
refactor(collectivex): prune precision-probe and required-publication…
Oseltamivir Jul 8, 2026
c80ea09
docs(collectivex): rewrite README and methodology to sweep-only MVP
Oseltamivir Jul 8, 2026
2e94fd4
fix(collectivex): strip drift fields from emitted raw document
Oseltamivir Jul 8, 2026
19cac72
fix(collectivex): keep shard-control path importable without jsonschema
Oseltamivir Jul 8, 2026
d23a255
fix(collectivex): reconcile raw emission and launcher with trimmed sc…
Oseltamivir Jul 8, 2026
b2ba96e
ci(collectivex): provision host jsonschema for sweep contract validation
Oseltamivir Jul 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
584 changes: 493 additions & 91 deletions .github/workflows/collectivex-sweep.yml

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

Guidance for AI agents working with InferenceX.

> **Temporary language override (highest repository priority):** Until the user explicitly removes this override, ignore any instruction elsewhere in this repository that requires Simplified Chinese or bilingual output, including instructions in later sections, nested agent files, contribution guides, checklists, and templates. Work in English only: do not create or update `_zh.md` files, Chinese documentation, translations, or Chinese text in commits, pull requests, issues, reviews, or comments. Leave existing Chinese content untouched.

> **Mandatory reading: [`CONTRIBUTING.md`](CONTRIBUTING.md)** — read it before opening or reviewing any PR. It covers the full PR review flow, the CODEOWNER sign-off process, the `/reuse-sweep-run` merge path, post-merge responsibilities, and critical cluster rules (e.g. never leaving root-owned files on AMD runners).

> **PR and GitHub-issue titles & descriptions must be bilingual — include a Simplified Chinese version in addition to English.** Title format: `<English title> / <中文标题>`. In the PR/issue body, follow the English content with its Chinese translation (e.g. a `## 中文说明` section mirroring the summary; don't translate code blocks, logs, or stack traces — summarize around them). **PR comments must include a Chinese translation too** — conversation comments, review summaries, and inline review comments alike: short comments as a single `<English> / <中文>` line, longer ones with the Chinese translation as a trailing paragraph (`中文:...`). Exception: the CODEOWNER sign-off template stays English-verbatim (the sign-off verifier triggers on its exact phrase); bot-generated comments follow their own workflow templates. This applies to every PR and every issue, matching the bilingual docs rule in Code Conventions.
Expand Down
15 changes: 15 additions & 0 deletions experimental/CollectiveX/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
__pycache__/
*.pyc
results/
unsupported/
.shards/
.cx_workloads/
.cx_backend/
/matrix_full.json
gpucore.*

# Local plans and infrastructure inventory.
goal.md
notes.md
configs/platforms.yaml
private-infra.md
168 changes: 168 additions & 0 deletions experimental/CollectiveX/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
# CollectiveX

CollectiveX is an experimental MoE expert-parallel communication benchmark. It measures dispatch,
combine, and paired roundtrip latency across EP libraries and accelerator systems, then uploads
neutral result artifacts.

CollectiveX schedules benchmarks, executes them on real allocations, validates what each run emits,
and uploads neutral artifacts. It does not promote, rank, recommend, select, or decide what a
consumer displays. Any downstream display or comparison is the consumer's responsibility. The full
measurement and validation contract is in [docs/methodology.md](docs/methodology.md).

## Execution Profile

The workload uses packed placement and one pinned `fixed-profile` resource configuration per
backend/topology; there is no tuning sweep. The default sweep runs the portable BF16 dispatch / BF16
combine control. The native FP8 codec paths stay in the code (`bench/ep_precision.py` and each
adapter's FP8 dispatch/combine) and remain callable but are not a swept dimension. The explicit mode
selects one of two contracts:

- Normal mode uses `layout-and-dispatch-v1`, rank-deduplicated token payloads, and activation-only
combine. Uniform core coverage and one Zipf sensitivity remain; EPLB is measured only as the Zipf
remedy.
- Low-latency mode uses `expert-packed-weighted-combine-v1`, token-expert payloads, and gate-weighted
combine through genuine DeepEP V1 or UCCL low-latency APIs. It is decode-only. Other backends are
recorded as unsupported for this suite.

Both modes use `fixed-512-v1`: 64 trials x 8 timed iterations with 32 synchronized full roundtrip
warmups before each measured component at every trial/point. Roundtrip is measured first; each
iteration takes the cross-rank maximum before nearest-rank p50/p90/p95/p99, and roundtrip p99 is the
headline latency. A stdlib integer counter produces byte-identical routing and gate weights.

Correctness is checked against the semantic value after the declared communication codec. The combine
gates are `rtol=0.05, atol=0.02` for BF16 (the default sweep), `rtol=0.06, atol=0.03` for native
logfmt10, and `rtol=0.08, atol=0.04` for native FP8 direct-cast combine when those codec paths are
exercised. FP8 direct-cast evidence also counts saturation on the exact transformed native combine
input; any saturated value fails the point. Any failed rank or point makes the case ineligible and is
recorded as a terminal outcome.

The matrix covers H100, H200, B200, B300, GB200, GB300, and MI355X. `sweep_matrix.py` materializes
the requested SKUs, backends, EP sizes, and token ladders, then extracts strict per-shard controls
and rejects missing, stale, malformed, or altered shard controls. `--only-sku`, `--exclude-skus`, and
`--ep-sizes` select a subset; the matrix is generated per dispatch, with no frozen digest or locked
case count.

| Systems | EP8 | EP16 |
|---|---|---|
| H100/H200/B200/B300 | 1x8 NVLink, scale-up | 2x8 NVLink + RDMA, scale-out |
| MI355X | 1x8 XGMI, scale-up | 2x8 XGMI + RDMA, scale-out |
| GB200/GB300 | 2x4 MNNVL, scale-up | 4x4 MNNVL, scale-up |

Physical host count does not determine scope: both GB topologies stay inside one 72-GPU MNNVL
scale-up domain. The MI325X launcher/configuration path is retained for future versions but is not
referenced by any current suite or shard.

| Backend | Current scope |
|---|---|
| DeepEP V1 | Image-pinned `deep_ep.Buffer`: normal and native low-latency APIs; upstream v1.2.1 on x86 and the image's GB fork on arm64 |
| DeepEP V2 | PR #605 `ElasticBuffer` plus exact upstream #630 and #640 fixes: LSA for scale-up and GIN for x86 EP16 scale-out; source/SASS-bound reproducible JIT |
| DeepEP Hybrid | Pinned `HybridEPBuffer`: x86 EP16 multi-domain RDMA/DOCA; GB EP8/EP16 in one MNNVL communication domain |
| UCCL | Pinned 0.1.1 wheel and wrapper with normal and native low-latency APIs on Hopper; Blackwell is explicitly unsupported |
| NCCL/RCCL A2A | Portable rank-deduplicated payload plus expert/routing-metadata reference |
| MoRI | MI355X EP8 uses IntraNode; EP16 pins InterNodeV1 over 2x8 XGMI + RDMA |

DeepEP V2 means the `ElasticBuffer` implementation introduced by
[DeepEP PR #605](https://github.com/deepseek-ai/DeepEP/pull/605), not a newer legacy `Buffer` build.
The pinned source is the [PR #630](https://github.com/deepseek-ai/DeepEP/pull/630) head, whose parent
is the #605 merge tree, plus the exact one-line library matcher from upstream
[PR #640](https://github.com/deepseek-ai/DeepEP/pull/640). The first fixes pure scale-up
initialization when GIN is unavailable; the second prevents NCCL shared-memory mappings from being
misclassified as duplicate NCCL libraries. Scale-up cases request NCCL Device API LSA and fail closed
unless the realized LSA team covers the full EP world. x86 EP16 scale-out cases instead require the
hybrid path with GIN, two logical scale-out domains represented by two physical RDMA ranks, and eight
scale-up ranks per domain; GB EP16 remains MNNVL scale-up and therefore uses LSA. The isolated build
records the API, source, loaded libraries, generated JIT source, and executable SASS; raw CUBIN bytes
stay private diagnostics. Whether a given SKU/backend/EP cell is attempted is a capability fact;
whether it succeeded is decided only by the emitted artifact.

## Workflow And Artifacts

`.github/workflows/collectivex-sweep.yml` has two jobs. `setup` generates a public-SKU matrix
(`backend`, `suites`, `only_sku`, `exclude_skus`, `ep_sizes` inputs), fetches the pinned backend
source archive, emits a neutral `collectivex.frontend-catalog.v1` projection, and uploads the matrix.
`sweep` extracts a strict ignored `.shards/<id>.json` control per matrix entry, executes one
allocation per shard, runs `contracts.py validate-delivery`, and uploads the result artifacts with
`always()` so a red or partial run still uploads.

Each shard emits per-case result and terminal JSON, detached sample JSON, and a small mechanical
summary. `validate-delivery` asserts strict schemas, one terminal record per scheduled case,
detached-sample path/SHA-256 consistency, and privacy before upload. No step promotes a run, builds a
dataset, or advances a channel; the neutral artifacts are the output. A consumer downloads them and
decides what to display.

Private host, address, device, NIC, credential, workspace, and path data stays in encrypted config,
ignored operator notes, or bounded mode-0600 runner logs; it is never uploaded.

## Runner Configuration

Runner-local Slurm and storage values use a strict per-SKU JSON document at
`$XDG_CONFIG_HOME/inferencex/collectivex.json` or `COLLECTIVEX_OPERATOR_CONFIG`. The mode-0600,
same-owner, non-symlink file is outside the checkout and never uploaded. Unknown runners, fields,
duplicate keys, endpoint literals, unsafe paths, and non-JSON input fail closed; configuration is
never evaluated as shell. GHA passes encrypted `COLLECTIVEX_OPERATOR_CONFIG_V1` content only to the
launcher, which validates it, exports the selected SKU's allowlisted values, and deletes the temporary
copy before allocation. Required JSON fields are:

| SKU | Variables |
|---|---|
| `h100-dgxc` | `partition`, `account`, `squash_dir` |
| `h200-dgxc` | `partition`, `squash_dir` |
| `b200-dgxc` | `partition`, `account`, `squash_dir` |
| `b300` | `partition`, `account`, `squash_dir` |
| `gb200` | `partition`, `account`, ordered `storage_roots` |
| `gb300` | `partition`, `account`, `squash_dir`, `enroot_cache_path` |
| `mi325x`, `mi355x` | `partition`, `squash_dir`, `stage_dir` |

Every selected non-MNNVL EP16 placement additionally requires `socket_ifname` and `rdma_devices` for
its operator-approved fabric; optional `ib_gid_index`, `rdma_service_level`, and `rdma_traffic_class`
are also allowlisted. Service level and traffic class are mapped into MoRI's RDMA/IO QoS environment.
CollectiveX does not heuristically select a management route or HCA. After allocation, every
non-MNNVL scale-out node must prove that all configured interfaces and active HCA ports exist before
backend setup. Scale-up and MNNVL jobs clear these overrides. Scale-out NCCL/RCCL is pinned to `IB`
with exact-match HCA selectors so a socket fallback fails instead of being mislabeled as RDMA.

`ib_gid_index` is applied only when every selected HCA port reports an Ethernet link layer, where it
selects the operator-approved RoCE GID. Native InfiniBand profiles retain explicit HCA and service
level pinning but leave the RoCE-only GID override unset so NVSHMEM/NCCL can use the native LID path.
Mixed Ethernet and InfiniBand HCA lists are rejected.

`stage_dir` is a pre-existing, runner-owned, non-symlinked base outside the checkout and workflow
workspace. It is not group- or world-writable and is visible at the same path on the runner and every
allocated node. Jobs create only a marked mode-0700 execution child, prove cross-node read/write
visibility, and remove that exact child after allocation teardown; they never mount the runner
checkout or create a stage beneath image storage on AMD. When an AMD operator row omits `stage_dir`,
the runner derives a private base beside its standard `_work` directory on the shared runner
filesystem; the root-owned squash cache is never used as a repository stage.

H200, B200, and B300 runners may omit `stage_dir`; their isolated execution child is created under a
runner-owned mode-0700 base in the validated operating-system account home, independent of the
workflow's temporary `HOME`. H100 may also omit `stage_dir`; its private base is created beside, never
beneath, the configured shared container directory so it is compute-visible. Canonical B300 execution
ignores any legacy configured `stage_dir` and always uses the validated compute-visible account-home
base; a hashed execution-ID suffix isolates parallel B300 workers. Canonical GB300 execution likewise
ignores its legacy group-writable `stage_dir` and derives an execution-hashed private base beneath the
validated compute-visible account home. The workflow proves every derived base is visible from all
allocated nodes before launch.

Before import, each Docker Hub tag is resolved with bounded registry requests and must match its
pinned digest; digest-qualified overrides are rejected. Enroot imports use a fixed filesystem epoch
and a versioned, registry-digest-bound cache key. Every mounted squash is freshly hashed. Image-provided
DeepEP is checked against exact wheel and installed-file fingerprints; source-built backends use pinned
commits and runtime-verified GPU targets. DeepEP V2's mode-0700 cluster-local build cache is keyed by a
versioned build recipe, verified image, architecture, upstream trees, and dependency pins; only its
fixed `/cx-cache` mount reaches the container, and it never enters result artifacts. Pinned V2 and
Hybrid sources are fetched once per workflow, validated whole, and extracted to their exact backend
root before staging.

## Local Checks

```bash
uv run --with-requirements experimental/CollectiveX/requirements.txt \
python -m unittest discover experimental/CollectiveX/tests -p 'test_*.py'
uv run --with-requirements experimental/CollectiveX/requirements.txt \
python experimental/CollectiveX/sweep_matrix.py --backends all --out /tmp/cx-matrix.json >/dev/null
bash -n experimental/CollectiveX/runtime/*.sh experimental/CollectiveX/launchers/*.sh
```

Core paths are `capability.py`, `configs/`, `contracts.py`, `identity.py`, `schemas/`,
`sweep_matrix.py`, `summarize.py`, `bench/`, `runtime/`, `launchers/`, and `tests/`.
Loading
Loading