Releases: NVIDIA/daqiri
Releases · NVIDIA/daqiri
Release list
v2026.07.00
v2026.07.00
This marks DAQIRI's first release. DAQIRI sends and receives Ethernet packets into CPU and GPU memory through a C++/Python API, with GPUDirect zero-copy paths between the NIC and GPU.
Stream types and engines
- Raw Ethernet (
raw): DPDK engine by default, or the optional ibverbs engine. - Socket (
socket): UDP and TCP over Linux sockets, or RoCE over ibverbs.
A PCIe path for sensors on the PCIe bus (FPGAs, frame grabbers, and similar devices) is planned but not implemented, so this release covers raw Ethernet and sockets only.
Feature Highlights
- GPUDirect zero-copy: receive straight into GPU memory, either whole packets to GPU or with header-data split (headers to CPU, payload to GPU).
- Hardware flow steering: route packets on the NIC by UDP port or payload fields, set in YAML or added and removed at runtime.
- Packet reorder: aggregate and reorder RX packets on the GPU or CPU into a single output buffer.
- Container or source deployment: run from a container with all dependencies included, or build from source with CMake.
Initial PRs
- #7 - Add Socket API by @cliffburdick in #20
- #28 - Handle N/A memory clocks in check_nvidia_gpu_clocks() by @RamyaGuru in #30
- #29 - Fix MPS check and topology ANSI parsing in tune_system.py by @RamyaGuru in #31
- #5 - Merge tutorial site into main by @RamyaGuru in #36
- #5 - Replace placeholder bench output and stale names in benchmarking tutorial by @dleshchev in #38
- #37 - Fix stale doc references and rename tutorials/configuration.md by @RamyaGuru in #39
- #37 - Add CI gate for documentation drift by @RamyaGuru in #40
- #37 - Add documentation sync rule and drift guidance by @RamyaGuru in #42
- #43 - Improve errors on peermem/dmabuf by @cliffburdick in #41
- #46 update readme backends defaults tutorials by @RamyaGuru in #50
- #45 - Add DGX Spark (GB10) support to docs and examples by @dleshchev in #49
- #56 Fixed failed init leaves hugepage files behind in /dev/hugepages, blocking subsequent runs by @chloecrozier in #58
- #44 - Auto-bump num_bufs below 1.5x DPDK ring size with a warning by @dleshchev in #48
- #52 - base torch image option on build by @chloecrozier in #59
- #53 - Clean up legacy Holoscan/Holohub references in docs by @RamyaGuru in #64
- #65 - Add use-case decision tree to configuration tutorial for picking an example YAML by @RamyaGuru in #66
- #56, #44 - Restore DPDK bench paths broken on main by @dleshchev in #68
- #70 - Pin cmake-data alongside cmake in Dockerfile base stage by @dleshchev in #71
- #77 - Fix nmcli mtu property and drop -lmc from Spark system-config tutorial by @RamyaGuru in #78
- #45 - Style system-config tutorial: enlarge platform tabs, scope TOC … by @RamyaGuru in #80
- #81 - Address Greptile CMake packaging feedback by @cliffburdick in #82
- #57 - Add Greptile PR review config by @chloecrozier in #74
- #65 - Docs/configuration walkthrough revamp by @RamyaGuru in #84
- #86 - Unify docs site visual style: reskin Material to match custom HTML pages by @RamyaGuru in #87
- #89 - Make Manager::shutdown() idempotent to prevent post-finalize log crash by @RamyaGuru in #90
- #91 - Point README doc links at the live docs site by @dleshchev in #92
- #69 - Introduce Concepts page and restructure API Reference docs by @chloecrozier in #94
- #15 - Fix RDMA TX metadata ownership by @cliffburdick in #105
- #99 - Add multi-queue raw benchmark configs by @cliffburdick in #100
- #101 - Avoid double-returning TX metadata on enqueue failure by @fallintoplace in #102
- #15 #77 - Fix DGX Spark example to a true over-the-wire loopback (TX/… by @RamyaGuru in #108
- #106 - Fix CUDA 12.6 raw benchmark build by @dleshchev in #107
- #69 - Add Python bindings API reference by @dleshchev in #104
- #112 - Add OpenTelemetry Metrics by @cliffburdick in #111
- #69 - Apply docs review feedback by @chloecrozier in #109
- #67 - Add bare-metal CMake build tutorial by @chloecrozier in #95
- #15 - Add reusable C++ bench infrastructure for per-platform performance reports by @RamyaGuru in #96
- #15 - Add DGX Spark sweep tooling and RDMA loopback prereqs by @dleshchev in #116
- #15 - Reapply RDMA benchmark profiling updates by @dleshchev in #118
- #113 - Fix RDMA cross-host SEND timeout and shutdown deadlock by @chloecrozier in #115
- #57 - Tune Greptile review output by @chloecrozier in #122
- #119 - Add uninstall script for the CMake install and container image by @chloecrozier in #120
- #12 - Fix DPDK flow isolation ordering by @cliffburdick in #125
- #127 - Fix docs nav: consistent hide:navigation and data-driven tab dropdowns by @RamyaGuru in #130
- #54 - Add RTX PRO 6000 Blackwell Server Edition support to tune_system.py by @chloecrozier in #121
- #135 - Harden DPDK split burst handling by @cliffburdick in #137
- #141 - Port queue-specific DPDK RX flush by @cliffburdick in #143
- #126 Add RDMA bench flow-control windows by @cliffburdick in #144
- #93 Add light theme support to docs site by @chloecrozier in #146
- #145 - Auto-build landing page from MkDocs snippets by @dleshchev in #154
- #158 - Style updates to website images and removal of news by @awthomp in #158
- #15 - Add DGX Spark v1 performance report by @RamyaGuru in #98
- #55 - Add DAQIRI Holoscan integration tutorial by @dleshchev in #117
- #151 - Rename manager/backend abstraction to engine (DAQIRI_MGR → DAQIRI_ENGINE) by @cliffburdick in #156
- #170 - Guard socket engine RdmaEngine member behind DAQIRI_ENGINE_RDMA by @dleshchev in #171
- #131 - Fix DPDK TX enqueue mbuf leak by @fallintoplace in #132
- #133 - Validate MAC strings before formatting by @fallintoplace in #134
- #152: Add pure-ibverbs MPRQ raw-Ethernet backend (engine: ibverbs) by @cliffburdick in #148
- #129 - reject mixed standard and flex-item RX flows by @chloecrozier in #160
- #128 - Harden DPDK RX flow creation error handling by @chloecrozier in #161
- #176 Packet pacing by @cliffburdick in #179
- #177: Drop DPDK as a dependency unless the dpdk engine is built by @cliffburdick in #178
- #173 #174 #175 - fix Spark cross-host RDMA bench setup and build by @chloecrozier in #180
- #165 #166 #167 - Complete DPDK flow rule lifecycle by @chloecrozier in #181
- #183 - Reformat DAQIRI website examples and supply human readable descriptions of examples by @awthomp in #183
- #186 - Improve website mobile experience by @awthomp in #186
- #187 - Polish landing page links and footer CTA by @dleshchev in #188
- #189 - Revamp DAQIRI Readme by @awthomp in #189
- #190 - Remove blank row on README table by @awthomp in #190
- #191 - Convert table to HTML to remove blank row by @awthomp in #191
- #195 - Website - Eliminate column in example table and fix code expansion block by @awthomp in #195
- #127 - Remove LHS navigation from Holoscan integration tutorial by @RamyaGuru in #201
- #205 - dpdk: preserve kernel fallback for dynamic rx flows by @dleshchev in #204
- #15 - Add reusable FFT/GEMM GPU workloads to receive-path benchmarks by @RamyaGuru in #203
- #197 - Fix DPDK MTU sizing for asymmetric RX/TX queues by @MikesRND in #198
- #192 - Add eCPRI matching by @cliffburdick in https://githu...