Skip to content

Repository files navigation

GPU-Initiated Communication Experiments

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).

Layout

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 figures and tables

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.

Regenerating the figures

python3 -m venv venv && venv/bin/pip install -r requirements.txt
# or: nix develop

The scripts set text with LaTeX, so they need pdflatex with the libertine and mathastext packages. plots/README.md gives the run order.

Running a benchmark

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.

Licence

MIT, see LICENSE. Third-party code and patches keep their own licences, see THIRD_PARTY.md.

Citation

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}
}

About

Experiments, results, and misc. scripts.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages