Generated banner for Doca Bench
Generated logo for Doca Bench

Doca Bench

NVIDIAOfficialCreated by NVIDIA

  • Skill
  • Tool integration
  • Software development
  • Apache-2.0
  • Medium risk

From the author

Run `doca_bench` (DOCA 2.7.0 or newer) to measure throughput, bulk latency, precision latency, or maximum bandwidth for RDMA, Compress, AES-GCM, SHA, DMA, EC, Ethernet, Comch, or GPUNetIO on a host or BlueField Arm. Use it to discover enabled benchmark libraries, capture a reproducible command/version/device/environment baseline, compare stable runs against a declared tolerance, or diagnose configuration, device-binding, workload-precondition, and measurement failures. Trigger for requests such as measuring BlueField compression speed, NIC RDMA throughput, crypto latency, or a pre-upgrade baseline. Do not use for application end-to-end timing, custom benchmark code, DOCA installation, or binary patches.
— the description by NVIDIA

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The doca-bench skill provides a structured approach for using the doca_bench binary to perform micro-benchmarking of various DOCA libraries. It focuses on capturing reproducible performance data, such as throughput and latency, for components like RDMA, Compress, and AES-GCM. The skill emphasizes a rigorous workflow involving configuration, smoke testing, and steady-state measurement to ensure results are reliable and comparable across different environments or versions.

What it does

  • Provides a framework for invoking the doca_bench CLI to measure library performance.
  • Supports benchmarking for RDMA, Compress, AES-GCM, SHA, DMA, EC, Ethernet, Comch, and GPUNetIO.
  • Guides users through a three-axis configuration model: library, workload shape, and measurement axis.
  • Implements a smoke-before-bulk workflow to validate configurations before running full benchmarks.
  • Offers an error taxonomy to diagnose configuration, device-binding, and workload-precondition failures.
  • Facilitates the capture of reproducible baselines including command, version, device, and environment metadata.

When to use it

  • When you need to measure the performance of a specific DOCA library on a supported device.
  • When you need to establish a reproducible performance baseline for regression testing.
  • When you need to diagnose why a benchmark run is failing or producing unexpected results.
  • When you need to determine which DOCA libraries are available and measurable on a specific installation.

Advantages

  • Ensures consistent and reproducible performance measurement practices.
  • Reduces hallucination by relying on documented CLI flags and installed version capabilities.
  • Provides a structured debug path for common benchmarking failures.
  • Promotes sound measurement practices like accounting for warm-up and steady-state periods.

Usage examples

“Measure the throughput of DOCA Compress on my BlueField-3.”
The agent will guide you through the three-axis configuration to set up the compression workload and execute the smoke-before-bulk flow to report the throughput.
“Is doca_sha enumerable on my current install?”
The agent will use the built-in query system to probe the installation and confirm if the SHA library is available for benchmarking.
“Why does my first-second throughput differ from my steady-state number?”
The agent will explain how to interpret measurement-soundness, specifically addressing warm-up periods versus steady-state performance.
“How do I capture a baseline for a firmware update?”
The agent will help you document the exact command, DOCA version, device, and environment to create a valid baseline for future regression testing.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/nvidia/doca-bench/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip doca-bench.zip -d .agents/skills

Documentation by NVIDIA

DOCA Bench (doca_bench)

Examples

  • "What does this DOCA library actually deliver on this device?" — this is in scope. Stay on doca_bench; do not write a custom microbenchmark.

  • "Which DOCA libraries can doca_bench drive on this install?" — probe the built-in query first; empty enumeration is a missing library, not a bench failure.

Instructions

Follow Loading order below. Open the tasks companion for configure / run / debug. Open the capabilities companion for modes and measurement soundness. Do not open every companion file.

