
DOCA DPA High-Level Tracer
OfficialFreeCapture and decode DPA-side traces for better debugging.
Free · Opens the source repo
What DOCA DPA High-Level Tracer does
The DOCA DPA High-Level Tracer skill is designed to assist developers and platform operators in capturing and decoding execution traces from the DPA (Data Processing Acceleration) side. This tool focuses on higher-level programming events such as kernel entry and exit, synchronization points, communication primitive calls, and RDMA write submissions. By using this skill, users can gain insights into the performance and correctness of their DPA workloads without delving into raw cycle counts, making it easier to diagnose issues related to DPA kernels.
To get started, users should refer to the TASKS.md file, which outlines the configuration of the tracer and explains how to run the capture, decode, and render pipeline. The skill also provides guidance on tuning the JSON configuration to manage file size limits and thread priorities, ensuring that users can effectively balance trace fidelity against performance overhead. The CAPABILITIES.md document details the specific DPA programming events that the tracer can expose, helping users understand the trade-offs involved in their tracing strategy.
This skill is particularly beneficial for external developers who have already set up DPA workloads using the doca-dpa library and are seeking to troubleshoot or optimize their applications. It serves as a crucial tool for identifying performance bottlenecks, understanding event ordering, and diagnosing issues that may not be apparent from host-side observations alone. By providing a structured approach to capturing and analyzing DPA-side traces, this skill enhances the overall debugging process and aids in achieving better application performance.
When to use it
Use this skill when you need to analyze DPA-side performance or correctness issues after launching a DPA kernel from the host side.
When not to use it
This skill is not suitable for debugging the DPA tracer binary itself or for users learning how to write DPA kernels.
What you can build with it
Diagnosing Incorrect DPA Kernel Results
When a DPA kernel completes but produces incorrect results, use this skill to trace DPA-side events and identify discrepancies.
Analyzing DPA Kernel Latency
If the time between kernel launch and the first communication call is unexpectedly long, this skill can help visualize the latency and pinpoint delays.
Managing Trace Overhead
When high trace overhead affects DPA performance, use the skill to configure the tracer for critical events only, minimizing data volume while debugging.
How to install DOCA DPA High-Level Tracer
View source1. Install with the skills CLI
npx skills add nvidia/skills/doca-dpa-hl-tracer --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by nvidiaDOCA DPA High-Level Tracer
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
and doca-debug. 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.
Example questions this skill answers well
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.
- "My DPA kernel is doing the wrong thing — where do I
look?" — worked example: "my host-side
doca_dpa_kernel_launch_update_*completes, but the kernel's reported result is wrong; no host-sideDOCA_ERROR_*". Answered by the when DPA-side high-level tracing is the right surface gate inCAPABILITIES.md ## Capabilities and modes- the
capture → decode → render flow in
TASKS.md ## run+ the which DPA programming events to focus on rule inTASKS.md ## debug.
- the
capture → decode → render flow in
- "My DPA kernel is slow at a granularity that doesn't
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 ## testwhich treats trace overhead, mode (TRACEvsCRIT), and capture window as axes to tune.
- the iterative loop in
- "How do I capture a trace without burying the DPA in
observation overhead?" — worked example: "
TRACEmode 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 inCAPABILITIES.md ## Capabilities and modes- the
CRIT-first guidance inTASKS.md ## configure(start with critical-events-only; widen toTRACEonly when the bug demands per-event detail).
- the
- "My trace file got truncated mid-run — how should I
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_policytriple inCAPABILITIES.md ## Capabilities and modes- the JSON config layout in
TASKS.md ## configure.
- the JSON config layout in
- "Is the tracer on my install, and is it paired with the
matching
doca-dpalibrary 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 inCAPABILITIES.md ## Version compatibility, which redirects to the canonicaldoca-versionchain and adds the tracer ↔doca-dpalibrary ↔ DPACC compiler match rule. - "The capture file looks empty / decode failed — is the
install broken, no events fired, or am I tracing the
wrong thing?" — worked example: "
doca_dpa_hl_tracerran, wrote a file, but the parser shows zero events". Answered by the layered error taxonomy inCAPABILITIES.md ## Error taxonomy(install / device-binding / DPA-image-instrumented / capture-window / decode-vs-elf / overhead-saturated / version / cross-cutting) + the layered walk inTASKS.md ## debug.
Audience
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:
- A DPA developer who can launch their kernel cleanly from 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.
- A platform operator running a DPA-using workload (RDMA
offload from accelerator, custom CC algorithm via
doca-pcc) and needs to localize a regression to the DPA side without instrumenting the application. - An AI agent producing a DPA-side trace report as
evidence for the host-side
doca-dpa TASKS.md ## debugladder 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.
Language scope
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.
When to load this skill
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:
- Capturing a DPA-side trace to localize a DPA kernel's
wrong-result or wrong-ordering behaviour when the
host-side
doca-dpalifecycle reports clean completions. - Capturing a DPA-side trace to localize a DPA-side 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.
- Choosing between
TRACEandCRITcapture modes based on the bug-vs-overhead tradeoff and the available capture window. - Tuning the JSON config (thread priorities, core affinities, file size limits, file-size-limit policy) so the capture itself does not perturb the workload more than the bug it is investigating.
- Decoding a captured
bin_fileagainst the matching DPA-side ELF to render the human-readable event stream. - Capturing a side-effect-bounded trace as prerequisite
evidence for a host-side
doca-dpa TASKS.md ## debugladder 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.
What this skill provides
This is a thin loader. Substantive material lives in two companion files:
CAPABILITIES.md— whatdoca_dpa_hl_tracercaptures: the DPA programming event taxonomy (kernel entry / exit, sync points, comm primitive calls, RDMA WR submission and completion drain), the two documented capture modes (TRACEfor full per-event,CRITfor 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-dpalibrary ↔ 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-scope task 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 adoca-dpadebug session), plus aDeferred task verbsblock.
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.
What this skill deliberately does not ship
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:
- Specific flag strings, event names, or mode tokens
beyond what the public DOCA DPA Tools page and
--helpdocument. The DPA programming events surface evolves release to release;--helpon the installed binary is the authoritative inventory. - Pre-baked example traces or expected event timings. Trace output is workload-, DPA-image-, BlueField-, and firmware-specific; a captured example pinned to one setup misleads operators elsewhere.
- Wrappers, parsers, or rendering scripts in any 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.
- A specific tuning recommendation derived from a single 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.
- A
samples/orreference/subtree. This is a thin loader for a shipped CLI; substantive material lives on the public page, in--help, and indoca-dpa.
Loading order
- Read this
SKILL.mdfirst to confirm the user's question is in scope (DPA-side high-level tracing, not DPA-side programming and not raw cycle profiling). - For the event taxonomy, capture modes, overhead tradeoff, JSON config layout, version overlay, error taxonomy, observability, and safety policy, see CAPABILITIES.md.
- For the documented invocations and the
capture → decode → render workflow —
install,configure,build,modify,run,test,debug,use— see TASKS.md.
Related skills
doca-dpa— the host-side DPA control library whose loaded application image the tracer captures. Pair them in every DPA debug session:doca-dpabrings 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— the cross-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 ondocs.nvidia.comand the rest of the public DOCA documentation set.doca-version— canonical DOCA version-handling rules. The## Version compatibilitysection inCAPABILITIES.mdis a concise overlay that redirects here for the body and adds the tracer ↔doca-dpalibrary ↔ DPACC compiler matching rule.doca-setup— env preparation, 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 inTASKS.mdhonors this contract.doca-programming-guide— general DOCA programming patterns shared by every library / tool surface, including the cross-libraryDOCA_ERROR_*taxonomy this tool's host-side error layer overlays on top of when host-sidedoca-dpacalls 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.
Frequently asked questions about DOCA DPA High-Level Tracer
Similar skills
Agent Host Debug Logs
Analyze Agent Host debug logs for deeper insights.
Code OSS Dev - Launch + Debug
Launch and debug Code OSS with isolated profiles.
Phoenix CLI
Debug LLM applications with structured analysis tools.
Power Automate Debugging
Diagnose and fix Power Automate flow errors effectively.
Arize Trace
Inspect and export traces for LLM applications.
Runtime Behavior Probe
Investigate real runtime behavior with precision.
