[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-doca-gpunetio-ib-write-bw":3,"mdc--21xs5k-key":34,"related-repo-nvidia-doca-gpunetio-ib-write-bw":1585,"related-org-nvidia-doca-gpunetio-ib-write-bw":1689},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"doca-gpunetio-ib-write-bw","run GPUNetIO RDMA write bandwidth benchmarks","Use this skill when the user is building, running, or interpreting the doca\u002Ftools\u002Fgpunetio_ib_write_bw client+server benchmark — a CUDA kernel on the client posts RDMA WRITE work requests through the doca-gpunetio device-side surface to measure sustained GPU-driven WRITE bandwidth on a GPU+IB-device pair. Trigger even when the user does not explicitly mention \"doca-gpunetio-ib-write-bw\" or \"GPUNetIO\" — typical implicit phrasings include \"measure WRITE BW when the GPU posts the WRs\", \"BW swings between runs on the same flags\", \"is the NIC saturated or am I CPU-bound on the CUDA kernel\", \"meson compile fails for the GPUNetIO bw tool\", \"nvidia_peermem isn't picking up my GPU buffer\", or \"GPU-initiated WRITE throughput vs CPU-initiated perftest\". Refuse and route elsewhere for general doca-gpunetio library work, DOCA install, the GPU-initiated WRITE latency analog, the CPU-initiated upstream perftest, or application-level end-to-end throughput — those belong to other skills.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[12,16,19,20],{"name":13,"slug":14,"type":15},"Performance","performance","tag",{"name":17,"slug":18,"type":15},"Benchmarking","benchmarking",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Engineering","engineering",2473,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills","2026-07-30T05:28:18.429774","Apache-2.0",281,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"AI agent skills published by NVIDIA","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fdoca-gpunetio-ib-write-bw","---\nlicense: Apache-2.0\nname: doca-gpunetio-ib-write-bw\ndescription: >\n  Use this skill when the user is building, running, or interpreting\n  the doca\u002Ftools\u002Fgpunetio_ib_write_bw client+server benchmark — a CUDA\n  kernel on the client posts RDMA WRITE work requests through the\n  doca-gpunetio device-side surface to measure sustained GPU-driven\n  WRITE bandwidth on a GPU+IB-device pair. Trigger even when the user\n  does not explicitly mention \"doca-gpunetio-ib-write-bw\" or\n  \"GPUNetIO\" — typical implicit phrasings include \"measure WRITE BW\n  when the GPU posts the WRs\", \"BW swings between runs on the same\n  flags\", \"is the NIC saturated or am I CPU-bound on the CUDA\n  kernel\", \"meson compile fails for the GPUNetIO bw tool\",\n  \"nvidia_peermem isn't picking up my GPU buffer\", or \"GPU-initiated\n  WRITE throughput vs CPU-initiated perftest\". Refuse and route\n  elsewhere for general doca-gpunetio library work, DOCA install, the\n  GPU-initiated WRITE latency analog, the CPU-initiated upstream\n  perftest, or application-level end-to-end throughput — those belong\n  to other skills.\nmetadata:\n  kind: tool\ncompatibility: >\n  Requires DOCA SDK on Linux with a BlueField DPU or ConnectX NIC,\n  NVIDIA GPU, CUDA toolkit and nvcc, loaded `nvidia_peermem`, and an\n  InfiniBand RNIC paired with the GPU. Uses `pkg-config` for\n  doca-gpunetio, doca-rdma, and doca-common, plus the installed\n  gpunetio_ib_write_bw sources. Run only on a trusted, non-shared IB\n  fabric during the benchmark window.\n---\n\n# DOCA GPUNetIO ib_write_bw\n\n**Where to start:** This is a tool skill for the GPUNetIO-\nflavored `ib_write_bw` benchmark shipped under\n`doca\u002Ftools\u002Fgpunetio_ib_write_bw\u002F` (a client + server pair,\nbuilt from source against the installed DOCA via `meson`).\nIt measures sustained RDMA WRITE bandwidth when the WRs are\nposted **from a CUDA kernel through the doca-gpunetio\ndevice-side surface**, with the GPU on the data path. Open\n[`TASKS.md`](TASKS.md) and start at\n[`## configure`](TASKS.md#configure) for the GPU-NIC\npairing precondition and the build pattern; jump to\n[`## run`](TASKS.md#run) for the smoke-before-bulk flow.\nOpen [`CAPABILITIES.md`](CAPABILITIES.md) when the question\nis *what this tool actually measures*, *how the result\ndecomposes (GPU occupancy vs NIC issue rate vs link\nsaturation)*, or *how the result reads against the GPI\nsister tool and the upstream CPU-initiated `perftest`\n`ib_write_bw`*. If DOCA is not installed yet, route to\n[`doca-setup`](..\u002F..\u002Fdoca-setup\u002FSKILL.md) first; if the\nuser is still deciding between the GPI and GPUNetIO\nprogramming surfaces, the picture in\n[`..\u002F..\u002Flibs\u002Fdoca-gpunetio\u002FCAPABILITIES.md#capabilities-and-modes`](..\u002F..\u002Flibs\u002Fdoca-gpunetio\u002FCAPABILITIES.md#capabilities-and-modes)\nand\n[`..\u002F..\u002Flibs\u002Fdoca-gpi\u002FCAPABILITIES.md#capabilities-and-modes`](..\u002F..\u002Flibs\u002Fdoca-gpi\u002FCAPABILITIES.md#capabilities-and-modes)\nis the first stop.\n\n## Example questions this skill answers well\n\nThe CLASSES of `doca-gpunetio-ib-write-bw` questions this\nskill is built to answer, each with one worked example. The\nclass is the load-bearing piece; the worked example is one\ninstance.\n\n- **\"What sustained RDMA-WRITE bandwidth can the GPUNetIO\n  path deliver on this GPU-NIC pair?\"** — worked example:\n  *\"measure sustained WRITE BW between two hosts with an\n  H100 + ConnectX-7 on each side\"*. Answered by the\n  GPU-NIC pairing precondition in\n  [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)\n  + the bring-up flow in\n  [`TASKS.md ## configure`](TASKS.md#configure) +\n  [`TASKS.md ## run`](TASKS.md#run). The same shape\n  answers *\"measure GPUNetIO-driven WRITE BW between a\n  host GPU and a BlueField DPU\"*.\n- **\"Where is the bottleneck — GPU compute occupancy, NIC\n  issue rate, or link saturation?\"** — worked example:\n  *\"I see 120 Gbit\u002Fs on a 200 Gbit\u002Fs link; is the NIC\n  saturated, am I CPU-bound on the client, or is the CUDA\n  kernel not driving enough WRs in flight?\"*. Answered by\n  the throughput-decomposition rules in\n  [`CAPABILITIES.md ## Observability`](CAPABILITIES.md#observability)\n  + the eval-loop overlay in\n  [`TASKS.md ## test`](TASKS.md#test).\n- **\"How does the result differ from the classic CPU-\n  initiated `perftest` `ib_write_bw`?\"** — worked example:\n  *\"my team has a CPU-initiated WRITE BW number on this\n  same NIC; should I expect the GPUNetIO number to match\n  or be different?\"*. Answered by the *\"GPU-initiated\n  path adds (or removes) overhead vs the CPU-initiated\n  path\"* rule in\n  [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes).\n- **\"Is the doca-gpunetio path the right surface for my\n  sustained-throughput workload class?\"** — worked example:\n  *\"my application streams sensor data from GPU memory at\n  line rate to a remote consumer\"*. Answered by the\n  *\"when GPUNetIO is the right surface vs GPI vs CPU-\n  initiated\"* rule in\n  [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)\n  + the use-side decision in [`TASKS.md ## use`](TASKS.md#use).\n- **\"My BW number swings between runs. What do I check\n  before quoting it?\"** — worked example: *\"three runs at\n  the same flags gave 145, 187, and 160 Gbit\u002Fs; is the\n  benchmark noisy or is my platform inconsistent?\"*.\n  Answered by the measurement-soundness rules in\n  [`CAPABILITIES.md ## Error taxonomy`](CAPABILITIES.md#error-taxonomy)\n  layer 5 + the steady-state guidance in\n  [`TASKS.md ## test`](TASKS.md#test).\n- **\"What version of DOCA + CUDA Toolkit do I need for this\n  binary to build and run?\"** — worked example: *\"my\n  install has DOCA at one semver and CUDA at another; will\n  the ToT-shipped `gpunetio_ib_write_bw` even link?\"*.\n  Answered by the version overlay in\n  [`CAPABILITIES.md ## Version compatibility`](CAPABILITIES.md#version-compatibility)\n  which cross-links the canonical detection chain in\n  [`doca-version`](..\u002F..\u002Fdoca-version\u002FSKILL.md).\n\n## Audience\n\nThis skill serves **external developers and performance\nengineers who need a reproducible measurement of sustained\nRDMA WRITE bandwidth when the WRs are posted from a CUDA\nkernel through doca-gpunetio**, on the user's actual install\nand GPU-NIC pair. Concretely:\n\n- A developer comparing the GPUNetIO path against the GPI\n  path or the host-initiated `perftest`-style path before\n  committing an application design to one of them.\n- A platform operator validating a tuning change (NUMA\n  pinning, GPU PCIe placement, IB device choice, GID\n  index, NIC firmware burn) by re-running this benchmark\n  against the new state.\n- An SRE \u002F performance engineer producing a *\"this is the\n  GPUNetIO-driven WRITE BW on this GPU-NIC pair today\"*\n  artifact downstream consumers can cite.\n- An AI agent answering *\"is the doca-gpunetio path a win\n  for my sustained-throughput workload class\"* honestly —\n  with a measured number, the build + invocation that\n  produced it, and the GPU + NIC + DOCA version that\n  scopes it — rather than guessing from datasheet\n  headlines.\n\nIt is **not** for users debugging the `doca-gpunetio`\nlibrary itself (route to\n[`..\u002F..\u002Flibs\u002Fdoca-gpunetio\u002FSKILL.md`](..\u002F..\u002Flibs\u002Fdoca-gpunetio\u002FSKILL.md)),\nand **not** a substitute for the `perftest` upstream\n`ib_write_bw` (which measures CPU-initiated WRITE BW).\n\n## Language scope\n\nThe `doca-gpunetio-ib-write-bw` tool is shipped as **C plus\na CUDA `.cu` translation unit** under\n`doca\u002Ftools\u002Fgpunetio_ib_write_bw\u002F`, split into a `client\u002F`\nsubtree and a `server\u002F` subtree. The verified surface (per\n`client\u002F{main.c,common.h,common.c,kernel.cu,perftest.c}` and\n`server\u002F{main.c,common.h,common.c,perftest.c}`): host-side\nbuild via `meson` against the installed DOCA `pkg-config`\nmodules (`doca-gpunetio`, `doca-rdma`, `doca-common`); the\ndevice-side build via `nvcc` against the DOCA GPU NetIO\ndevice-side header set; the OOB descriptor exchange via a\nTCP socket between client and server. There is no Python \u002F\nRust \u002F Go binding — the tool is a pair of CLI binaries.\nThe skill's job is to keep the operator-side workflow\nlanguage-neutral; the device-side CUDA surface is not\nwrappable in another language.\n\n## When to load this skill\n\nLoad this skill when the user is — or the agent needs to —\nbuild and run the `gpunetio_ib_write_bw` client + server on\nreal hosts with DOCA installed plus a CUDA Toolkit matched\nto the DOCA install, and a GPU + IB device pair on the\nhost's PCIe topology. Concretely:\n\n- Measuring sustained kernel-initiated RDMA WRITE\n  bandwidth between two hosts (or a host and a BlueField\n  DPU) with the GPUNetIO surface.\n- Deciding whether the GPUNetIO path is the right runtime\n  surface for a class of workload vs the GPI programming\n  surface (the [`doca-gpi`](..\u002F..\u002Flibs\u002Fdoca-gpi\u002FSKILL.md)\n  library — `doca\u002Ftools\u002F` ships no GPI benchmark binary) or\n  the classic CPU-initiated `perftest` path.\n- Capturing a documented baseline (build + invocation +\n  DOCA version + GPU + NIC + as-deployed environment +\n  numbers) for later regression hunts.\n- Diagnosing a build \u002F link \u002F run failure that surfaces\n  the GPUNetIO + RDMA bring-up sequence under this tool's\n  shipped scaffolding.\n\nDo **not** load this skill for general DOCA orientation,\nlibrary API work, or installation. For those, use\n[`doca-public-knowledge-map`](..\u002F..\u002Fdoca-public-knowledge-map\u002FSKILL.md),\n[`..\u002F..\u002Flibs\u002Fdoca-gpunetio\u002FSKILL.md`](..\u002F..\u002Flibs\u002Fdoca-gpunetio\u002FSKILL.md),\nor [`doca-setup`](..\u002F..\u002Fdoca-setup\u002FSKILL.md). Do not load\nit for *application-level* end-to-end throughput either —\nthis benchmark measures the WR-submission path through\nGPUNetIO, not the user's full pipeline.\n\n## What this skill provides\n\nThis is a **thin loader**. Substantive material lives in\ntwo companion files:\n\n- `CAPABILITIES.md` — what the tool measures (the\n  sustained-WRITE-BW primitive driven by a client-side\n  CUDA kernel through doca-gpunetio), the\n  runtime-surface selection rule (GPUNetIO vs GPI vs\n  CPU-initiated), the GPU-NIC pairing precondition, the\n  throughput-decomposition guide (GPU compute occupancy\n  vs NIC issue rate vs link saturation), the version\n  overlay (DOCA `.pc` PLUS CUDA Toolkit), the layered\n  error taxonomy (config-syntax \u002F build-time \u002F GPU-NIC-\n  pairing \u002F GPUNetIO-lifecycle \u002F RDMA-connection \u002F\n  measurement-soundness \u002F version \u002F cross-cutting), the\n  observability surface (stdout report, DOCA log levels,\n  OOB-socket exchange), and the safety overlay (the\n  *\"GPU-side handle is a credential\"* rule from\n  doca-gpunetio; the cross-cutting hardware-safety\n  meta-policy).\n- `TASKS.md` — step-by-step workflows for the in-scope\n  task verbs: `install` (preconditions — DOCA install,\n  CUDA Toolkit, GPU + NIC pair, OOB connectivity),\n  `configure` (build-tree under\n  `doca\u002Ftools\u002Fgpunetio_ib_write_bw\u002F` and the `meson`\n  build wrapping the shipped DOCA), `build` (the\n  `meson setup` + `meson compile` pattern from the\n  public DOCA build documentation), `modify` (do not\n  patch the shipped tool source; modify the invocation\n  and the surrounding environment instead), `run` (smoke-\n  before-bulk; client + server bring-up order; reading\n  the per-iteration report), `test` (the eval loop —\n  steady-state, NUMA placement, NIC saturation cross-\n  check), `debug` (walk the error taxonomy layer by\n  layer), `use` (how a BW result feeds a class-of-\n  workload decision), plus a `Deferred task verbs`\n  block routing out-of-scope questions.\n\nThe skill assumes a host where DOCA is already installed,\na CUDA Toolkit matched to the install is present, and the\noperator has whatever privileges the public install profile\nexpects for binding a `doca_dev`, a `doca_gpu`, and an OOB\nTCP socket.\n\n## What this skill deliberately does not ship\n\nThis skill is **agent guidance**, not a samples or scripts\nbundle. To keep the boundary clean, it deliberately does\nnot contain — and pull requests should not add:\n\n- **Specific flag strings or expected throughput numbers**\n  beyond what the tool's shipped `--help` and `main.c` ARGP\n  registration establish. The flag surface is small\n  (device name, GPU PCIe address, GID index, server IP on\n  the client side); the agent re-reads the binary's\n  `--help` on the installed version before quoting flag\n  strings. Throughput numbers are device-, firmware-,\n  version-, and topology-specific.\n- **Pre-written DOCA GPUNetIO or CUDA kernel source code**\n  that would compete with the shipped tool tree. The\n  shipped `client\u002F{main.c,kernel.cu,perftest.c,common.{c,h}}`\n  and `server\u002F{main.c,perftest.c,common.{c,h}}` files are\n  the verified worked example; the agent's job is to\n  route the user there and prescribe minimum-diff\n  modification per the universal modify-a-sample workflow\n  in\n  [`doca-programming-guide`](..\u002F..\u002Fdoca-programming-guide\u002FSKILL.md).\n- **Wrappers, parsers, or scripts** in any language that\n  consume the tool's stdout. The output format is small\n  and documented in\n  [`CAPABILITIES.md ## Observability`](CAPABILITIES.md#observability);\n  if the user wants to script against it, the right\n  answer is *\"read the live source, write the parser\n  against your installed binary\"*.\n- **A `samples\u002F`, `bindings\u002F`, or `reference\u002F` subtree.**\n  This is a thin loader for a shipped tool tree;\n  substantive material lives in the source tree and in\n  the GPUNetIO library docs.\n\n## Loading order\n\n1. Read this `SKILL.md` first to confirm the user's\n   question is in scope (the user actually wants to\n   measure sustained kernel-initiated WRITE BW through\n   GPUNetIO, not learn GPUNetIO as a library or do a\n   CPU-initiated measurement).\n2. **For what the tool measures, the surface-selection\n   rule against the GPI sister tool and the CPU-initiated\n   `perftest`, the throughput-decomposition guide, the\n   version overlay, the error taxonomy, the observability\n   surface, and the safety overlay, see\n   [CAPABILITIES.md](CAPABILITIES.md).**\n3. **For step-by-step workflows — `install`, `configure`,\n   `build`, `modify`, `run`, `test`, `debug`, `use` — see\n   [TASKS.md](TASKS.md).**\n\n## Related skills\n\n- [`..\u002F..\u002Flibs\u002Fdoca-gpunetio\u002FSKILL.md`](..\u002F..\u002Flibs\u002Fdoca-gpunetio\u002FSKILL.md) —\n  the library this tool wraps. The per-GPU `doca_gpu`\n  context, the GPU-visible `doca_gpu_eth_*` and RDMA-side\n  handles, the CUDA-side persistent-kernel pattern, the\n  dual capability-discovery rule (DOCA cap-query AND\n  `cudaGetDeviceProperties`), and the env preconditions\n  (`nvidia_peermem` loaded, CUDA buffers registered with\n  DOCA) live there.\n- [`..\u002F..\u002Flibs\u002Fdoca-rdma\u002FSKILL.md`](..\u002F..\u002Flibs\u002Fdoca-rdma\u002FSKILL.md) —\n  the underlying RDMA library. The RDMA queue this tool\n  binds is created and connected via `doca-rdma`; the\n  queue lifecycle, transport type (RC vs UC vs UD),\n  permission matrix, and connection method are owned\n  there.\n- [`..\u002F..\u002Flibs\u002Fdoca-verbs\u002FSKILL.md`](..\u002F..\u002Flibs\u002Fdoca-verbs\u002FSKILL.md) —\n  the raw-verbs escape hatch beneath `doca-rdma` \u002F\n  `doca-gpunetio`. This tool stays on the higher-level\n  surfaces; `doca-verbs` is the right place only if the\n  user needs a specific WR flag \u002F QP attribute the\n  GPUNetIO + RDMA surfaces do not expose.\n- [`..\u002Fdoca-gpunetio-ib-write-lat\u002FSKILL.md`](..\u002Fdoca-gpunetio-ib-write-lat\u002FSKILL.md) —\n  the latency analog of this tool. Same physical\n  operation; same runtime framework; different metric\n  class (BW vs latency). The two together carry the\n  full GPUNetIO-side throughput \u002F latency picture.\n- [`doca-gpi`](..\u002F..\u002Flibs\u002Fdoca-gpi\u002FSKILL.md) — the GPI\n  programming surface (CUDA-kernel-initiated RDMA), the\n  alternative runtime framework for the same physical\n  operation. `doca\u002Ftools\u002F` ships no GPI `ib_write_lat` \u002F\n  `ib_write_bw` benchmark binary, so the GPI comparison is\n  against the library surface, not a sibling tool. The\n  selection rule in\n  [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)\n  is the decision aid.\n- [`doca-version`](..\u002F..\u002Fdoca-version\u002FSKILL.md) — the\n  canonical version-detection chain, four-way match rule,\n  NGC container semantics, and headers-win-over-docs\n  rule. The `## Version compatibility` section in this\n  skill is a thin overlay; the body lives there.\n- [`doca-setup`](..\u002F..\u002Fdoca-setup\u002FSKILL.md) — env\n  preparation, install verification, GPU + CUDA Toolkit\n  pairing, `nvidia_peermem` load, hugepages, NUMA, and\n  the *I have no install yet* path with the public NGC\n  DOCA container.\n- [`doca-public-knowledge-map`](..\u002F..\u002Fdoca-public-knowledge-map\u002FSKILL.md) —\n  routing to the public DOCA documentation set (DOCA GPU\n  NetIO, DOCA RDMA pages on `docs.nvidia.com`) and the\n  `docs.nvidia.com\u002Fcuda\u002F` pointer for the CUDA Toolkit.\n- [`doca-debug`](..\u002F..\u002Fdoca-debug\u002FSKILL.md) — the\n  cross-cutting debug ladder. The tool surfaces its own\n  error taxonomy; when the cause is below DOCA, the\n  taxonomy hands off here.\n- [`doca-hardware-safety`](..\u002F..\u002Fdoca-hardware-safety\u002FSKILL.md) —\n  the bundle-wide hardware-safety meta-policy. The\n  `## Safety policy` overlay cross-links it.\n",{"data":35,"body":39},{"license":26,"name":4,"description":6,"metadata":36,"compatibility":38},{"kind":37},"tool","Requires DOCA SDK on Linux with a BlueField DPU or ConnectX NIC, NVIDIA GPU, CUDA toolkit and nvcc, loaded `nvidia_peermem`, and an InfiniBand RNIC paired with the GPU. Uses `pkg-config` for doca-gpunetio, doca-rdma, and doca-common, plus the installed gpunetio_ib_write_bw sources. Run only on a trusted, non-shared IB fabric during the benchmark window.\n",{"type":40,"children":41},"root",[42,51,209,216,228,522,528,540,584,635,641,751,757,769,819,869,875,887,1027,1048,1054,1066,1197,1203,1302,1308],{"type":43,"tag":44,"props":45,"children":47},"element","h1",{"id":46},"doca-gpunetio-ib_write_bw",[48],{"type":49,"value":50},"text","DOCA GPUNetIO ib_write_bw",{"type":43,"tag":52,"props":53,"children":54},"p",{},[55,61,63,70,72,78,80,86,88,93,95,105,107,117,119,129,131,140,142,148,150,155,157,173,175,185,187,196,198,207],{"type":43,"tag":56,"props":57,"children":58},"strong",{},[59],{"type":49,"value":60},"Where to start:",{"type":49,"value":62}," This is a tool skill for the GPUNetIO-\nflavored ",{"type":43,"tag":64,"props":65,"children":67},"code",{"className":66},[],[68],{"type":49,"value":69},"ib_write_bw",{"type":49,"value":71}," benchmark shipped under\n",{"type":43,"tag":64,"props":73,"children":75},{"className":74},[],[76],{"type":49,"value":77},"doca\u002Ftools\u002Fgpunetio_ib_write_bw\u002F",{"type":49,"value":79}," (a client + server pair,\nbuilt from source against the installed DOCA via ",{"type":43,"tag":64,"props":81,"children":83},{"className":82},[],[84],{"type":49,"value":85},"meson",{"type":49,"value":87},").\nIt measures sustained RDMA WRITE bandwidth when the WRs are\nposted ",{"type":43,"tag":56,"props":89,"children":90},{},[91],{"type":49,"value":92},"from a CUDA kernel through the doca-gpunetio\ndevice-side surface",{"type":49,"value":94},", with the GPU on the data path. Open\n",{"type":43,"tag":96,"props":97,"children":99},"a",{"href":98},"TASKS.md",[100],{"type":43,"tag":64,"props":101,"children":103},{"className":102},[],[104],{"type":49,"value":98},{"type":49,"value":106}," and start at\n",{"type":43,"tag":96,"props":108,"children":110},{"href":109},"TASKS.md#configure",[111],{"type":43,"tag":64,"props":112,"children":114},{"className":113},[],[115],{"type":49,"value":116},"## configure",{"type":49,"value":118}," for the GPU-NIC\npairing precondition and the build pattern; jump to\n",{"type":43,"tag":96,"props":120,"children":122},{"href":121},"TASKS.md#run",[123],{"type":43,"tag":64,"props":124,"children":126},{"className":125},[],[127],{"type":49,"value":128},"## run",{"type":49,"value":130}," for the smoke-before-bulk flow.\nOpen ",{"type":43,"tag":96,"props":132,"children":134},{"href":133},"CAPABILITIES.md",[135],{"type":43,"tag":64,"props":136,"children":138},{"className":137},[],[139],{"type":49,"value":133},{"type":49,"value":141}," when the question\nis ",{"type":43,"tag":143,"props":144,"children":145},"em",{},[146],{"type":49,"value":147},"what this tool actually measures",{"type":49,"value":149},", ",{"type":43,"tag":143,"props":151,"children":152},{},[153],{"type":49,"value":154},"how the result\ndecomposes (GPU occupancy vs NIC issue rate vs link\nsaturation)",{"type":49,"value":156},", or ",{"type":43,"tag":143,"props":158,"children":159},{},[160,162,168],{"type":49,"value":161},"how the result reads against the GPI\nsister tool and the upstream CPU-initiated ",{"type":43,"tag":64,"props":163,"children":165},{"className":164},[],[166],{"type":49,"value":167},"perftest",{"type":43,"tag":64,"props":169,"children":171},{"className":170},[],[172],{"type":49,"value":69},{"type":49,"value":174},". If DOCA is not installed yet, route to\n",{"type":43,"tag":96,"props":176,"children":178},{"href":177},"..\u002F..\u002Fdoca-setup\u002FSKILL.md",[179],{"type":43,"tag":64,"props":180,"children":182},{"className":181},[],[183],{"type":49,"value":184},"doca-setup",{"type":49,"value":186}," first; if the\nuser is still deciding between the GPI and GPUNetIO\nprogramming surfaces, the picture in\n",{"type":43,"tag":96,"props":188,"children":190},{"href":189},"..\u002F..\u002Flibs\u002Fdoca-gpunetio\u002FCAPABILITIES.md#capabilities-and-modes",[191],{"type":43,"tag":64,"props":192,"children":194},{"className":193},[],[195],{"type":49,"value":189},{"type":49,"value":197},"\nand\n",{"type":43,"tag":96,"props":199,"children":201},{"href":200},"..\u002F..\u002Flibs\u002Fdoca-gpi\u002FCAPABILITIES.md#capabilities-and-modes",[202],{"type":43,"tag":64,"props":203,"children":205},{"className":204},[],[206],{"type":49,"value":200},{"type":49,"value":208},"\nis the first stop.",{"type":43,"tag":210,"props":211,"children":213},"h2",{"id":212},"example-questions-this-skill-answers-well",[214],{"type":49,"value":215},"Example questions this skill answers well",{"type":43,"tag":52,"props":217,"children":218},{},[219,221,226],{"type":49,"value":220},"The CLASSES of ",{"type":43,"tag":64,"props":222,"children":224},{"className":223},[],[225],{"type":49,"value":4},{"type":49,"value":227}," questions this\nskill is built to answer, each with one worked example. The\nclass is the load-bearing piece; the worked example is one\ninstance.",{"type":43,"tag":229,"props":230,"children":231},"ul",{},[232,297,342,388,437,475],{"type":43,"tag":233,"props":234,"children":235},"li",{},[236,241,243,248,250,260],{"type":43,"tag":56,"props":237,"children":238},{},[239],{"type":49,"value":240},"\"What sustained RDMA-WRITE bandwidth can the GPUNetIO\npath deliver on this GPU-NIC pair?\"",{"type":49,"value":242}," — worked example:\n",{"type":43,"tag":143,"props":244,"children":245},{},[246],{"type":49,"value":247},"\"measure sustained WRITE BW between two hosts with an\nH100 + ConnectX-7 on each side\"",{"type":49,"value":249},". Answered by the\nGPU-NIC pairing precondition in\n",{"type":43,"tag":96,"props":251,"children":253},{"href":252},"CAPABILITIES.md#capabilities-and-modes",[254],{"type":43,"tag":64,"props":255,"children":257},{"className":256},[],[258],{"type":49,"value":259},"CAPABILITIES.md ## Capabilities and modes",{"type":43,"tag":229,"props":261,"children":262},{},[263],{"type":43,"tag":233,"props":264,"children":265},{},[266,268,277,279,288,290,295],{"type":49,"value":267},"the bring-up flow in\n",{"type":43,"tag":96,"props":269,"children":270},{"href":109},[271],{"type":43,"tag":64,"props":272,"children":274},{"className":273},[],[275],{"type":49,"value":276},"TASKS.md ## configure",{"type":49,"value":278}," +\n",{"type":43,"tag":96,"props":280,"children":281},{"href":121},[282],{"type":43,"tag":64,"props":283,"children":285},{"className":284},[],[286],{"type":49,"value":287},"TASKS.md ## run",{"type":49,"value":289},". The same shape\nanswers ",{"type":43,"tag":143,"props":291,"children":292},{},[293],{"type":49,"value":294},"\"measure GPUNetIO-driven WRITE BW between a\nhost GPU and a BlueField DPU\"",{"type":49,"value":296},".",{"type":43,"tag":233,"props":298,"children":299},{},[300,305,306,311,313,323],{"type":43,"tag":56,"props":301,"children":302},{},[303],{"type":49,"value":304},"\"Where is the bottleneck — GPU compute occupancy, NIC\nissue rate, or link saturation?\"",{"type":49,"value":242},{"type":43,"tag":143,"props":307,"children":308},{},[309],{"type":49,"value":310},"\"I see 120 Gbit\u002Fs on a 200 Gbit\u002Fs link; is the NIC\nsaturated, am I CPU-bound on the client, or is the CUDA\nkernel not driving enough WRs in flight?\"",{"type":49,"value":312},". Answered by\nthe throughput-decomposition rules in\n",{"type":43,"tag":96,"props":314,"children":316},{"href":315},"CAPABILITIES.md#observability",[317],{"type":43,"tag":64,"props":318,"children":320},{"className":319},[],[321],{"type":49,"value":322},"CAPABILITIES.md ## Observability",{"type":43,"tag":229,"props":324,"children":325},{},[326],{"type":43,"tag":233,"props":327,"children":328},{},[329,331,341],{"type":49,"value":330},"the eval-loop overlay in\n",{"type":43,"tag":96,"props":332,"children":334},{"href":333},"TASKS.md#test",[335],{"type":43,"tag":64,"props":336,"children":338},{"className":337},[],[339],{"type":49,"value":340},"TASKS.md ## test",{"type":49,"value":296},{"type":43,"tag":233,"props":343,"children":344},{},[345,364,365,370,372,377,379,387],{"type":43,"tag":56,"props":346,"children":347},{},[348,350,355,357,362],{"type":49,"value":349},"\"How does the result differ from the classic CPU-\ninitiated ",{"type":43,"tag":64,"props":351,"children":353},{"className":352},[],[354],{"type":49,"value":167},{"type":49,"value":356}," ",{"type":43,"tag":64,"props":358,"children":360},{"className":359},[],[361],{"type":49,"value":69},{"type":49,"value":363},"?\"",{"type":49,"value":242},{"type":43,"tag":143,"props":366,"children":367},{},[368],{"type":49,"value":369},"\"my team has a CPU-initiated WRITE BW number on this\nsame NIC; should I expect the GPUNetIO number to match\nor be different?\"",{"type":49,"value":371},". Answered by the ",{"type":43,"tag":143,"props":373,"children":374},{},[375],{"type":49,"value":376},"\"GPU-initiated\npath adds (or removes) overhead vs the CPU-initiated\npath\"",{"type":49,"value":378}," rule in\n",{"type":43,"tag":96,"props":380,"children":381},{"href":252},[382],{"type":43,"tag":64,"props":383,"children":385},{"className":384},[],[386],{"type":49,"value":259},{"type":49,"value":296},{"type":43,"tag":233,"props":389,"children":390},{},[391,396,397,402,404,409,410,418],{"type":43,"tag":56,"props":392,"children":393},{},[394],{"type":49,"value":395},"\"Is the doca-gpunetio path the right surface for my\nsustained-throughput workload class?\"",{"type":49,"value":242},{"type":43,"tag":143,"props":398,"children":399},{},[400],{"type":49,"value":401},"\"my application streams sensor data from GPU memory at\nline rate to a remote consumer\"",{"type":49,"value":403},". Answered by the\n",{"type":43,"tag":143,"props":405,"children":406},{},[407],{"type":49,"value":408},"\"when GPUNetIO is the right surface vs GPI vs CPU-\ninitiated\"",{"type":49,"value":378},{"type":43,"tag":96,"props":411,"children":412},{"href":252},[413],{"type":43,"tag":64,"props":414,"children":416},{"className":415},[],[417],{"type":49,"value":259},{"type":43,"tag":229,"props":419,"children":420},{},[421],{"type":43,"tag":233,"props":422,"children":423},{},[424,426,436],{"type":49,"value":425},"the use-side decision in ",{"type":43,"tag":96,"props":427,"children":429},{"href":428},"TASKS.md#use",[430],{"type":43,"tag":64,"props":431,"children":433},{"className":432},[],[434],{"type":49,"value":435},"TASKS.md ## use",{"type":49,"value":296},{"type":43,"tag":233,"props":438,"children":439},{},[440,445,447,452,454,464,466,474],{"type":43,"tag":56,"props":441,"children":442},{},[443],{"type":49,"value":444},"\"My BW number swings between runs. What do I check\nbefore quoting it?\"",{"type":49,"value":446}," — worked example: ",{"type":43,"tag":143,"props":448,"children":449},{},[450],{"type":49,"value":451},"\"three runs at\nthe same flags gave 145, 187, and 160 Gbit\u002Fs; is the\nbenchmark noisy or is my platform inconsistent?\"",{"type":49,"value":453},".\nAnswered by the measurement-soundness rules in\n",{"type":43,"tag":96,"props":455,"children":457},{"href":456},"CAPABILITIES.md#error-taxonomy",[458],{"type":43,"tag":64,"props":459,"children":461},{"className":460},[],[462],{"type":49,"value":463},"CAPABILITIES.md ## Error taxonomy",{"type":49,"value":465},"\nlayer 5 + the steady-state guidance in\n",{"type":43,"tag":96,"props":467,"children":468},{"href":333},[469],{"type":43,"tag":64,"props":470,"children":472},{"className":471},[],[473],{"type":49,"value":340},{"type":49,"value":296},{"type":43,"tag":233,"props":476,"children":477},{},[478,483,484,497,499,509,511,521],{"type":43,"tag":56,"props":479,"children":480},{},[481],{"type":49,"value":482},"\"What version of DOCA + CUDA Toolkit do I need for this\nbinary to build and run?\"",{"type":49,"value":446},{"type":43,"tag":143,"props":485,"children":486},{},[487,489,495],{"type":49,"value":488},"\"my\ninstall has DOCA at one semver and CUDA at another; will\nthe ToT-shipped ",{"type":43,"tag":64,"props":490,"children":492},{"className":491},[],[493],{"type":49,"value":494},"gpunetio_ib_write_bw",{"type":49,"value":496}," even link?\"",{"type":49,"value":498},".\nAnswered by the version overlay in\n",{"type":43,"tag":96,"props":500,"children":502},{"href":501},"CAPABILITIES.md#version-compatibility",[503],{"type":43,"tag":64,"props":504,"children":506},{"className":505},[],[507],{"type":49,"value":508},"CAPABILITIES.md ## Version compatibility",{"type":49,"value":510},"\nwhich cross-links the canonical detection chain in\n",{"type":43,"tag":96,"props":512,"children":514},{"href":513},"..\u002F..\u002Fdoca-version\u002FSKILL.md",[515],{"type":43,"tag":64,"props":516,"children":518},{"className":517},[],[519],{"type":49,"value":520},"doca-version",{"type":49,"value":296},{"type":43,"tag":210,"props":523,"children":525},{"id":524},"audience",[526],{"type":49,"value":527},"Audience",{"type":43,"tag":52,"props":529,"children":530},{},[531,533,538],{"type":49,"value":532},"This skill serves ",{"type":43,"tag":56,"props":534,"children":535},{},[536],{"type":49,"value":537},"external developers and performance\nengineers who need a reproducible measurement of sustained\nRDMA WRITE bandwidth when the WRs are posted from a CUDA\nkernel through doca-gpunetio",{"type":49,"value":539},", on the user's actual install\nand GPU-NIC pair. Concretely:",{"type":43,"tag":229,"props":541,"children":542},{},[543,555,560,572],{"type":43,"tag":233,"props":544,"children":545},{},[546,548,553],{"type":49,"value":547},"A developer comparing the GPUNetIO path against the GPI\npath or the host-initiated ",{"type":43,"tag":64,"props":549,"children":551},{"className":550},[],[552],{"type":49,"value":167},{"type":49,"value":554},"-style path before\ncommitting an application design to one of them.",{"type":43,"tag":233,"props":556,"children":557},{},[558],{"type":49,"value":559},"A platform operator validating a tuning change (NUMA\npinning, GPU PCIe placement, IB device choice, GID\nindex, NIC firmware burn) by re-running this benchmark\nagainst the new state.",{"type":43,"tag":233,"props":561,"children":562},{},[563,565,570],{"type":49,"value":564},"An SRE \u002F performance engineer producing a ",{"type":43,"tag":143,"props":566,"children":567},{},[568],{"type":49,"value":569},"\"this is the\nGPUNetIO-driven WRITE BW on this GPU-NIC pair today\"",{"type":49,"value":571},"\nartifact downstream consumers can cite.",{"type":43,"tag":233,"props":573,"children":574},{},[575,577,582],{"type":49,"value":576},"An AI agent answering ",{"type":43,"tag":143,"props":578,"children":579},{},[580],{"type":49,"value":581},"\"is the doca-gpunetio path a win\nfor my sustained-throughput workload class\"",{"type":49,"value":583}," honestly —\nwith a measured number, the build + invocation that\nproduced it, and the GPU + NIC + DOCA version that\nscopes it — rather than guessing from datasheet\nheadlines.",{"type":43,"tag":52,"props":585,"children":586},{},[587,589,594,596,602,604,613,615,619,621,626,628,633],{"type":49,"value":588},"It is ",{"type":43,"tag":56,"props":590,"children":591},{},[592],{"type":49,"value":593},"not",{"type":49,"value":595}," for users debugging the ",{"type":43,"tag":64,"props":597,"children":599},{"className":598},[],[600],{"type":49,"value":601},"doca-gpunetio",{"type":49,"value":603},"\nlibrary itself (route to\n",{"type":43,"tag":96,"props":605,"children":607},{"href":606},"..\u002F..\u002Flibs\u002Fdoca-gpunetio\u002FSKILL.md",[608],{"type":43,"tag":64,"props":609,"children":611},{"className":610},[],[612],{"type":49,"value":606},{"type":49,"value":614},"),\nand ",{"type":43,"tag":56,"props":616,"children":617},{},[618],{"type":49,"value":593},{"type":49,"value":620}," a substitute for the ",{"type":43,"tag":64,"props":622,"children":624},{"className":623},[],[625],{"type":49,"value":167},{"type":49,"value":627}," upstream\n",{"type":43,"tag":64,"props":629,"children":631},{"className":630},[],[632],{"type":49,"value":69},{"type":49,"value":634}," (which measures CPU-initiated WRITE BW).",{"type":43,"tag":210,"props":636,"children":638},{"id":637},"language-scope",[639],{"type":49,"value":640},"Language scope",{"type":43,"tag":52,"props":642,"children":643},{},[644,646,651,653,666,668,673,675,681,683,689,691,697,699,705,707,712,714,720,722,727,728,734,735,741,743,749],{"type":49,"value":645},"The ",{"type":43,"tag":64,"props":647,"children":649},{"className":648},[],[650],{"type":49,"value":4},{"type":49,"value":652}," tool is shipped as ",{"type":43,"tag":56,"props":654,"children":655},{},[656,658,664],{"type":49,"value":657},"C plus\na CUDA ",{"type":43,"tag":64,"props":659,"children":661},{"className":660},[],[662],{"type":49,"value":663},".cu",{"type":49,"value":665}," translation unit",{"type":49,"value":667}," under\n",{"type":43,"tag":64,"props":669,"children":671},{"className":670},[],[672],{"type":49,"value":77},{"type":49,"value":674},", split into a ",{"type":43,"tag":64,"props":676,"children":678},{"className":677},[],[679],{"type":49,"value":680},"client\u002F",{"type":49,"value":682},"\nsubtree and a ",{"type":43,"tag":64,"props":684,"children":686},{"className":685},[],[687],{"type":49,"value":688},"server\u002F",{"type":49,"value":690}," subtree. The verified surface (per\n",{"type":43,"tag":64,"props":692,"children":694},{"className":693},[],[695],{"type":49,"value":696},"client\u002F{main.c,common.h,common.c,kernel.cu,perftest.c}",{"type":49,"value":698}," and\n",{"type":43,"tag":64,"props":700,"children":702},{"className":701},[],[703],{"type":49,"value":704},"server\u002F{main.c,common.h,common.c,perftest.c}",{"type":49,"value":706},"): host-side\nbuild via ",{"type":43,"tag":64,"props":708,"children":710},{"className":709},[],[711],{"type":49,"value":85},{"type":49,"value":713}," against the installed DOCA ",{"type":43,"tag":64,"props":715,"children":717},{"className":716},[],[718],{"type":49,"value":719},"pkg-config",{"type":49,"value":721},"\nmodules (",{"type":43,"tag":64,"props":723,"children":725},{"className":724},[],[726],{"type":49,"value":601},{"type":49,"value":149},{"type":43,"tag":64,"props":729,"children":731},{"className":730},[],[732],{"type":49,"value":733},"doca-rdma",{"type":49,"value":149},{"type":43,"tag":64,"props":736,"children":738},{"className":737},[],[739],{"type":49,"value":740},"doca-common",{"type":49,"value":742},"); the\ndevice-side build via ",{"type":43,"tag":64,"props":744,"children":746},{"className":745},[],[747],{"type":49,"value":748},"nvcc",{"type":49,"value":750}," against the DOCA GPU NetIO\ndevice-side header set; the OOB descriptor exchange via a\nTCP socket between client and server. There is no Python \u002F\nRust \u002F Go binding — the tool is a pair of CLI binaries.\nThe skill's job is to keep the operator-side workflow\nlanguage-neutral; the device-side CUDA surface is not\nwrappable in another language.",{"type":43,"tag":210,"props":752,"children":754},{"id":753},"when-to-load-this-skill",[755],{"type":49,"value":756},"When to load this skill",{"type":43,"tag":52,"props":758,"children":759},{},[760,762,767],{"type":49,"value":761},"Load this skill when the user is — or the agent needs to —\nbuild and run the ",{"type":43,"tag":64,"props":763,"children":765},{"className":764},[],[766],{"type":49,"value":494},{"type":49,"value":768}," client + server on\nreal hosts with DOCA installed plus a CUDA Toolkit matched\nto the DOCA install, and a GPU + IB device pair on the\nhost's PCIe topology. Concretely:",{"type":43,"tag":229,"props":770,"children":771},{},[772,777,809,814],{"type":43,"tag":233,"props":773,"children":774},{},[775],{"type":49,"value":776},"Measuring sustained kernel-initiated RDMA WRITE\nbandwidth between two hosts (or a host and a BlueField\nDPU) with the GPUNetIO surface.",{"type":43,"tag":233,"props":778,"children":779},{},[780,782,792,794,800,802,807],{"type":49,"value":781},"Deciding whether the GPUNetIO path is the right runtime\nsurface for a class of workload vs the GPI programming\nsurface (the ",{"type":43,"tag":96,"props":783,"children":785},{"href":784},"..\u002F..\u002Flibs\u002Fdoca-gpi\u002FSKILL.md",[786],{"type":43,"tag":64,"props":787,"children":789},{"className":788},[],[790],{"type":49,"value":791},"doca-gpi",{"type":49,"value":793},"\nlibrary — ",{"type":43,"tag":64,"props":795,"children":797},{"className":796},[],[798],{"type":49,"value":799},"doca\u002Ftools\u002F",{"type":49,"value":801}," ships no GPI benchmark binary) or\nthe classic CPU-initiated ",{"type":43,"tag":64,"props":803,"children":805},{"className":804},[],[806],{"type":49,"value":167},{"type":49,"value":808}," path.",{"type":43,"tag":233,"props":810,"children":811},{},[812],{"type":49,"value":813},"Capturing a documented baseline (build + invocation +\nDOCA version + GPU + NIC + as-deployed environment +\nnumbers) for later regression hunts.",{"type":43,"tag":233,"props":815,"children":816},{},[817],{"type":49,"value":818},"Diagnosing a build \u002F link \u002F run failure that surfaces\nthe GPUNetIO + RDMA bring-up sequence under this tool's\nshipped scaffolding.",{"type":43,"tag":52,"props":820,"children":821},{},[822,824,828,830,840,842,850,852,860,862,867],{"type":49,"value":823},"Do ",{"type":43,"tag":56,"props":825,"children":826},{},[827],{"type":49,"value":593},{"type":49,"value":829}," load this skill for general DOCA orientation,\nlibrary API work, or installation. For those, use\n",{"type":43,"tag":96,"props":831,"children":833},{"href":832},"..\u002F..\u002Fdoca-public-knowledge-map\u002FSKILL.md",[834],{"type":43,"tag":64,"props":835,"children":837},{"className":836},[],[838],{"type":49,"value":839},"doca-public-knowledge-map",{"type":49,"value":841},",\n",{"type":43,"tag":96,"props":843,"children":844},{"href":606},[845],{"type":43,"tag":64,"props":846,"children":848},{"className":847},[],[849],{"type":49,"value":606},{"type":49,"value":851},",\nor ",{"type":43,"tag":96,"props":853,"children":854},{"href":177},[855],{"type":43,"tag":64,"props":856,"children":858},{"className":857},[],[859],{"type":49,"value":184},{"type":49,"value":861},". Do not load\nit for ",{"type":43,"tag":143,"props":863,"children":864},{},[865],{"type":49,"value":866},"application-level",{"type":49,"value":868}," end-to-end throughput either —\nthis benchmark measures the WR-submission path through\nGPUNetIO, not the user's full pipeline.",{"type":43,"tag":210,"props":870,"children":872},{"id":871},"what-this-skill-provides",[873],{"type":49,"value":874},"What this skill provides",{"type":43,"tag":52,"props":876,"children":877},{},[878,880,885],{"type":49,"value":879},"This is a ",{"type":43,"tag":56,"props":881,"children":882},{},[883],{"type":49,"value":884},"thin loader",{"type":49,"value":886},". Substantive material lives in\ntwo companion files:",{"type":43,"tag":229,"props":888,"children":889},{},[890,915],{"type":43,"tag":233,"props":891,"children":892},{},[893,898,900,906,908,913],{"type":43,"tag":64,"props":894,"children":896},{"className":895},[],[897],{"type":49,"value":133},{"type":49,"value":899}," — what the tool measures (the\nsustained-WRITE-BW primitive driven by a client-side\nCUDA kernel through doca-gpunetio), the\nruntime-surface selection rule (GPUNetIO vs GPI vs\nCPU-initiated), the GPU-NIC pairing precondition, the\nthroughput-decomposition guide (GPU compute occupancy\nvs NIC issue rate vs link saturation), the version\noverlay (DOCA ",{"type":43,"tag":64,"props":901,"children":903},{"className":902},[],[904],{"type":49,"value":905},".pc",{"type":49,"value":907}," PLUS CUDA Toolkit), the layered\nerror taxonomy (config-syntax \u002F build-time \u002F GPU-NIC-\npairing \u002F GPUNetIO-lifecycle \u002F RDMA-connection \u002F\nmeasurement-soundness \u002F version \u002F cross-cutting), the\nobservability surface (stdout report, DOCA log levels,\nOOB-socket exchange), and the safety overlay (the\n",{"type":43,"tag":143,"props":909,"children":910},{},[911],{"type":49,"value":912},"\"GPU-side handle is a credential\"",{"type":49,"value":914}," rule from\ndoca-gpunetio; the cross-cutting hardware-safety\nmeta-policy).",{"type":43,"tag":233,"props":916,"children":917},{},[918,923,925,931,933,939,941,946,948,953,955,961,963,969,971,977,979,985,987,993,995,1001,1003,1009,1011,1017,1019,1025],{"type":43,"tag":64,"props":919,"children":921},{"className":920},[],[922],{"type":49,"value":98},{"type":49,"value":924}," — step-by-step workflows for the in-scope\ntask verbs: ",{"type":43,"tag":64,"props":926,"children":928},{"className":927},[],[929],{"type":49,"value":930},"install",{"type":49,"value":932}," (preconditions — DOCA install,\nCUDA Toolkit, GPU + NIC pair, OOB connectivity),\n",{"type":43,"tag":64,"props":934,"children":936},{"className":935},[],[937],{"type":49,"value":938},"configure",{"type":49,"value":940}," (build-tree under\n",{"type":43,"tag":64,"props":942,"children":944},{"className":943},[],[945],{"type":49,"value":77},{"type":49,"value":947}," and the ",{"type":43,"tag":64,"props":949,"children":951},{"className":950},[],[952],{"type":49,"value":85},{"type":49,"value":954},"\nbuild wrapping the shipped DOCA), ",{"type":43,"tag":64,"props":956,"children":958},{"className":957},[],[959],{"type":49,"value":960},"build",{"type":49,"value":962}," (the\n",{"type":43,"tag":64,"props":964,"children":966},{"className":965},[],[967],{"type":49,"value":968},"meson setup",{"type":49,"value":970}," + ",{"type":43,"tag":64,"props":972,"children":974},{"className":973},[],[975],{"type":49,"value":976},"meson compile",{"type":49,"value":978}," pattern from the\npublic DOCA build documentation), ",{"type":43,"tag":64,"props":980,"children":982},{"className":981},[],[983],{"type":49,"value":984},"modify",{"type":49,"value":986}," (do not\npatch the shipped tool source; modify the invocation\nand the surrounding environment instead), ",{"type":43,"tag":64,"props":988,"children":990},{"className":989},[],[991],{"type":49,"value":992},"run",{"type":49,"value":994}," (smoke-\nbefore-bulk; client + server bring-up order; reading\nthe per-iteration report), ",{"type":43,"tag":64,"props":996,"children":998},{"className":997},[],[999],{"type":49,"value":1000},"test",{"type":49,"value":1002}," (the eval loop —\nsteady-state, NUMA placement, NIC saturation cross-\ncheck), ",{"type":43,"tag":64,"props":1004,"children":1006},{"className":1005},[],[1007],{"type":49,"value":1008},"debug",{"type":49,"value":1010}," (walk the error taxonomy layer by\nlayer), ",{"type":43,"tag":64,"props":1012,"children":1014},{"className":1013},[],[1015],{"type":49,"value":1016},"use",{"type":49,"value":1018}," (how a BW result feeds a class-of-\nworkload decision), plus a ",{"type":43,"tag":64,"props":1020,"children":1022},{"className":1021},[],[1023],{"type":49,"value":1024},"Deferred task verbs",{"type":49,"value":1026},"\nblock routing out-of-scope questions.",{"type":43,"tag":52,"props":1028,"children":1029},{},[1030,1032,1038,1040,1046],{"type":49,"value":1031},"The skill assumes a host where DOCA is already installed,\na CUDA Toolkit matched to the install is present, and the\noperator has whatever privileges the public install profile\nexpects for binding a ",{"type":43,"tag":64,"props":1033,"children":1035},{"className":1034},[],[1036],{"type":49,"value":1037},"doca_dev",{"type":49,"value":1039},", a ",{"type":43,"tag":64,"props":1041,"children":1043},{"className":1042},[],[1044],{"type":49,"value":1045},"doca_gpu",{"type":49,"value":1047},", and an OOB\nTCP socket.",{"type":43,"tag":210,"props":1049,"children":1051},{"id":1050},"what-this-skill-deliberately-does-not-ship",[1052],{"type":49,"value":1053},"What this skill deliberately does not ship",{"type":43,"tag":52,"props":1055,"children":1056},{},[1057,1059,1064],{"type":49,"value":1058},"This skill is ",{"type":43,"tag":56,"props":1060,"children":1061},{},[1062],{"type":49,"value":1063},"agent guidance",{"type":49,"value":1065},", not a samples or scripts\nbundle. To keep the boundary clean, it deliberately does\nnot contain — and pull requests should not add:",{"type":43,"tag":229,"props":1067,"children":1068},{},[1069,1102,1139,1165],{"type":43,"tag":233,"props":1070,"children":1071},{},[1072,1077,1079,1085,1087,1093,1095,1100],{"type":43,"tag":56,"props":1073,"children":1074},{},[1075],{"type":49,"value":1076},"Specific flag strings or expected throughput numbers",{"type":49,"value":1078},"\nbeyond what the tool's shipped ",{"type":43,"tag":64,"props":1080,"children":1082},{"className":1081},[],[1083],{"type":49,"value":1084},"--help",{"type":49,"value":1086}," and ",{"type":43,"tag":64,"props":1088,"children":1090},{"className":1089},[],[1091],{"type":49,"value":1092},"main.c",{"type":49,"value":1094}," ARGP\nregistration establish. The flag surface is small\n(device name, GPU PCIe address, GID index, server IP on\nthe client side); the agent re-reads the binary's\n",{"type":43,"tag":64,"props":1096,"children":1098},{"className":1097},[],[1099],{"type":49,"value":1084},{"type":49,"value":1101}," on the installed version before quoting flag\nstrings. Throughput numbers are device-, firmware-,\nversion-, and topology-specific.",{"type":43,"tag":233,"props":1103,"children":1104},{},[1105,1110,1112,1118,1120,1126,1128,1138],{"type":43,"tag":56,"props":1106,"children":1107},{},[1108],{"type":49,"value":1109},"Pre-written DOCA GPUNetIO or CUDA kernel source code",{"type":49,"value":1111},"\nthat would compete with the shipped tool tree. The\nshipped ",{"type":43,"tag":64,"props":1113,"children":1115},{"className":1114},[],[1116],{"type":49,"value":1117},"client\u002F{main.c,kernel.cu,perftest.c,common.{c,h}}",{"type":49,"value":1119},"\nand ",{"type":43,"tag":64,"props":1121,"children":1123},{"className":1122},[],[1124],{"type":49,"value":1125},"server\u002F{main.c,perftest.c,common.{c,h}}",{"type":49,"value":1127}," files are\nthe verified worked example; the agent's job is to\nroute the user there and prescribe minimum-diff\nmodification per the universal modify-a-sample workflow\nin\n",{"type":43,"tag":96,"props":1129,"children":1131},{"href":1130},"..\u002F..\u002Fdoca-programming-guide\u002FSKILL.md",[1132],{"type":43,"tag":64,"props":1133,"children":1135},{"className":1134},[],[1136],{"type":49,"value":1137},"doca-programming-guide",{"type":49,"value":296},{"type":43,"tag":233,"props":1140,"children":1141},{},[1142,1147,1149,1157,1159,1164],{"type":43,"tag":56,"props":1143,"children":1144},{},[1145],{"type":49,"value":1146},"Wrappers, parsers, or scripts",{"type":49,"value":1148}," in any language that\nconsume the tool's stdout. The output format is small\nand documented in\n",{"type":43,"tag":96,"props":1150,"children":1151},{"href":315},[1152],{"type":43,"tag":64,"props":1153,"children":1155},{"className":1154},[],[1156],{"type":49,"value":322},{"type":49,"value":1158},";\nif the user wants to script against it, the right\nanswer is ",{"type":43,"tag":143,"props":1160,"children":1161},{},[1162],{"type":49,"value":1163},"\"read the live source, write the parser\nagainst your installed binary\"",{"type":49,"value":296},{"type":43,"tag":233,"props":1166,"children":1167},{},[1168,1195],{"type":43,"tag":56,"props":1169,"children":1170},{},[1171,1173,1179,1180,1186,1187,1193],{"type":49,"value":1172},"A ",{"type":43,"tag":64,"props":1174,"children":1176},{"className":1175},[],[1177],{"type":49,"value":1178},"samples\u002F",{"type":49,"value":149},{"type":43,"tag":64,"props":1181,"children":1183},{"className":1182},[],[1184],{"type":49,"value":1185},"bindings\u002F",{"type":49,"value":156},{"type":43,"tag":64,"props":1188,"children":1190},{"className":1189},[],[1191],{"type":49,"value":1192},"reference\u002F",{"type":49,"value":1194}," subtree.",{"type":49,"value":1196},"\nThis is a thin loader for a shipped tool tree;\nsubstantive material lives in the source tree and in\nthe GPUNetIO library docs.",{"type":43,"tag":210,"props":1198,"children":1200},{"id":1199},"loading-order",[1201],{"type":49,"value":1202},"Loading order",{"type":43,"tag":1204,"props":1205,"children":1206},"ol",{},[1207,1220,1240],{"type":43,"tag":233,"props":1208,"children":1209},{},[1210,1212,1218],{"type":49,"value":1211},"Read this ",{"type":43,"tag":64,"props":1213,"children":1215},{"className":1214},[],[1216],{"type":49,"value":1217},"SKILL.md",{"type":49,"value":1219}," first to confirm the user's\nquestion is in scope (the user actually wants to\nmeasure sustained kernel-initiated WRITE BW through\nGPUNetIO, not learn GPUNetIO as a library or do a\nCPU-initiated measurement).",{"type":43,"tag":233,"props":1221,"children":1222},{},[1223],{"type":43,"tag":56,"props":1224,"children":1225},{},[1226,1228,1233,1235,1239],{"type":49,"value":1227},"For what the tool measures, the surface-selection\nrule against the GPI sister tool and the CPU-initiated\n",{"type":43,"tag":64,"props":1229,"children":1231},{"className":1230},[],[1232],{"type":49,"value":167},{"type":49,"value":1234},", the throughput-decomposition guide, the\nversion overlay, the error taxonomy, the observability\nsurface, and the safety overlay, see\n",{"type":43,"tag":96,"props":1236,"children":1237},{"href":133},[1238],{"type":49,"value":133},{"type":49,"value":296},{"type":43,"tag":233,"props":1241,"children":1242},{},[1243],{"type":43,"tag":56,"props":1244,"children":1245},{},[1246,1248,1253,1254,1259,1260,1265,1266,1271,1272,1277,1278,1283,1284,1289,1290,1295,1297,1301],{"type":49,"value":1247},"For step-by-step workflows — ",{"type":43,"tag":64,"props":1249,"children":1251},{"className":1250},[],[1252],{"type":49,"value":930},{"type":49,"value":149},{"type":43,"tag":64,"props":1255,"children":1257},{"className":1256},[],[1258],{"type":49,"value":938},{"type":49,"value":841},{"type":43,"tag":64,"props":1261,"children":1263},{"className":1262},[],[1264],{"type":49,"value":960},{"type":49,"value":149},{"type":43,"tag":64,"props":1267,"children":1269},{"className":1268},[],[1270],{"type":49,"value":984},{"type":49,"value":149},{"type":43,"tag":64,"props":1273,"children":1275},{"className":1274},[],[1276],{"type":49,"value":992},{"type":49,"value":149},{"type":43,"tag":64,"props":1279,"children":1281},{"className":1280},[],[1282],{"type":49,"value":1000},{"type":49,"value":149},{"type":43,"tag":64,"props":1285,"children":1287},{"className":1286},[],[1288],{"type":49,"value":1008},{"type":49,"value":149},{"type":43,"tag":64,"props":1291,"children":1293},{"className":1292},[],[1294],{"type":49,"value":1016},{"type":49,"value":1296}," — see\n",{"type":43,"tag":96,"props":1298,"children":1299},{"href":98},[1300],{"type":49,"value":98},{"type":49,"value":296},{"type":43,"tag":210,"props":1303,"children":1305},{"id":1304},"related-skills",[1306],{"type":49,"value":1307},"Related skills",{"type":43,"tag":229,"props":1309,"children":1310},{},[1311,1355,1376,1412,1426,1470,1491,1518,1547,1562],{"type":43,"tag":233,"props":1312,"children":1313},{},[1314,1322,1324,1329,1331,1337,1339,1345,1347,1353],{"type":43,"tag":96,"props":1315,"children":1316},{"href":606},[1317],{"type":43,"tag":64,"props":1318,"children":1320},{"className":1319},[],[1321],{"type":49,"value":606},{"type":49,"value":1323}," —\nthe library this tool wraps. The per-GPU ",{"type":43,"tag":64,"props":1325,"children":1327},{"className":1326},[],[1328],{"type":49,"value":1045},{"type":49,"value":1330},"\ncontext, the GPU-visible ",{"type":43,"tag":64,"props":1332,"children":1334},{"className":1333},[],[1335],{"type":49,"value":1336},"doca_gpu_eth_*",{"type":49,"value":1338}," and RDMA-side\nhandles, the CUDA-side persistent-kernel pattern, the\ndual capability-discovery rule (DOCA cap-query AND\n",{"type":43,"tag":64,"props":1340,"children":1342},{"className":1341},[],[1343],{"type":49,"value":1344},"cudaGetDeviceProperties",{"type":49,"value":1346},"), and the env preconditions\n(",{"type":43,"tag":64,"props":1348,"children":1350},{"className":1349},[],[1351],{"type":49,"value":1352},"nvidia_peermem",{"type":49,"value":1354}," loaded, CUDA buffers registered with\nDOCA) live there.",{"type":43,"tag":233,"props":1356,"children":1357},{},[1358,1367,1369,1374],{"type":43,"tag":96,"props":1359,"children":1361},{"href":1360},"..\u002F..\u002Flibs\u002Fdoca-rdma\u002FSKILL.md",[1362],{"type":43,"tag":64,"props":1363,"children":1365},{"className":1364},[],[1366],{"type":49,"value":1360},{"type":49,"value":1368}," —\nthe underlying RDMA library. The RDMA queue this tool\nbinds is created and connected via ",{"type":43,"tag":64,"props":1370,"children":1372},{"className":1371},[],[1373],{"type":49,"value":733},{"type":49,"value":1375},"; the\nqueue lifecycle, transport type (RC vs UC vs UD),\npermission matrix, and connection method are owned\nthere.",{"type":43,"tag":233,"props":1377,"children":1378},{},[1379,1388,1390,1395,1397,1402,1404,1410],{"type":43,"tag":96,"props":1380,"children":1382},{"href":1381},"..\u002F..\u002Flibs\u002Fdoca-verbs\u002FSKILL.md",[1383],{"type":43,"tag":64,"props":1384,"children":1386},{"className":1385},[],[1387],{"type":49,"value":1381},{"type":49,"value":1389}," —\nthe raw-verbs escape hatch beneath ",{"type":43,"tag":64,"props":1391,"children":1393},{"className":1392},[],[1394],{"type":49,"value":733},{"type":49,"value":1396}," \u002F\n",{"type":43,"tag":64,"props":1398,"children":1400},{"className":1399},[],[1401],{"type":49,"value":601},{"type":49,"value":1403},". This tool stays on the higher-level\nsurfaces; ",{"type":43,"tag":64,"props":1405,"children":1407},{"className":1406},[],[1408],{"type":49,"value":1409},"doca-verbs",{"type":49,"value":1411}," is the right place only if the\nuser needs a specific WR flag \u002F QP attribute the\nGPUNetIO + RDMA surfaces do not expose.",{"type":43,"tag":233,"props":1413,"children":1414},{},[1415,1424],{"type":43,"tag":96,"props":1416,"children":1418},{"href":1417},"..\u002Fdoca-gpunetio-ib-write-lat\u002FSKILL.md",[1419],{"type":43,"tag":64,"props":1420,"children":1422},{"className":1421},[],[1423],{"type":49,"value":1417},{"type":49,"value":1425}," —\nthe latency analog of this tool. Same physical\noperation; same runtime framework; different metric\nclass (BW vs latency). The two together carry the\nfull GPUNetIO-side throughput \u002F latency picture.",{"type":43,"tag":233,"props":1427,"children":1428},{},[1429,1437,1439,1444,1446,1452,1453,1458,1460,1468],{"type":43,"tag":96,"props":1430,"children":1431},{"href":784},[1432],{"type":43,"tag":64,"props":1433,"children":1435},{"className":1434},[],[1436],{"type":49,"value":791},{"type":49,"value":1438}," — the GPI\nprogramming surface (CUDA-kernel-initiated RDMA), the\nalternative runtime framework for the same physical\noperation. ",{"type":43,"tag":64,"props":1440,"children":1442},{"className":1441},[],[1443],{"type":49,"value":799},{"type":49,"value":1445}," ships no GPI ",{"type":43,"tag":64,"props":1447,"children":1449},{"className":1448},[],[1450],{"type":49,"value":1451},"ib_write_lat",{"type":49,"value":1396},{"type":43,"tag":64,"props":1454,"children":1456},{"className":1455},[],[1457],{"type":49,"value":69},{"type":49,"value":1459}," benchmark binary, so the GPI comparison is\nagainst the library surface, not a sibling tool. The\nselection rule in\n",{"type":43,"tag":96,"props":1461,"children":1462},{"href":252},[1463],{"type":43,"tag":64,"props":1464,"children":1466},{"className":1465},[],[1467],{"type":49,"value":259},{"type":49,"value":1469},"\nis the decision aid.",{"type":43,"tag":233,"props":1471,"children":1472},{},[1473,1481,1483,1489],{"type":43,"tag":96,"props":1474,"children":1475},{"href":513},[1476],{"type":43,"tag":64,"props":1477,"children":1479},{"className":1478},[],[1480],{"type":49,"value":520},{"type":49,"value":1482}," — the\ncanonical version-detection chain, four-way match rule,\nNGC container semantics, and headers-win-over-docs\nrule. The ",{"type":43,"tag":64,"props":1484,"children":1486},{"className":1485},[],[1487],{"type":49,"value":1488},"## Version compatibility",{"type":49,"value":1490}," section in this\nskill is a thin overlay; the body lives there.",{"type":43,"tag":233,"props":1492,"children":1493},{},[1494,1502,1504,1509,1511,1516],{"type":43,"tag":96,"props":1495,"children":1496},{"href":177},[1497],{"type":43,"tag":64,"props":1498,"children":1500},{"className":1499},[],[1501],{"type":49,"value":184},{"type":49,"value":1503}," — env\npreparation, install verification, GPU + CUDA Toolkit\npairing, ",{"type":43,"tag":64,"props":1505,"children":1507},{"className":1506},[],[1508],{"type":49,"value":1352},{"type":49,"value":1510}," load, hugepages, NUMA, and\nthe ",{"type":43,"tag":143,"props":1512,"children":1513},{},[1514],{"type":49,"value":1515},"I have no install yet",{"type":49,"value":1517}," path with the public NGC\nDOCA container.",{"type":43,"tag":233,"props":1519,"children":1520},{},[1521,1529,1531,1537,1539,1545],{"type":43,"tag":96,"props":1522,"children":1523},{"href":832},[1524],{"type":43,"tag":64,"props":1525,"children":1527},{"className":1526},[],[1528],{"type":49,"value":839},{"type":49,"value":1530}," —\nrouting to the public DOCA documentation set (DOCA GPU\nNetIO, DOCA RDMA pages on ",{"type":43,"tag":64,"props":1532,"children":1534},{"className":1533},[],[1535],{"type":49,"value":1536},"docs.nvidia.com",{"type":49,"value":1538},") and the\n",{"type":43,"tag":64,"props":1540,"children":1542},{"className":1541},[],[1543],{"type":49,"value":1544},"docs.nvidia.com\u002Fcuda\u002F",{"type":49,"value":1546}," pointer for the CUDA Toolkit.",{"type":43,"tag":233,"props":1548,"children":1549},{},[1550,1560],{"type":43,"tag":96,"props":1551,"children":1553},{"href":1552},"..\u002F..\u002Fdoca-debug\u002FSKILL.md",[1554],{"type":43,"tag":64,"props":1555,"children":1557},{"className":1556},[],[1558],{"type":49,"value":1559},"doca-debug",{"type":49,"value":1561}," — the\ncross-cutting debug ladder. The tool surfaces its own\nerror taxonomy; when the cause is below DOCA, the\ntaxonomy hands off here.",{"type":43,"tag":233,"props":1563,"children":1564},{},[1565,1575,1577,1583],{"type":43,"tag":96,"props":1566,"children":1568},{"href":1567},"..\u002F..\u002Fdoca-hardware-safety\u002FSKILL.md",[1569],{"type":43,"tag":64,"props":1570,"children":1572},{"className":1571},[],[1573],{"type":49,"value":1574},"doca-hardware-safety",{"type":49,"value":1576}," —\nthe bundle-wide hardware-safety meta-policy. The\n",{"type":43,"tag":64,"props":1578,"children":1580},{"className":1579},[],[1581],{"type":49,"value":1582},"## Safety policy",{"type":49,"value":1584}," overlay cross-links it.",{"items":1586,"total":1688},[1587,1602,1616,1630,1642,1659,1674],{"slug":1588,"name":1588,"fn":1589,"description":1590,"org":1591,"tags":1592,"stars":23,"repoUrl":24,"updatedAt":1601},"accelerated-computing-cudf","accelerate data processing with cuDF","Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby, CSV\u002FParquet I\u002FO, nullable semantics, and multi-GPU DataFrame workloads.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1593,1596,1599,1600],{"name":1594,"slug":1595,"type":15},"Data Analysis","data-analysis",{"name":1597,"slug":1598,"type":15},"Data Engineering","data-engineering",{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},"2026-07-14T05:28:43.176466",{"slug":1603,"name":1603,"fn":1604,"description":1605,"org":1606,"tags":1607,"stars":23,"repoUrl":24,"updatedAt":1615},"aiq-deploy","deploy and manage NVIDIA AI-Q infrastructure","Use when asked to install, deploy, run, validate, troubleshoot, or stop NVIDIA AI-Q Blueprint infrastructure.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1608,1611,1614],{"name":1609,"slug":1610,"type":15},"Deployment","deployment",{"name":1612,"slug":1613,"type":15},"Infrastructure","infrastructure",{"name":9,"slug":8,"type":15},"2026-07-14T05:29:06.667109",{"slug":1617,"name":1617,"fn":1618,"description":1619,"org":1620,"tags":1621,"stars":23,"repoUrl":24,"updatedAt":1629},"aiq-research","conduct deep research with AI-Q","Use when asked to run deep research or AI-Q research through a reachable NVIDIA AI-Q Blueprint backend.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1622,1625,1626],{"name":1623,"slug":1624,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":1627,"slug":1628,"type":15},"Research","research","2026-07-14T05:28:06.816956",{"slug":1631,"name":1631,"fn":1632,"description":1633,"org":1634,"tags":1635,"stars":23,"repoUrl":24,"updatedAt":1641},"amc-run-sample-calibration","run AMC sample dataset calibration","Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice. Use when user says 'test sample dataset', 'run sample calibration', 'verify AMC install', or 'launch and test'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1636,1637,1638],{"name":1594,"slug":1595,"type":15},{"name":9,"slug":8,"type":15},{"name":1639,"slug":1640,"type":15},"Testing","testing","2026-07-17T05:29:03.913266",{"slug":1643,"name":1643,"fn":1644,"description":1645,"org":1646,"tags":1647,"stars":23,"repoUrl":24,"updatedAt":1658},"amc-run-video-calibration","calibrate video datasets with AutoMagicCalib","Calibrate a new dataset from pre-recorded video files via the AutoMagicCalib REST API. Use when user has local MP4s and says 'calibrate my videos', 'run AMC on these videos', or similar. For RTSP\u002Flive streams, use amc-run-rtsp-calibration instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1648,1651,1654,1655],{"name":1649,"slug":1650,"type":15},"Automation","automation",{"name":1652,"slug":1653,"type":15},"Imaging","imaging",{"name":9,"slug":8,"type":15},{"name":1656,"slug":1657,"type":15},"Video","video","2026-07-17T05:28:53.905004",{"slug":1660,"name":1660,"fn":1661,"description":1662,"org":1663,"tags":1664,"stars":23,"repoUrl":24,"updatedAt":1673},"amc-setup-calibration-stack","deploy AutoMagicCalib microservice with Docker","Launch AutoMagicCalib microservice and web UI from NGC release images via Docker Compose. Use when user says 'deploy auto calibration', 'launch auto calibration', 'launch AMC', 'start MS+UI', or 'set up auto-magic-calib'. Requires NGC API key.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1665,1666,1669,1670],{"name":1609,"slug":1610,"type":15},{"name":1667,"slug":1668,"type":15},"Docker","docker",{"name":9,"slug":8,"type":15},{"name":1671,"slug":1672,"type":15},"Operations","operations","2026-07-17T05:28:56.913999",{"slug":1675,"name":1675,"fn":1676,"description":1677,"org":1678,"tags":1679,"stars":23,"repoUrl":24,"updatedAt":1687},"cudaq-guide","develop quantum applications with CUDA-Q","CUDA-Q onboarding guide for installation, test programs, GPU simulation, QPU hardware, and quantum applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1680,1681,1684],{"name":9,"slug":8,"type":15},{"name":1682,"slug":1683,"type":15},"Quantum Computing","quantum-computing",{"name":1685,"slug":1686,"type":15},"Simulation","simulation","2026-07-14T05:26:58.898253",305,{"items":1690,"total":1841},[1691,1709,1725,1736,1748,1762,1775,1789,1800,1809,1823,1832],{"slug":1692,"name":1692,"fn":1693,"description":1694,"org":1695,"tags":1696,"stars":1706,"repoUrl":1707,"updatedAt":1708},"nemoclaw-user-guide","retrieve NemoClaw documentation and configuration","Guides human users' AI agents to the NemoClaw docs MCP server and canonical Fern documentation in Markdown form. Use when users ask how to install, configure, operate, troubleshoot, secure, or learn NemoClaw with an AI coding assistant. Trigger keywords - nemoclaw docs, use nemoclaw with ai agent, nemoclaw mcp docs, nemoclaw install help, nemoclaw quickstart, nemoclaw markdown docs, llms.txt, agent skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1697,1700,1703],{"name":1698,"slug":1699,"type":15},"Documentation","documentation",{"name":1701,"slug":1702,"type":15},"MCP","mcp",{"name":1704,"slug":1705,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":1710,"name":1710,"fn":1711,"description":1712,"org":1713,"tags":1714,"stars":1722,"repoUrl":1723,"updatedAt":1724},"mcore-build-and-dependency","manage Megatron-LM development environments","Container-based dev environment setup and dependency management for Megatron-LM. Covers acquiring and launching the CI container, uv package management, and updating uv.lock.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1715,1718,1719],{"name":1716,"slug":1717,"type":15},"Containers","containers",{"name":1609,"slug":1610,"type":15},{"name":1720,"slug":1721,"type":15},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":1726,"name":1726,"fn":1727,"description":1728,"org":1729,"tags":1730,"stars":1722,"repoUrl":1723,"updatedAt":1735},"mcore-bump-base-image","update NVIDIA PyTorch base images","Bump the NVIDIA PyTorch base image (`nvcr.io\u002Fnvidia\u002Fpytorch:YY.MM-py3`) used by Megatron-LM CI. Covers the two pin sites (GitHub CI in `docker\u002F.ngc_version.dev` and GitLab CI in `.gitlab\u002Fstages\u002F01.build.yml`), the post-bump CI loop (re-run functional tests, refresh golden values, mark broken tests), and the gotchas that bit PRs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1731,1734],{"name":1732,"slug":1733,"type":15},"CI\u002FCD","ci-cd",{"name":1609,"slug":1610,"type":15},"2026-07-14T05:25:59.97109",{"slug":1737,"name":1737,"fn":1738,"description":1739,"org":1740,"tags":1741,"stars":1722,"repoUrl":1723,"updatedAt":1747},"mcore-cicd","manage CI\u002FCD pipelines for Megatron-LM","CI\u002FCD reference for Megatron-LM. Covers CI pipeline structure, PR scope labels, triggering internal GitLab CI (which force-pushes the current branch to a pull-request\u002FBRANCH ref — always dry-run and verify the destination first; never run against shared or protected branches), and CI failure investigation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1742,1743,1744],{"name":1732,"slug":1733,"type":15},{"name":1609,"slug":1610,"type":15},{"name":1745,"slug":1746,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":1749,"name":1749,"fn":1750,"description":1751,"org":1752,"tags":1753,"stars":1722,"repoUrl":1723,"updatedAt":1761},"mcore-create-issue","investigate CI failures and create issues","Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1754,1757,1758],{"name":1755,"slug":1756,"type":15},"Debugging","debugging",{"name":1745,"slug":1746,"type":15},{"name":1759,"slug":1760,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":1763,"name":1763,"fn":1764,"description":1765,"org":1766,"tags":1767,"stars":1722,"repoUrl":1723,"updatedAt":1774},"mcore-linting-and-formatting","lint and format Megatron-LM code","Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1768,1771],{"name":1769,"slug":1770,"type":15},"Best Practices","best-practices",{"name":1772,"slug":1773,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":1776,"name":1776,"fn":1777,"description":1778,"org":1779,"tags":1780,"stars":1722,"repoUrl":1723,"updatedAt":1788},"mcore-migrate-gpt-to-hybrid","migrate Megatron-LM models to HybridModel","Migration guide for moving Megatron Core GPTModel checkpoints, model providers, training commands, and layer mappings to HybridModel.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1781,1784,1787],{"name":1782,"slug":1783,"type":15},"Machine Learning","machine-learning",{"name":1785,"slug":1786,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":1790,"name":1790,"fn":1791,"description":1792,"org":1793,"tags":1794,"stars":1722,"repoUrl":1723,"updatedAt":1799},"mcore-onboard-gb200-1node-tests","onboard functional tests for GB200","Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1795,1798],{"name":1796,"slug":1797,"type":15},"QA","qa",{"name":1639,"slug":1640,"type":15},"2026-07-14T05:25:53.673039",{"slug":1801,"name":1801,"fn":1802,"description":1803,"org":1804,"tags":1805,"stars":1722,"repoUrl":1723,"updatedAt":1808},"mcore-run-on-slurm","launch distributed training jobs on SLURM","How to launch distributed Megatron-LM training jobs on a SLURM cluster. Covers a minimal sbatch skeleton, environment-variable setup for torch.distributed.run, CUDA_DEVICE_MAX_CONNECTIONS rules across hardware and parallelism modes, container conventions, monitoring, and per-rank failure diagnosis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1806,1807],{"name":1609,"slug":1610,"type":15},{"name":1612,"slug":1613,"type":15},"2026-07-14T05:25:49.362534",{"slug":1810,"name":1810,"fn":1811,"description":1812,"org":1813,"tags":1814,"stars":1722,"repoUrl":1723,"updatedAt":1822},"mcore-split-pr","split pull requests to reduce review load","Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1815,1818,1819],{"name":1816,"slug":1817,"type":15},"Code Review","code-review",{"name":1745,"slug":1746,"type":15},{"name":1820,"slug":1821,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":1824,"name":1824,"fn":1825,"description":1826,"org":1827,"tags":1828,"stars":1722,"repoUrl":1723,"updatedAt":1831},"mcore-testing","run and manage Megatron-LM tests","Test system for Megatron-LM. Covers test layout, recipe YAML structure, adding and running unit and functional tests, golden values, marker filters, and CI parity.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1829,1830],{"name":1796,"slug":1797,"type":15},{"name":1639,"slug":1640,"type":15},"2026-07-14T05:25:54.928983",{"slug":1833,"name":1833,"fn":1834,"description":1835,"org":1836,"tags":1837,"stars":1722,"repoUrl":1723,"updatedAt":1840},"nightly-sync","manage nightly main-to-dev sync workflows","Domain knowledge for the nightly main-to-dev sync workflow. Covers merge strategy, CI architecture, failure investigation, and known issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1838,1839],{"name":1649,"slug":1650,"type":15},{"name":1732,"slug":1733,"type":15},"2026-07-30T05:29:03.275638",496]