Where to start: This is a tool skill for invoking doca_bench, the cross-library micro-benchmark harness. Open the tasks companion and start at ## configure for the three-axis decision (target library × workload shape × measurement axis), then ## run for the smoke-before-bulk flow. Open the capabilities companion when the question is what doca_bench can measure, which DOCA libraries it can drive, or how to interpret throughput / latency / op-rate output without fooling yourself on warm-up or steady-state. If DOCA is not installed yet, route to doca-setup/SKILL.md first; if the install version is < 2.7.0, doca_bench is not shipped on this host.

Example questions this skill answers well

The CLASSES of doca_bench 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.

  • "What does this DOCA library actually deliver on this device?" — worked example: "throughput of DOCA Compress on my BlueField-3". Answered by the three-axis configuration in the capabilities companion

    • the smoke-before-bulk flow in the tasks companion. The same shape answers "send-side throughput of DOCA RDMA" — doca_bench is cross-library, not single-library.

  • "Which DOCA libraries can doca_bench actually drive on this install?" — worked example: "is doca_sha enumerable on a granular-build install". Answered by the built-in query system surfaced in the capabilities companion

    • the tasks companion step 2 (probe-before-bench). Empty enumeration = library not installed, not bench failure.

  • "Is this number reliable, or did I miss the warm-up?" — worked example: "why does my first-second number differ from my steady-state number". Answered by the measurement-soundness overlay in the capabilities companion layer 5 + the tasks companion (the eval-loop overlay treats warm-up / steady-state / outliers as re-iteration triggers, not one-shot facts).

  • "Bench reports zero throughput / hangs at start / disagrees with the public docs." — worked example: "doca_bench shows zero ops for AES-GCM but doca_caps says the device supports it". Answered by the layered error taxonomy in the capabilities companion (config-syntax → device-binding → library-precondition → workload-precondition → measurement-soundness → version → cross-cutting) + the tasks companion.

  • "How do I capture a baseline I can later regression-test against?" — worked example: "snapshot decompress throughput on this BlueField + DOCA version before a firmware update". Answered by the CSV output + version-overlay rule in the tasks companion (capture command line + version + device + as-deployed environment alongside the numbers; quoting numbers without the four-tuple is the cross-version regression-hunt failure mode).

  • "doca_bench returns nothing for library X — what does that mean?" — worked example: "empty output for DOCA SHA". Answered by the empty-output interpretation rules in the tasks companion + the capabilities companion. Re-route through doca-caps/SKILL.md for the coarse per-device per-library capability ground truth, then back into bench once the capability is confirmed present.

Audience

This skill serves external operators, developers, and AI agents who need a reproducible, vendor-supported way to measure DOCA library performance on the user's actual install and device. Concretely:

  • An external developer choosing between DOCA libraries (e.g. COMPRESS vs SHA vs DMA throughput) before committing an application design.

  • A platform operator validating a tuning change (NUMA pinning, driver upgrade, firmware burn) by re-running a captured doca_bench baseline against the new state.

  • An SRE / performance engineer producing a "this is what the device delivers today" artifact that downstream consumers (capacity planning, regression bisection) can cite.

  • An AI agent answering "what throughput / latency should I expect from DOCA library X on device Y?" honestly — with a measured number, the command line that produced it, and the version + device + environment that scopes it — instead of guessing from datasheet headlines.

It is not for users debugging the doca_bench source code, and not a substitute for the live public DOCA Bench guide on docs.nvidia.com.

doca_bench is shipped as a tool (a single CLI binary plus a companion app for the remote half of remote-memory / RDMA / Eth scenarios), 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 (configure / build / modify / run / test / debug) is uniform across libraries, services, and tools — even when individual verbs collapse to a routing stub for a shipped binary.

When to load this skill

