Skip to content

fix(examples): update Triton example for CUDA 13 + fix libdcgm copy (DYN-3697) - #12577

Merged
dagil-nvidia merged 2 commits into
mainfrom
nealv/dyn-3697
Aug 3, 2026
Merged

fix(examples): update Triton example for CUDA 13 + fix libdcgm copy (DYN-3697)#12577
dagil-nvidia merged 2 commits into
mainfrom
nealv/dyn-3697

Conversation

@nealvaidya

@nealvaidya nealvaidya commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Bumps default TRITON_SERVER_IMAGE from tritonserver:25.01-py3 (CUDA 12.8) to tritonserver:25.10-py3 (CUDA 13.0.2) to match the CUDA 13-only Dynamo base image. The old image's triton_bindings linked against libdcgm.so.3 / libcudart.so.12, both absent in the CUDA 13 environment.
  • Fixes the DCGM library copy: Triton 25.10 ships libdcgm.so.4 under /usr/lib/x86_64-linux-gnu (merged-usr convention) rather than /lib/x86_64-linux-gnu. Updates the bind-mount source path accordingly.
  • Adds USER root before the find … cp step so the dynamo-base non-root user does not cause a permission-denied failure when writing to /lib/x86_64-linux-gnu/.
  • Adds a build-time python3 -c "import tritonserver" smoke check so future ABI or library mismatches fail the image build rather than producing a silently broken image.

Validation

Built dynamo-triton:latest from scratch on a host with 5× H100 80GB:

docker build --build-arg DYNAMO_BASE_IMAGE=dynamo-base:latest \
  -t dynamo-triton:latest examples/backends/tritonserver/

All 11 build steps passed, including the import tritonserver smoke check.

Ran the identity server and client end-to-end:

docker run --rm -d --gpus all --network host \
  -e DYN_HTTP_PORT=8777 --name dynamo-triton-test \
  dynamo-triton:latest /workspace/launch/identity.sh

docker exec dynamo-triton-test \
  python3 /workspace/src/client.py --port 8777 --iterations 3
✓ Identity verification passed   # iteration 1
✓ Identity verification passed   # iteration 2
✓ Identity verification passed   # iteration 3

Note: DYN_HTTP_PORT override needed when port 8000 is already in use on the host.

🤖 Generated with Claude Code


Open in Devin Review

Summary by CodeRabbit

  • Documentation

    • Updated Triton server container build and deployment instructions for CUDA 13.0.
    • Clarified the default server image and corrected the container launch command.
  • Bug Fixes

    • Improved Triton container setup by reliably including required GPU libraries.
    • Added build-time validation to confirm the Triton server package is available.

nealvaidya and others added 2 commits July 31, 2026 14:44
…-3697)

Bump default TRITON_SERVER_IMAGE from tritonserver:25.01-py3 (CUDA 12.8)
to tritonserver:25.10-py3 (CUDA 13.0.2) to match the CUDA 13-only Dynamo
base image produced by container/render.py. The old image's triton_bindings
linked against libcudart.so.12, which is absent in the CUDA 13 environment,
causing the worker to fail on import before model registration.

Also make the DCGM library copy tolerant of releases where /usr/local/dcgm
is absent, and add a build-time `import tritonserver` check so future ABI
mismatches fail the image build rather than producing a silently broken image.

Signed-off-by: Neal Vaidya <nealv@nvidia.com>
)

Triton 25.10 ships libdcgm.so.4 under /usr/lib/x86_64-linux-gnu (the
merged-usr convention) rather than /lib/x86_64-linux-gnu. Update the
bind-mount source accordingly and add USER root before the copy so the
dynamo-base non-root user does not cause a permission-denied failure.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Neal Vaidya <nealv@nvidia.com>
@nealvaidya
nealvaidya requested review from a team as code owners August 3, 2026 16:54
@github-actions github-actions Bot added fix documentation Improvements or additions to documentation labels Aug 3, 2026

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

Open in Devin Review

