Benchmarks, raw results and figure scripts for the paper GPU-Initiated Communication: Dissecting Down to the Bone (arXiv:2610.01380).
The experiments measure what it costs a GPU kernel to drive an RDMA NIC: issue and completion cost, ordering, CPU-proxy designs, message rate, the cost to the enclosing kernel, and NIC connection scaling. Stacks: NVSHMEM IBGDA and IBRC, NCCL GIN (GDAKI and GIN Proxy), UCCL-EP, MSCCL++, fabric-lib, and two minimal implementations written for this study, mini-gda (GPU-initiated) and mini-proxy (CPU proxy).
| Path | Contents |
|---|---|
Experiments/ |
benchmark sources, mini-gda and mini-proxy (README) |
env/ |
per-platform environment and launcher scripts |
scripts/ |
build and run drivers for each campaign (README) |
analysis/ |
scripts that reduce a campaign's raw CSVs |
results/ |
raw data of the campaigns the paper uses (index) |
archive/results/ |
earlier campaigns the paper does not use (large files gzipped) |
plots/, figures/paper/ |
figure scripts and their outputs (README) |
docs/PLATFORMS.md |
the four platforms, their setup and traps |
docs/NOTES.md |
data caveats: invalid cells, mode limits, host effects |
| Paper | Output in figures/paper/ |
Data in results/ |
|---|---|---|
| Fig. 3 | fig_e8_inline |
e8_inline |
| Fig. 4 | fig08_quiet_tax |
lata4 |
| Fig. 5 | fig02_clock_stretch_ramp |
proce/t1_clock |
| Fig. 6 | fig_proxy_queues |
sec43, gb200 |
| Fig. 7 | fig_proxy_capacity |
sec43, gb200 |
| Fig. 8, Fig. 11 | fig_proxy_payload_goodput, fig_proxy_payload_latency |
sec43, ibrc_cold |
| Fig. 9 | fig19_kernelcost |
sec432_validation |
| Fig. 10 | fig14_icm_knee |
knee_review, knee, axisICM_mn5 |
| Tables 3–4 | — | sec62, sec62b, e8_inline, oneop_states, gb200 |
| Table 5 | — | ladder |
| Tables 6–7 | — | proce |
| Table 8, 12 | — | gb200 |
| Tables 9–11 | — | oneop_states, validation, sec43, bigrerun, gb200 |
| Table 13 | — | bigrerun, rate_ctas, gb200 |
| Tables 14–15 | — | sec432_validation, deepep_runtime, regcost, regcost_review |
| Tables 16–17 | — | knee_review, knee, dc |
Figures 1 and 2 are drawings in the paper source. Campaign directory names
(sec62, sec43, ...) come from earlier section numbers of the paper and are
kept so that recorded commands and paths stay valid.
python3 -m venv venv && venv/bin/pip install -r requirements.txt
# or: nix developThe scripts set text with LaTeX, so they need pdflatex with the libertine
and mathastext packages. plots/README.md gives the run
order.
Build the binaries as described in Experiments/README.md,
source the environment for the platform from env/, and use the driver in
scripts/ that produced the result (see scripts/README.md).
Most result stamps keep a raw.log or *.command file with the exact command
line and environment. Read docs/PLATFORMS.md first:
several platform traps produce plausible numbers from the wrong path.
MIT, see LICENSE. Third-party code and patches keep their own
licences, see THIRD_PARTY.md.
Please cite our paper if you use the code and data in this repo:
@misc{baydamirli2026gpuinitiated,
title = {{GPU}-Initiated Communication: Dissecting Down to the Bone},
author = {Baydamirli, Javid and Ismayilov, Ismayil and Oktay, Kaan and Unat, Didem},
year = {2026},
eprint = {2610.01380},
archivePrefix = {arXiv},
primaryClass = {cs.DC},
doi = {10.48550/arXiv.2610.01380},
url = {https://arxiv.org/abs/2610.01380}
}