| license | Apache-2.0 |
| name | doca-gpunetio |
| description | Use this skill when the user is doing hands-on DOCA GPUNetIO programming — wiring a CUDA kernel on an NVIDIA GPU to a doca-eth queue via doca_gpu_eth_rxq / doca_gpu_eth_txq, standing up the per-CUDA-device doca_gpu context, designing the persistent CUDA kernel that drains the GPU-visible queue, running the dual capability check (DOCA cap-query plus cudaGetDeviceProperties), registering cudaMalloc pools via doca_buf_arr_create_*, or debugging DOCA_ERROR_* returns from the GPUNetIO API. Trigger even when the user does not explicitly mention "DOCA GPUNetIO" or "persistent kernel" — typical implicit phrasings include "CUDA kernel reading packets directly from the NIC", "GPU-initiated networking on BlueField", "DOCA_ERROR_DRIVER on doca_gpu_create", "nvidia_peermem not loaded", "kernel-per-packet is too slow", or "which GPU supports GPU-side packet I/O". Refuse and route elsewhere for general CUDA programming, DOCA Ethernet queue bring-up, DOCA DPA, or DOCA install — those belong to other skills.
|
| metadata | {"kind":"library"} |
| compatibility | Requires DOCA SDK at /opt/mellanox/doca on Linux (Ubuntu 22.04/24.04 or RHEL/SLES) with a BlueField DPU or ConnectX NIC. Reads the local install via `pkg-config doca-gpunetio`. Requires an NVIDIA GPU with CUDA toolkit (matched to DOCA per the DOCA Compatibility Policy) and the nvidia_peermem kernel module loaded for GPUDirect RDMA; some samples need an InfiniBand-capable RNIC.
|
DOCA GPUNetIO
Where to start: This skill assumes DOCA is already installed,
the CUDA toolkit is installed and matched to the DOCA install, and
the user is doing hands-on GPUNetIO work — i.e. wiring a DOCA
network queue into a CUDA kernel on an NVIDIA GPU. Open
TASKS.md if the user wants to do something
(configure / build / modify / run / test / debug); open
CAPABILITIES.md when the question is what
can GPUNetIO express on this version + this GPU. If the user has
not installed DOCA yet, route to
doca-setup first; if the user has
not set up the underlying Ethernet RX/TX queues yet, that is a
DOCA Ethernet question — route to
doca-eth.
Example questions this skill answers well
The CLASSES of GPUNetIO questions this skill is built to answer,
each with one worked example. The agent should treat the class
as the load-bearing piece — the worked example is a single
instance.
- "How do I get a CUDA kernel to receive packets directly from
the NIC?" — worked example: "persistent kernel on one GPU
reads packets from a
doca_gpu_eth_rxq built on top of a
representor doca_eth_rxq and counts them per-flow". Answered
by the persistent-kernel pattern in
CAPABILITIES.md ## Capabilities and modes
- "Can I run GPUNetIO on this GPU?" — worked example: "my
host has one Ampere card and one Turing card; which one
supports GPU-initiated networking?". Answered by the dual
capability-discovery rule (DOCA cap-query AND
cudaGetDeviceProperties against the CUDA device ordinal) in
CAPABILITIES.md ## Capabilities and modes
- "Why does my GPUNetIO setup fail with
DOCA_ERROR_NOT_SUPPORTED even though doca-eth came up
fine?" — worked example: "nvidia_peermem is not loaded so
GPUDirect RDMA is unavailable". Answered by the env preconditions
in CAPABILITIES.md ## Safety policy