Comment thread examples/backends/tritonserver/Dockerfile
Comment thread examples/backends/tritonserver/README.md
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Changes

Triton container workflow

Layer / File(s) Summary
Triton image build and validation
examples/backends/tritonserver/Dockerfile
The Dockerfile uses Triton 25.10, copies matching DCGM libraries, and validates the tritonserver import during the build.
Container deployment instructions
examples/backends/tritonserver/README.md
The README updates CUDA, image-build, default-image, and container-launch instructions.

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description explains the changes and validation, but it omits the required Related Issues section and reviewer starting point. Add the required Related Issues section and identify the files or sections where the reviewer should start.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the Triton example update for CUDA 13 and the DCGM library copy fix.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@examples/backends/tritonserver/Dockerfile`:
- Around line 31-32: Update the comment immediately above the `RUN python3 -c
"import tritonserver"` command to state that it validates the tritonserver
Python package import at build time; do not describe it as CUDA ABI
compatibility validation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 2e9c9786-c687-49f0-96aa-6d1487bbc1a4

📥 Commits

Reviewing files that changed from the base of the PR and between 58d289a and 9208022.

📒 Files selected for processing (2)
  • examples/backends/tritonserver/Dockerfile
  • examples/backends/tritonserver/README.md

Comment thread examples/backends/tritonserver/Dockerfile
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

@dagil-nvidia
dagil-nvidia merged commit ba294ab into main Aug 3, 2026
98 checks passed
@dagil-nvidia
dagil-nvidia deleted the nealv/dyn-3697 branch August 3, 2026 22:19
dagil-nvidia pushed a commit that referenced this pull request Aug 3, 2026
…YN-3697) (#12577)

Signed-off-by: Neal Vaidya <nealv@nvidia.com>
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
(cherry picked from commit ba294ab)
Signed-off-by: Dan Gil <dagil@nvidia.com>
pvijayakrish pushed a commit that referenced this pull request Aug 4, 2026
… (#12604)

Signed-off-by: Neal Vaidya <nealv@nvidia.com>
Signed-off-by: Dan Gil <dagil@nvidia.com>
Co-authored-by: Neal Vaidya <nealv@nvidia.com>
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
hhzhang16 added a commit that referenced this pull request Aug 4, 2026
dyn-3691-extract-shared-target-pid-cuda-customstorage-operation-layer

* 'main' of https://github.com/ai-dynamo/dynamo: (50 commits)
  docs(cli): correct removed vLLM prefill-worker flag reference (#12581)
  docs(operator): reserve webhook Ignore for emergencies (#12563)
  ci(docs): make previews and checks match what actually publishes (#12339)
  refactor(vllm): organize custom encoder modules (#12416)
  feat(llm): Select reasoning output field via env var (#11464)
  feat(runtime): add TLS support to TCP request plane (#10921)
  fix: convert conditional disagg sglang warning to httperror 400 (#12578)
  feat(operator): add runtime feature gates (#12421)
  refactor(runtime): extract PushRouter transport seam behind StreamingDispatch trait (#12447)
  feat(replay): add deterministic canonical offline reports (#12363)
  build: bump ModelExpress to 0.5.0(OPS-7978) (#12455)
  fix(mocker): use logical KV tokens for decode timing (#12583)
  fix(examples): update Triton example for CUDA 13 + fix libdcgm copy (DYN-3697) (#12577)
  refactor(operator): implement composition-first DGD reconciliation (#12283)
  feat(frontend): add basetenkenizer backend (#12376)
  fix(profiler): configure rapid mocker without planner (#12573)
  docs(vllm): correct worker-role flags and document --kv-transfer-config (#12568)
  ci: add Kubernetes deploy test to nightly (#12090)
  fix(container): reuse pinned protoc in runtime image (#12535)
  feat(self-host): flip DYN_SELF_HOST_METADATA default to ON (gh-8749) (#11417)
  ...

Signed-off-by: Hannah Zhang <hannahz@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation fix size/S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants