DOCA GPUNetIO Development Skill
Helps developers connect CUDA kernels on NVIDIA GPUs to DOCA network queues for GPU-side packet I/O and debugging.
The documentation makes permissions, CUDA/DOCA versioning, nvidia_peermem, buffer registration, lifecycle, and rollback risks visible, and it does not request credentials; however, it recommends sudo modprobe and hardware/driver access without consistently requiring user confirmation, while least-privilege and recovery verification remain incomplete, so 7 points are deducted.
SKILL.md, CAPABILITIES.md, and TASKS.md provide a fairly consistent configure/build/run/test/debug workflow and error taxonomy; however, operation depends on a local DOCA installation, specialized hardware, and several unbundled companion skills, with no statically verifiable key-path tests and several unverified technical assertions, so the static ceiling applies.
Audience, trigger phrases, prerequisites, exclusions, and routing are clearly described, and the guidance covers C/CUDA plus some non-C host integrations; however, it is limited to a specialized Linux/NVIDIA/DOCA/NIC or DPU environment, Chinese-language support is unspecified, and some core references depend on overseas documentation, warranting a deduction.
Information architecture, progressive loading, related skills, dependency notes, task verbs, and limitation disclosures are strong; however, author, release version, changelog, and maintenance details are incomplete, the frontmatter license says Apache-2.0 while SKILLCARD says Apache-2.0 AND CC-BY-4.0, and signature fields remain TBD, so 6 points are deducted.
The material covers configure, build, modify, run, test, and debug, with concrete commands, API symbols, termination guidance, and rollback concepts, so it plausibly addresses the core task; however, it ships no directly buildable sample or test program, and static review cannot verify outcome correctness, so the score remains below the static maximum.
There is a committed benchmark report, evaluation configuration, CI regression contract, and references to local/upstream material; however, the evaluation dataset is unavailable, the reported results are largely self-described, and reproducible key-path evidence is thin, so the score is limited to 4.
- Do not treat the PASS in BENCHMARK.md or the SKILLCARD quality fields as independent validation; the evaluation dataset is unavailable and signature/version fields remain TBD.
- Before sudo modprobe, driver inspection, persistent-kernel, or network-queue operations, obtain explicit confirmation and establish the target device, stop signal, and recoverable rollback path.
- License metadata is inconsistent between Apache-2.0 and Apache-2.0 AND CC-BY-4.0 and should be reconciled before publication.
- GPUNetIO requires specialized hardware, matched CUDA/DOCA versions, and a local installation; overseas DOCA documentation may be difficult to reach from mainland-China networks.
What does this skill do, and when should you use it?
This skill provides hands-on DOCA GPUNetIO guidance for external developers building GPU-initiated networking applications with host-side C/C++ and device-side CUDA C++. It covers the per-device doca_gpu context, GPU-visible RX/TX queues, persistent CUDA kernels, capability checks, CUDA buffer registration, and layered error diagnosis. It assumes DOCA, a CUDA version matched to DOCA, underlying DOCA Ethernet queues, and the required hardware are already prepared. It is an agent-guidance loader, not a bundle of buildable application source, CUDA kernels, or standalone build manifests.
Reads the local DOCA installation through the doca-gpunetio pkg-config module and directs the agent to CAPABILITIES.md and TASKS.md. It provides configure, build, modify, run, test, debug, and rollback workflows; explains how to create doca_gpu contexts and doca_gpu_eth_rxq/doca_gpu_eth_txq handles; checks DOCA capability-query results together with cudaGetDeviceProperties; guides cudaMalloc buffer allocation and doca_buf_arr_create_* registration; diagnoses DOCA_ERROR_* returns, CUDA/DOCA version skew, missing nvidia_peermem, and persistent-kernel failures; and routes out-of-scope questions to related skills.
- A developer with a BlueField DPU or ConnectX NIC wants a persistent CUDA kernel to poll a GPU-visible RX queue directly.
- A developer with multiple NVIDIA GPUs needs to determine whether a selected CUDA device ordinal supports GPU-initiated networking.
- A developer whose DOCA Ethernet queues work but GPUNetIO returns DOCA_ERROR_NOT_SUPPORTED needs to isolate capability, driver, or nvidia_peermem issues.
- A C/CUDA developer needs to allocate buffers with cudaMalloc, register them with DOCA, and prepare them before starting the context.
- A developer needs to verify whether a GPUNetIO API or persistent-kernel helper is supported by the installed DOCA and CUDA combination.
What are this skill's strengths and limitations?
- Covers device capability checks, queue integration, buffer registration, and layered error diagnosis.
- Clearly separates GPUNetIO from DOCA Ethernet, DOCA installation, and general CUDA work.
- Includes workflows for configure, build, modify, run, test, debug, and rollback.
- Benefits from the NVIDIA skills catalog’s signing, evaluation, and daily synchronization process.
- Does not include buildable GPUNetIO application code or CUDA kernel templates.
- Requires an existing DOCA and CUDA environment with matching DOCA and CUDA versions.
- Requires an NVIDIA GPU, a BlueField DPU or ConnectX NIC, and nvidia_peermem; some samples also need an InfiniBand-capable RNIC.
- Does not cover DOCA installation, underlying Ethernet queue setup, DPA, or general CUDA programming.
- The supplied source does not show concrete automated test commands, platform test results, or performance benchmarks.
How do you install this skill?
Install the skill from the NVIDIA/skills collection with the skills CLI:
npx skills add nvidia/skills --skill doca-gpunetio --yes
The README does not provide a separate copy-only command for the skills/doca-gpunetio directory. After installation, the skill becomes available when an agent loads it for a relevant task.
How do you use this skill?
First ensure that DOCA is installed at /opt/mellanox/doca, the CUDA version matches DOCA, nvidia_peermem is loaded, and the underlying DOCA Ethernet RX/TX queues are already configured. Then ask for a concrete GPUNetIO task, such as: “How do I make a persistent CUDA kernel receive packets directly from the NIC?” For configure, build, modify, run, test, or debug work, the skill uses TASKS.md; for capability and feature questions, it uses CAPABILITIES.md.
How does this skill compare with similar options?
Unlike doca-eth, this skill focuses on creating GPU-visible queue handles over existing DOCA Ethernet RX/TX queues and using them from CUDA kernels; underlying Ethernet queue setup belongs to doca-eth. Unlike doca-setup, it does not install or prepare DOCA or CUDA. Unlike doca-debug, it specializes in GPUNetIO issues involving CUDA, GPUDirect RDMA, version matching, and persistent kernels.