Load this skill when the user is — or the agent needs to — invoke doca_bench on a real host with DOCA ≥ 2.7.0 installed (or inside the public NGC DOCA container with the equivalent version) to measure performance of a DOCA library. Concretely:

  • Picking which DOCA library to benchmark for a candidate workload (RDMA vs COMPRESS vs DMA, etc.).

  • Picking which measurement axis to ask for (throughput vs bulk latency vs precision latency) — the three modes the public guide documents; confirm the list with --help. The modes are not interchangeable.

  • Probing the install's granular-build state so the agent can honestly report "this library is not exposed on this install" instead of inventing a workload.

  • Capturing a documented baseline (command line + version + device

    • as-deployed environment + numbers) for later regression hunts.

  • Requiring the workload owner to predeclare acceptable variance and obtaining two consecutive runs within that tolerance before reporting a stable result; otherwise escalating the variance.

  • Diagnosing why a bench run reported zero / unstable / unexpected results (the error-taxonomy walk in the tasks companion).

Do not load this skill for general DOCA orientation, library API work, or installation. For those, use doca-public-knowledge-map/SKILL.md, the matching libs/<library> skill, or doca-setup/SKILL.md. Do not load it for application-level end-to-end benchmarking either — doca_bench measures the DOCA library surface, not the user's application above it.

What this skill provides

