fix(examples): update Triton example for CUDA 13 + fix libdcgm copy (DYN-3697) - #12577
Merged
Conversation
…-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>
Contributor
WalkthroughChangesTriton container workflow
Estimated code review effort: 2 (Simple) | ~10 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Comment |
Contributor
There was a problem hiding this comment.
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
📒 Files selected for processing (2)
examples/backends/tritonserver/Dockerfileexamples/backends/tritonserver/README.md
Contributor
1 task
dagil-nvidia
approved these changes
Aug 3, 2026
dagil-nvidia
pushed a commit
that referenced
this pull request
Aug 3, 2026
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
TRITON_SERVER_IMAGEfromtritonserver:25.01-py3(CUDA 12.8) totritonserver:25.10-py3(CUDA 13.0.2) to match the CUDA 13-only Dynamo base image. The old image'striton_bindingslinked againstlibdcgm.so.3/libcudart.so.12, both absent in the CUDA 13 environment.libdcgm.so.4under/usr/lib/x86_64-linux-gnu(merged-usr convention) rather than/lib/x86_64-linux-gnu. Updates the bind-mount source path accordingly.USER rootbefore thefind … cpstep so thedynamo-basenon-root user does not cause a permission-denied failure when writing to/lib/x86_64-linux-gnu/.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:latestfrom scratch on a host with 5× H100 80GB:All 11 build steps passed, including the
import tritonserversmoke check.Ran the identity server and client end-to-end:
Note:
DYN_HTTP_PORToverride needed when port 8000 is already in use on the host.🤖 Generated with Claude Code
Summary by CodeRabbit
Documentation
Bug Fixes