[FEA] Add a DAQIRI raw Ethernet to UCX GPU egress example
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 36
- Forks
- 11
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 25
Description
Is your feature request related to a problem? Please describe.
DAQIRI users need a practical example of receiving raw Ethernet data, processing it with CUDA, and forwarding the result to another GPU-capable system using UCX/UCP over RoCEv2.
Describe the solution you'd like
Add an opt-in two-host example implementing:
Raw data source → DAQIRI raw RX → batched CUDA processing
→ UCX/RoCEv2 → GPU-accessible receiver
The example should demonstrate:
- Receiving and assembling packetized data with DAQIRI.
- Applying representative batched CUDA processing.
- Sending processed payloads through UCX/UCP.
- Receiving into GPU-accessible memory.
- Bounded receiver capacity and overload accounting.
- UCX-only, staged, and complete-pipeline benchmarks.
- A UCX-enabled container, example configurations, and a tutorial modeled after the ResNet50 example.
- Mapped pinned memory support for DGX Spark, while retaining CUDA-device support for other systems.
Describe alternatives you've considered
Using DAQIRI multi-engine support, a DAQIRI UCX engine, custom verbs egress, or host-staged sockets would add unnecessary complexity for an example application.
Additional context
A prototype is available on feat/ucx-gpu-egress-example.
On the two-Spark setup, it delivered and GPU-validated 1.6 million processed payloads at approximately 94.94 Gbit/s, with zero drops, sequence gaps, or validation failures.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Review the prototype on feat/ucx-gpu-egress-example and the existing ResNet50 example first, then map the requested two-host raw-RX, CUDA, UCX/RoCEv2, and GPU-accessible receive flow to the project. Done means an opt-in example with configurations, a UCX-enabled container, tutorial, bounded receiver accounting, and the requested benchmark modes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- data-engineering, hpc, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100