This is a thin loader. Substantive material lives in two companion files:

  • the capabilities companion — what doca_bench can measure (the cross-library scope, the three-axis configuration model, the documented operating modes, the warm-up / pipeline / multi-core concepts that constrain measurement soundness), the version overlay (doca-bench-specific facts on top of the canonical doca-version rules), the layered error taxonomy (config-syntax / device-binding / library-precondition / workload-precondition / measurement-soundness / version / cross-cutting), the observability surface (screen + CSV output, real-time stats, query system), and the safety posture (the public guide's "not for production" warning, the host vs BlueField execution rule, the companion-app attack surface).

  • the tasks companion — step-by-step workflows for the in-scope task verbs: configure (the three-axis decision + the probe-before-bench step), build (route to install — the binary is shipped, the companion app is shipped), modify (refuse — do not patch the bench binary; modify the bench invocation instead), run (the smoke-before-bulk flow), test (the eval loop — warm-up, steady-state, outliers, cross-version), debug (walk the error taxonomy layer by layer), plus a Deferred task verbs block routing out-of-scope questions and a Command appendix of doca_bench-specific invocation classes.

The skill assumes a host where DOCA ≥ 2.7.0 is already installed (or the public NGC DOCA container is running at an equivalent version) and the operator has whatever permissions the public guide requires for doca_bench to bind devices and allocate resources on their platform.

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 or scenario / metric / attribute names beyond what the public DOCA Bench guide documents. The flag surface evolves and is install-specific; the documented invocations + --help on the installed version are the authoritative answer. Inventing a flag is the most common hallucination failure for this skill.

  • Pre-baked example output or expected throughput numbers. Bench output is device-, version-, firmware-, NUMA-, and tuning-specific. A captured number pinned to one platform and one DOCA version misleads operators on a different platform / version.

  • Wrappers, parsers, or scripts in any language that consume doca_bench CSV or stdout. The output formats are documented; if a user wants to script against them, the right answer is "read the live guide, write the parser against your installed version".

  • A samples/ or reference/ subtree. This is a thin loader for a documented CLI; substantive material lives on the public page and in --help.

Loading order

  1. Read this skill first to confirm the user's question is in scope (the user actually wants to invoke doca_bench for measurement, not learn about a DOCA library in general).

  2. For what doca_bench measures, the three-axis model, the version overlay, the error taxonomy, observability surface, and safety posture, see the capabilities companion.

  3. For the documented invocations and the smoke-before-bulk workflow — configure, build, modify, run, test, debug — see the tasks companion.

  • doca-public-knowledge-map/SKILL.md — routing to the public DOCA Bench page on docs.nvidia.com and the rest of the public DOCA documentation set.

  • doca-version/SKILL.md — the canonical version-detection chain, four-way match rule, NGC container semantics, and headers-win-over-docs rule. The ## Version compatibility section in this skill is a thin overlay on top of doca-version; the body lives there.

  • doca-structured-tools-contract/SKILL.md — the bundle-wide contract for structured-output helper tools. When a site provides a helper that satisfies the detect-prefer-fallback-report loop, the ## Command appendix in the tasks companion uses it; otherwise it falls back to the manual commands.

  • doca-setup/SKILL.md — env preparation, install verification, hugepages, NUMA awareness, and the I have no install yet path with the public NGC DOCA container.

  • doca-debug/SKILL.md — the cross-cutting debug ladder. Bench surfaces its own error taxonomy in the capabilities companion; when the cause turns out to be below DOCA (driver, firmware, NUMA), the bench taxonomy hands off to doca-debug.

  • doca-caps/SKILL.md — the sibling DOCA tool for the coarse per-device per-library capability snapshot. Bench probes capability at finer grain via its own query system; doca_caps is the cheaper first step to confirm the device is even visible to DOCA.

  • The matching libs/<library> skill — e.g. doca-comch/SKILL.md, doca-compress/SKILL.md — for the workload-side preconditions, capability-query rules, and error-taxonomy overlays of the library under test. Bench drives the library; the library skill explains what "healthy" means for it.

Files

BENCHMARK.md

Skill Benchmark: doca-bench

✅ Overall verdict: PASS — Recommended for publication

Publication Recommendation

Recommended for publication based on the completed evaluation evidence in this report.

Evaluation Metadata

  • Skill: doca-bench

  • Validation status: passed

  • Evaluation date: 2026-10-28

  • Evaluator version: 1.6.2

  • Agents: Claude Code (aws/anthropic/bedrock-claude-opus-5-5), Codex (openai/openai/gpt-6.1-sol)

  • Tasks: 4 evaluation tasks (3 positive, 1 negative)

  • Dataset digest: sha256:c8caeb0eb027b18e240f06abd2295f53cb9f30120d1302bb2211d124dfc623fc (skill-evaluator-dataset-snapshot/1)

  • Attempts per task: 1

  • Environment: k8s-sandbox

  • Tier 2 evidence: required for publication

  • Tier 3 evidence: required for publication

Each task attempt ran in its own isolated sandbox pod.

Tier 1 LLM Provenance

SkillSpector provider, model, analyzer revision, and determinism evidence retained for this scan.

SkillProviderAdapterAnalyzerModelRevisionDeterminism
doca-benchnv_inferenceopenaimcp_tool_poisoningaws/anthropic/bedrock-claude-opus-5-52.13.1nondeterministic / provider_defaults
doca-benchnv_inferenceopenaisemantic_developer_intentaws/anthropic/bedrock-claude-opus-5-52.13.1nondeterministic / provider_defaults
doca-benchnv_inferenceopenaisemantic_quality_policyaws/anthropic/bedrock-claude-opus-5-52.13.1nondeterministic / provider_defaults
doca-benchnv_inferenceopenaisemantic_security_discoveryaws/anthropic/bedrock-claude-opus-5-52.13.1nondeterministic / provider_defaults
doca-benchnv_inferenceopenaimeta_analyzeraws/anthropic/bedrock-claude-opus-5-52.13.1nondeterministic / provider_defaults
  • Controls for doca-bench: temperature=not set (source=provider_default, forwarded=no); seed=not set (source=unset, forwarded=no); reasoning_effort=not set (source=provider_default, forwarded=no)

What This Report Answers

The three-tier evaluation checks whether the skill:

  • is safe to use;

  • produces correct answers;

  • is discovered and activated when needed;

  • helps the agent complete the user's goal and expected workflow; and

  • avoids wasted skill and tool usage.

Results at a Glance

MeasureClaude Code (Baseline → Skill Uplift)Codex (Baseline → Skill Uplift)
Overall95.5% — baseline ran, but no comparable score was available; uplift unavailable93.2% — baseline ran, but no comparable score was available; uplift unavailable
Security100.0% → 100.0% (±0.0 points)100.0% → 100.0% (±0.0 points)
Correctness65.0% → 100.0% (+35.0 points)85.0% → 100.0% (+15.0 points)
Discoverability100.0% — baseline ran, but no comparable score was available; uplift unavailable95.0% — baseline ran, but no comparable score was available; uplift unavailable
Effectiveness50.0% → 100.0% (+50.0 points)81.3% → 100.0% (+18.7 points)
Efficiency77.2% — baseline ran, but no comparable score was available; uplift unavailable70.9% — baseline ran, but no comparable score was available; uplift unavailable

How to read this table: baseline is the same task attempted without the target skill. Scores are rounded to one decimal; threshold-adjacent values use additional precision so their displayed band matches the verdict. Uplift is derived from those displayed scores and shown in percentage points.

Example: 47.0% → 92.0% (+45.0 points) means the skill-assisted run scored 92.0%, 45.0 percentage points above its 47.0% no-skill baseline.

A partial dimension was calculated from only the available configured signals; review the detailed report before relying on it.

Comparison details

Shared-source comparisons use the same signals and weights on both conditions. They do not replace the full dimension scores above or change the publication verdict.

AgentDimensionBasisBaseline → With skill (uplift)Explanation
claude-codeDiscoverabilityDimension comparisonN/ADiscoverability is not applicable to the no-skill baseline; there is no installed skill to discover.
claude-codeEfficiencyToken-only comparison98.3% → 92.3% (-6.0 points)Only Token Efficiency is comparable; the full dimension scores use different evaluator sources.
codexDiscoverabilityDimension comparisonN/ADiscoverability is not applicable to the no-skill baseline; there is no installed skill to discover.
codexEfficiencyToken-only comparison85.1% → 85.1% (±0.0 points)Only Token Efficiency is comparable; the full dimension scores use different evaluator sources.

Token Usage

Actual Tier 3 execution usage is reported for every observed agent/case pair and both conditions.

AgentDataset caseWith skillWithout skillDeltaChangeCoverage
claude-codeAll cases915,492393,902+521,590+132.42%skill 4/4; base 4/4
claude-codedoca-bench.explicit-positive.v1274,403107,229+167,174+155.90%skill 1/1; base 1/1
claude-codedoca-bench.implicit-positive.v1330,200107,563+222,637+206.98%skill 1/1; base 1/1
claude-codedoca-bench.implicit-positive.v2275,224107,855+167,369+155.18%skill 1/1; base 1/1
claude-codedoca-bench.negative.v135,66571,255-35,590-49.95%skill 1/1; base 1/1
codexAll cases383,212168,553+214,659+127.35%skill 4/4; base 4/4
codexdoca-bench.explicit-positive.v1127,10675,673+51,433+67.97%skill 1/1; base 1/1
codexdoca-bench.implicit-positive.v1130,39135,651+94,740+265.74%skill 1/1; base 1/1
codexdoca-bench.implicit-positive.v2103,07426,462+76,612+289.52%skill 1/1; base 1/1
codexdoca-bench.negative.v122,64130,767-8,126-26.41%skill 1/1; base 1/1
ALL AGENTSDataset aggregate1,298,704562,455+736,249+130.90%skill 8/8; base 8/8

Prompt tokens include cached reads, so total tokens are prompt + completion (cached is not added twice). The Efficiency score uses (prompt - cached) + completion. Change is 100 * (with - without) / without; negative means fewer tokens. N/A comparisons include their reason in the coverage column; coverage is never estimated.

Tier Status

TierPurposeStatusEvidence
Tier 1Static validationPASSED WITH OBSERVATIONS11 validator(s); 12 finding(s)
Tier 2Semantic deduplicationPASSED WITH OBSERVATIONS2 validator(s); 3 finding(s)
Tier 3Live agent evaluationPASS2 agent(s); 4 task(s)

Findings and Observations

<details> <summary>Show detailed findings and successful checks</summary>

  • CRITICAL CONTENT_DEDUP/llm_error: LLM analysis failed for a content cluster (skills/tools/doca-bench)

  • CRITICAL CONTENT_DEDUP/llm_error: LLM analysis failed for a content cluster (skills/tools/doca-bench)

  • HIGH DUPLICATE/duplicate: Duplicate content found within CAPABILITIES.md: "## Capabilities and modes" in CAPABILITIES.md (lines 69-76) vs "## Capabilities and modes" in CAPABILITIES.md (lines 114-120) (CAPABILITIES.md:69)

  • MEDIUM SCHEMA/metadata_key_style: Metadata key 'doca_version' is not kebab-case (skills/tools/doca-bench/SKILL.md)

  • MEDIUM SCHEMA/folder_hierarchy: Unexpected nesting depth for general skill (skills/tools/doca-bench)

  • 10 additional finding(s) are available in the full evaluation artifacts.

</details>

Scoring Methodology

<details> <summary>Show dimension definitions, source signals, and thresholds</summary>

DimensionQuestionScored signals
SecurityIs it safe to use?security (100%)
CorrectnessIs the answer correct?accuracy (100%)
DiscoverabilityWas the right skill loaded when needed?skill_execution (100%)
EffectivenessDid the skill help complete the task?goal_accuracy (50%) + behavior_check (50%)
EfficiencyDid it avoid wasted tool calls and token usage?skill_efficiency (50%) + token_efficiency (50%)
  • Dimension bands: PASS at 50% or above; NEUTRAL from 40% to below 50%; FAIL below 40%.

  • Overall Tier 3 lift: PASS at +5 points or more; FAIL at -10 points or less; values between those bands are NEUTRAL.

  • Overall verdict: PASS only when every configured dimension passes for at least one supported agent. Lift is reported as diagnostic evidence and does not override this gate.

  • The 50% attempt pass threshold is a separate per-task gate; it is not the dimension pass threshold.

  • Effectiveness is the equal-weight mean of goal completion (goal_accuracy) and expected workflow adherence (behavior_check).

  • Efficiency is 50% tool-call productivity (the backward-compatible skill_efficiency wire id) and 50% token_efficiency. Positive-case skill routing is scored under Discoverability, not Efficiency; a negative case without a routing target is N/A. N/A sources are omitted, remaining weights are renormalized, and the dimension is marked partial.

Signals present in this run:

  • security (Security): unsafe operations, secret leakage, and unauthorized access.

  • skill_execution (Skill Execution): whether the expected skill was selected, decoys were avoided, and the workflow executed.

  • skill_efficiency (Tool Productivity): tool-call productivity (legacy wire id; routing is scored under Discoverability).

  • accuracy (Accuracy): final-answer correctness against the reference answer.

  • goal_accuracy (Goal Accuracy): whether the user's goal was achieved.

  • behavior_check (Behavior Check): whether the expected workflow behavior was followed.

  • token_efficiency (Token Efficiency): actual uncached prompt plus completion usage (50% of Efficiency).

</details>

Freshness

Regenerate this benchmark when the skill, evaluation dataset, target agent/model, evaluator version, environment, or scoring policy changes.

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

The author says: Requires DOCA SDK ≥ 2.7.0 installed at /opt/mellanox/doca on Linux (Ubuntu 22.04/24.04 or RHEL/SLES) with a BlueField DPU or ConnectX NIC attached and the `doca_bench` binary present at /opt/mellanox/doca/tools/doca_bench. Companion app must run on the far side for remote-memory / RDMA / Eth scenarios; host and BlueField-Arm execution both supported. The validation steps require a live DOCA install.

Security

What our scanner noticed· Medium risk

  • Large base64-encoded blobs

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
NVIDIA
Publisher
NVIDIA (Official)
Source
NVIDIA/skills · skills/doca-bench · commit fce3cca
Licence
Apache License 2.0 (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE-APACHE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by NVIDIA.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download doca-bench.zip