doca-gpunetio-ib-write-bw

Build, run, and interpret the GPUNetIO ib_write_bw benchmark measuring GPU-driven RDMA WRITE bandwidth.

3.2k|370|Updated Feb 25, 2026
One-click install
npx skills add https://github.com/NVIDIA/skills --skill doca-gpunetio-ib-write-bw
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: doca-gpunetio-ib-write-bw
Source: https://github.com/NVIDIA/skills/tree/main/skills/doca-gpunetio-ib-write-bw
Command: npx skills add https://github.com/NVIDIA/skills --skill doca-gpunetio-ib-write-bw

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Measuring sustained RDMA WRITE bandwidth when work requests are posted from a CUDA kernel through the doca-gpunetio device-side surface is error-prone: agents invent flags, misquote throughput without naming the binding constraint, and confuse the GPUNetIO path with GPI or CPU-initiated perftest. This Skill guides agents through building, running, and interpreting the doca/tools/gpunetio_ib_write_bw client+server benchmark correctly on a real GPU+IB-device pair.

Core Features & Use Cases

  • Guided build and bring-up: Walks the meson build against installed DOCA pkg-config modules (doca-gpunetio, doca-rdma, doca-common), the GPU-NIC pairing precondition, nvidia_peermem verification, and the smoke-before-bulk client/server run order.
  • Throughput decomposition and diagnosis: Provides a layered error taxonomy (config-syntax, build-time, GPU-NIC pairing, GPUNetIO lifecycle, RDMA connection, measurement soundness, version, cross-cutting) and a decomposition table distinguishing GPU compute occupancy, NIC issue rate, link saturation, and PCIe crossover.
  • Runtime surface selection: Helps decide between GPUNetIO, the GPI library surface, and CPU-initiated upstream perftest ib_write_bw before quoting any number.
  • Use Case: A performance engineer asks why their GPUNetIO WRITE bandwidth swings between runs on the same flags; the agent loads this Skill, walks the measurement-soundness layer, checks steady state and background traffic, and quotes the result with the full DOCA/CUDA/GPU/NIC tuple and named binding constraint.

Quick Start

Ask your agent to measure sustained GPU-initiated RDMA WRITE bandwidth between two hosts with an H100 and ConnectX-7 using the doca-gpunetio-ib-write-bw skill.

Frequently Asked Questions about doca-gpunetio-ib-write-bw

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I measure GPU-initiated RDMA WRITE bandwidth with DOCA GPUNetIO?

Build the gpunetio_ib_write_bw client and server from doca/tools/gpunetio_ib_write_bw/ using meson against the installed DOCA pkg-config modules, then start the server first and connect the client with -c, -d, --gpu, and --gid-index. Run a smoke test before any swept run and quote the result with its binding constraint.

GPUNetIO vs GPI vs CPU-initiated perftest for WRITE bandwidth?

GPUNetIO ib_write_bw is right when the application runs on the doca-gpunetio framework and you want the bandwidth it will see in practice. GPI suits applications already committed to that lower-level surface, while upstream perftest ib_write_bw answers how the CPU-initiated path compares. The skill surfaces this choice rather than defaulting silently.

Why does my GPUNetIO bandwidth swing between runs on the same flags?

Run-to-run variation usually means the system was not at steady state or not idle: background traffic on the IB link, concurrent CUDA workloads, or too-short warm-up. Lengthen the run with the documented iteration control, confirm the link is quiet, and never quote a number without naming the binding constraint.

What are the requirements to build gpunetio_ib_write_bw?

You need DOCA SDK installed with doca-gpunetio.pc, doca-rdma.pc, and doca-common.pc at matching versions, a CUDA Toolkit with nvcc paired to that DOCA release, the nvidia_peermem kernel module loaded, a visible GPU, and an IB device visible to DOCA. Client and server must be built against compatible DOCA and CUDA versions.

Why is my reported WRITE bandwidth far below link capacity?

A low number means one of four binding constraints: GPU compute occupancy, NIC issue rate, link saturation, or PCIe crossover from a wrong GPU-NIC pairing. Check nvidia-smi dmon for SM utilization, sweep message size and queue depth, and verify the GPU and IB device share a PCIe complex or NVLink path.

When should I not use the doca-gpunetio-ib-write-bw skill?

Do not use it for general doca-gpunetio library programming, DOCA installation, GPU-initiated WRITE latency measurement, CPU-initiated perftest runs, or application-level end-to-end throughput. Those belong to the doca-gpunetio library skill, doca-setup, the ib-write-lat sibling skill, or upstream perftest respectively.