Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use this skill when the user runs doca_dpa_hl_tracer to capture/decode DPA-side traces at the programming-events layer (kernel entry/exit, sync points, comm primitive calls, RDMA WR submission, completion drain) — picking TRACE vs CRIT, tuning the JSON config (file-size limits + file_size_limit_policy, thread priorities/cores), decoding against the matching DPA-side ELF, or diagnosing empty/noisy captures. Trigger even when the user does not explicitly mention "DOCA DPA tracer" or "high-level tr
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 138% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 362% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 89% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 295% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 81% | 0% |
Where to start: This is a tool skill for invoking doca_dpa_hl_tracer — the documented host-side CLI that captures DPA-side execution traces in higher-level terms (DPA programming events: kernel entry / exit, sync points, comm primitive calls, RDMA WR submission, completions) rather than raw cycle counts. Open TASKS.md and start at ## configure for the mode-vs-overhead decision and the JSON config layout, then ## run for the capture → decode → render pipeline. Open CAPABILITIES.md when the question is what does this tool actually trace, which DPA programming events does it expose, what is the trace-overhead vs fidelity tradeoff, or how does it slot into a DPA debug loop alongside [`doca-dpa`](../../libs/doca-dpa/SKILL.md) and [`doca-debug`](../../doca-debug/SKILL.md). If DPA is not the right surface for the user's question (e.g. the bug is host-side, the bug is in the DPACC-produced image, the user wants raw cycle counts), the path-selection rule in CAPABILITIES.md ## Capabilities and modes routes the agent before any capture is attempted.
The CLASSES of doca_dpa_hl_tracer questions this skill is built to answer, each with one worked example. The class is the load-bearing piece; the worked example is one instance.
look?" — worked example: "my host-side `doca_dpa_kernel_launch_update_ completes, but the kernel's reported result is wrong; no host-side DOCA_ERROR_`". Answered by the when DPA-side high-level tracing is the right surface gate in CAPABILITIES.md ## Capabilities and modes + the capture → decode → render flow in TASKS.md ## run + the which DPA programming events to focus on rule in TASKS.md ## debug.
show up in cycle profiles — how do I see kernel-entry to first-comm-call latency?" — worked example: "my DPA kernel runs but the time between launch and the first RDMA WR submission is bigger than I expected". Answered by the event-taxonomy table in CAPABILITIES.md ## Capabilities and modes + the iterative loop in TASKS.md ## test which treats trace overhead, mode (TRACE vs CRIT), and capture window as axes to tune.
observation overhead?" — worked example: "`TRACE` mode is producing too much data and my measured DPA latency went up by 2x compared to without the tracer". Answered by the mode-vs-overhead tradeoff in CAPABILITIES.md ## Capabilities and modes + the CRIT-first guidance in TASKS.md ## configure (start with critical-events-only; widen to TRACE only when the bug demands per-event detail).
configure the file-size limits?" — worked example: "binary trace file hit 5 GB and the capture stopped". Answered by the log_file_max_size_in_bytes / bin_file_max_size_in_bytes / file_size_limit_policy triple in CAPABILITIES.md ## Capabilities and modes + the JSON config layout in TASKS.md ## configure.
matching doca-dpa library and DPACC compiler version?" — worked example: "is the tracer ABI on my install compatible with the DPA image my DPACC just produced?". Answered by the version-overlay in CAPABILITIES.md ## Version compatibility, which redirects to the canonical doca-version chain and adds the tracer ↔ `doca-dpa` library ↔ DPACC compiler match rule.
install broken, no events fired, or am I tracing the wrong thing?" — worked example: "`doca_dpa_hl_tracer` ran, wrote a file, but the parser shows zero events". Answered by the layered error taxonomy in CAPABILITIES.md ## Error taxonomy (install / device-binding / DPA-image-instrumented / capture-window / decode-vs-elf / overhead-saturated / version / cross-cutting) + the layered walk in TASKS.md ## debug.
This skill serves external developers, platform operators, and AI agents who have already brought up a DPA-side workload through doca-dpa and now need higher-level visibility into what the DPA kernel is actually doing on the wire — DPA programming events ordering, sync gaps, comm-call latencies, RDMA-WR / completion timing — without dropping all the way down to raw cycle counters. Concretely:
the host side but whose kernel's result is wrong or whose DPA-side performance is below expectation, and who needs a DPA-side ground truth before triaging.
offload from accelerator, custom CC algorithm via doca-pcc) and needs to localize a regression to the DPA side without instrumenting the application.
evidence for the host-side doca-dpa TASKS.md ## debug ladder when the host side reports clean completions but the DPA-side behaviour is wrong.
It is not for users debugging the tracer binary itself, not a substitute for the live public DOCA DPA Tools guide, not the right place for users learning how to write a DPA kernel (that audience belongs in doca-dpa plus the public DOCA DPA / DPACC / DPA-Comms / DPA-Verbs guides), and not the right place for raw per-instruction cycle profiling (different surface, different tool — route via doca-public-knowledge-map ## DOCA tools).
The tracer is shipped as a CLI binary under /opt/mellanox/doca/tools/, not a library you link against. The skill uses the same kind: tool three-file shape as the rest of the bundle so the agent's task-verb contract is uniform across libraries, services, and tools.
doca_dpa_hl_tracer is a C++ host-side CLI. Its inputs are its JSON config file, the DPA-side ELF (the doca_dpa_app-class image produced by DPACC), and a running DPA-side workload that the host-side doca-dpa lifecycle already started. Its outputs are a binary trace file (bin_file) and a human-readable log file (log_file). The skill keeps the workflow guidance language-neutral — the DPA-side workload it traces can be C compiled by DPACC or any other DPA translation unit DPACC accepts — and routes per-language questions to the public DPA / DPACC guides via doca-public-knowledge-map.
Load this skill when the user is — or the agent needs to — invoke doca_dpa_hl_tracer on a real host with DOCA installed against a BlueField with a DPA processor visible to the host, and the host-side doca-dpa lifecycle has already brought a DPA workload up at least once. Concretely:
wrong-result or wrong-ordering behaviour when the host-side doca-dpa lifecycle reports clean completions.
performance gap (kernel-entry to first-comm latency, RDMA-WR-issue to completion gap, sync-point dwell time) at a granularity above raw cycle counts.
TRACE and CRIT capture modes basedon the bug-vs-overhead tradeoff and the available capture window.
affinities, file size limits, file-size-limit policy) so the capture itself does not perturb the workload more than the bug it is investigating.
bin_file against the matchingDPA-side ELF to render the human-readable event stream.
evidence for a host-side doca-dpa TASKS.md ## debug ladder step.
Do not load this skill for general DOCA orientation, DPA-side programming model questions, raw cycle profiling, or DOCA / DPACC install. For those, route to doca-public-knowledge-map, doca-dpa, or doca-setup.
This is a thin loader. Substantive material lives in two companion files:
CAPABILITIES.md — what doca_dpa_hl_tracer captures: theDPA programming event taxonomy (kernel entry / exit, sync points, comm primitive calls, RDMA WR submission and completion drain), the two documented capture modes (TRACE for full per-event, CRIT for critical-events only), the trace-overhead-vs-fidelity tradeoff, the config-file shape (receiver / binary-writer / file-writer / printer threads with priority + core affinity, file size limits, file_size_limit_policy), the capture-window + workload-must-be-running invariant, the ELF-must-match-image rule for decode, the version-availability overlay (tracer ↔ doca-dpa library ↔ DPACC compiler), the layered error taxonomy (install / device-binding / image-instrumented / capture-window / decode / overhead-saturated / version / cross-cutting), the observability surface (binary trace file + log file + tool's own stderr), and the safety policy (capture is bounded; tracing is not a production observability surface).
TASKS.md — step-by-step workflows for the in-scopetask verbs: install (route to host-side DOCA install + DPA prerequisites), configure (mode + JSON config layout + capture window), build (route to install — the binary is shipped, the DPA-side application is user-built by DPACC), modify (refuse — do not patch the binary; modify the JSON config and the invocation instead), run (the capture flow with --mode, --config-file, --output-file), test (iterative loop tuning mode, window, and overhead), debug (walk the error taxonomy), use (consume the decoded trace in a doca-dpa debug session), plus a Deferred task verbs block.
The skill assumes a host where DOCA is already installed at the standard location, a BlueField with a DPA processor is present and visible to the host, the DPACC compiler is installed at a version matched to the host-side DOCA, the DPA-side application image (the ELF the tracer decodes against) is on disk and matches what the doca-dpa lifecycle loaded, and the operator has the privileges the public DOCA DPA Tools guide requires.
This skill is agent guidance, not a samples or scripts bundle. To keep the boundary clean, it deliberately does not contain — and pull requests should not add:
beyond what the public DOCA DPA Tools page and --help document. The DPA programming events surface evolves release to release; --help on the installed binary is the authoritative inventory.
Trace output is workload-, DPA-image-, BlueField-, and firmware-specific; a captured example pinned to one setup misleads operators elsewhere.
language that consume the binary trace format. The format is documented; users who want to script against it should read the live guide and write the parser against their installed version.
trace. A DPA-side perf decision (move a sync, batch a comm call, change a launch argument) is a workload question and the skill prescribes how to capture and read traces — it refuses to translate a captured gap into a kernel-rewrite recommendation without the user's own analysis.
samples/ or reference/ subtree. This is a thinloader for a shipped CLI; substantive material lives on the public page, in --help, and in doca-dpa.
SKILL.md first to confirm the user's questionis in scope (DPA-side high-level tracing, not DPA-side programming and not raw cycle profiling).
tradeoff, JSON config layout, version overlay, error taxonomy, observability, and safety policy, see CAPABILITIES.md.
capture → decode → render workflow — install, configure, build, modify, run, test, debug, use — see TASKS.md.
doca-dpa — the host-sideDPA control library whose loaded application image the tracer captures. Pair them in every DPA debug session: doca-dpa brings the workload up; the tracer captures what the workload does at the DPA programming event layer. Conflating the library with the tracer is the most common DPA-debug first-touch error.
doca-debug — thecross-cutting debug ladder. The tracer slots in at the runtime layer as the DPA-side ground truth before any DPA-side perf or correctness conclusion is made.
doca-public-knowledge-map— routing to the public DOCA DPA Tools page on docs.nvidia.com and the rest of the public DOCA documentation set.
doca-version — canonicalDOCA version-handling rules. The ## Version compatibility section in CAPABILITIES.md is a concise overlay that redirects here for the body and adds the tracer ↔ `doca-dpa` library ↔ DPACC compiler matching rule.
doca-setup — envpreparation, install verification, DPACC compiler install / verification, BlueField mode (the DPA processor must be exposed before any tracing is meaningful), and the I have no install yet path with the public NGC DOCA container.
doca-structured-tools-contract— the bundle's detect → prefer → fall back → report contract for structured helper tools. The command appendix in TASKS.md honors this contract.
doca-programming-guide— general DOCA programming patterns shared by every library / tool surface, including the cross-library DOCA_ERROR_* taxonomy this tool's host-side error layer overlays on top of when host-side doca-dpa calls fail in tandem.
The DPA-side companion libraries doca-dpa-comms (comm primitives the DPA kernel itself calls) and doca-dpa-verbs (RDMA verbs the DPA kernel itself calls) are different artifacts that the tracer's DPA programming events surface visibly names; for the DPA-side programming model itself, route through doca-public-knowledge-map to the public DOCA DPA-Comms and DPA-Verbs guides and to the shipped /opt/mellanox/doca/samples/doca_dpa/ samples. This tool traces their use; it does not redefine them.
Other measured skills in the registry, with their headline benchmark lift.