Skip to content

[realtime] Adding unified "kernel" support for UDP. - #5337

Open
Renaud-K wants to merge 1 commit into
NVIDIA:mainfrom
Renaud-K:udp-unified
Open

[realtime] Adding unified "kernel" support for UDP.#5337
Renaud-K wants to merge 1 commit into
NVIDIA:mainfrom
Renaud-K:udp-unified

Conversation

@Renaud-K

@Renaud-K Renaud-K commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

Summary

cudaq_host_unified_loop (HOST + CUDAQ_KERNEL_UNIFIED) had no transport behind
it: every provider hardcoded get_cpu_dataplane = nullptr. This gives UDP a
unified data plane and runs the two-process UDP tests under both shapes.

Changes by file

udp_wrapper.h + udp_transceiver.cpp — unified (thread-free) mode:
cpu_udp_set_unified, cpu_udp_rx_poll, cpu_udp_tx_publish. No pump threads;
the consumer's dispatch thread drives the wire. rx_poll recvs MSG_DONTWAIT
into the in-order slot and back-pressures on tx_flags[slot]; tx_publish is
slot-addressed. Header documents the ring-contract changes: rx_flags unused,
slot addresses derived.

bridge_interface.h — docs: a provider serves the one shape it was
configured for and refuses the other.

udp/bridge_impl.cpp — adds --unified, implements get_cpu_dataplane.
get_transport_context(UNIFIED) returns OK with a NULL launch_fn. Shapes are
exclusive both ways, so mis-wiring gets UNSUPPORTED.

gpu_roce/bridge_impl.cpp — same rule; previously a consumer that forgot
--unified could take the launch_fn and race the 3-kernel monitor.

cudaq_realtime_test_server.cpp — argv split at -- (server options before,
bridge options after). Adds support for the legacy cudaq_dispatcher_set_launch_fn and
cudaq_dispatcher_set_unified_launch_fn.

Tests — +8 transceiver cases, +6 provider cases, and
test_udp_two_process.cpp now instantiated over {"ring", "unified"}.

Signed-off-by: Renaud Kauffmann <rkauffmann@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Aug 31, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@github-actions github-actions Bot added the realtime Related to CUDA-Q realtime label Aug 31, 2026
@Renaud-K
Renaud-K requested review from 1tnguyen and cketcham2333 and removed request for 1tnguyen August 31, 2026 23:35
@Renaud-K Renaud-K self-assigned this Aug 31, 2026
@Renaud-K Renaud-K changed the title Adding unified "kernel" support for UDP. [realtime] Adding unified "kernel" support for UDP. Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

realtime Related to CUDA-Q realtime

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant