Agent skill · software engineering · nvidia
doca-dma
Use this skill when the user is doing hands-on DOCA DMA programming — bringing up a doca_dma context, configuring the single doca_dma_task_memcpy task type, sizing buffers via the doca_dma_cap_task_memcpy_* queries, setting LOCAL_READ_ONLY / LOCAL_READ_WRITE permissions on source / destination doca_mmap regions (plus doca_mmap_export_* for cross-peer copies), driving the progress engine, or debugging DOCA_ERROR_* returns. Trigger even when the user does not explicitly mention "DOCA DMA" or "doca_mmap" — typical implicit phrasings include "memcpy host buffer to BlueField without using the CPU", "offload a bulk copy to the DPU", "copy returns NOT_PERMITTED on first submit", "buffer too big for one DMA task", "task submitted but no completion", or "scatter-gather copy between two memory regions". Refuse and route elsewhere for cross-network copies (DOCA RDMA), producer/consumer messaging (DOCA Comch), DOCA Core / progress-engine internals, or DOCA install — those belong to other skills.
Why this skill is useful
Adds detailed workflows and specific commands for configuring and debugging DOCA DMA tasks that are not widely documented.
What it needs
Requires doca installed locally. About 7k tokens when loaded. Last updated 2026-08-07. 2,816 stars on the source repository.
What this skill does
DOCA DMA Examples "Memcpy a host buffer to BlueField without using the CPU." — this is in scope. Use the shipped DMA sample and docadmataskmemcpy. "Copy returns NOTPERMITTED on first submit." — check mmap permissions and docadmacap before changing the task type. Instructions Follow Loading order below. Open the tasks companion for configure / build / run. Open the capabilities companion for the memcpy task and path-selection vs RDMA. Do not open every companion file. Where to start: This skill assumes DOCA is already installed and the user is doing hands-on DMA work on a BlueField / ConnectX / host with DOCA. Open the tasks companion if the user wants to do something (configure / build / modify / run / test / debug); open the capabilities companion when the question is what can DMA express on this version. If the user has not installed DOCA yet, route to doca-setup/SKILL.md first. If the user is not sure DMA is even the right library — the data has to traverse the network, or the flow is small messages between two processes — read the path-selection rule in Capabilities and modes before configuring anything. Example questions this skill answers well The CLASSES of DMA 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 bring up a DOCA DMA context and copy a buffer between host and DPU?" — worked example: "copy a 64 KiB buffer from host memory to DPU memory in one task, starting from the shipped DMA Copy reference application". Answered by the lifecycle + memcpy-task workflow in configure + Capabilities and modes task-type table. "How big a buffer can I memcpy in one task on this device?" — worked example: "can I copy 16 MiB in a single docadmataskmemcpy". Answered by the capability-query rule (docadmacaptaskmemcpygetmaxbufsize, plus getmaxbuflistlen for scatter-gather) in Capabilities and modes the discovery step in configure. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills nvidia/doca-dma