[feat] introduce payload transfer abstraction and NIXL-UCX backend - #8
Open
Ginray wants to merge 1 commit into
Open
[feat] introduce payload transfer abstraction and NIXL-UCX backend#8Ginray wants to merge 1 commit into
Ginray wants to merge 1 commit into
Conversation
Ginray
force-pushed
the
hixl-ucx-payload-refactor2
branch
from
September 2, 2026 09:45
ae965ca to
d18010f
Compare
Ginray
force-pushed
the
hixl-ucx-payload-refactor2
branch
2 times, most recently
from
September 2, 2026 10:21
a674b43 to
1326cdb
Compare
Signed-off-by: Ginray <ginray0215@gmail.com>
Ginray
force-pushed
the
hixl-ucx-payload-refactor2
branch
from
September 2, 2026 10:22
1326cdb to
7bc6cf3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
SimpleStoragecurrently couples payload transfer with its ZMQ request path, which makes it difficult to add alternative high-throughput transports without changing storage routing and public APIs.This PR introduces a small payload-transfer abstraction so that
SimpleStoragecan keep ZMQ as its control plane while allowing Host-to-Host payloads to use alternative transports such as NIXL-UCX.The goals are to:
SimpleStorageAPIs and default ZMQ behavior compatible;Summary
PayloadTransferas the payload backend interface forSimpleStorage.Design
AsyncSimpleStorageManagerselects the configured payload backend and delegates logical payload PUT/GET operations toPayloadTransfer.On the StorageUnit side, the selected
PayloadTransferhandles backend-specific PUT/GET requests, whileSimpleStorageUnitcontinues to own storage semantics, data access, CLEAR, metrics, and checkpoint operations.For NIXL-UCX:
Usage
The default remains ZMQ.
To enable NIXL-UCX:
See
docs/nixl_ucx_payload.mdfor installation, UCX configuration, and RDMA verification.Compatibility
SimpleStoragePUT/GET/CLEAR callers and public APIs remain unchanged.Validation
Two-node A2 SimpleStorage tests covered 33 payload sizes from 128 KiB to 1 GiB. All PUT/GET/CLEAR operations and data checks passed.
Native UCX is shown only as a benchmark reference and is not part of this PR.
Median MiB/s, PUT / GET.
The fixed real DAPO payload produced identical digests and training inputs through ZMQ and NIXL-UCX. Both paths completed 20/20 VIME steps on 80 real DAPO problems without OOM or malformed output.
Follow-up
mainonce it is considered stable.