Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions container/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -253,9 +253,9 @@ docker build -t dynamo:latest-sglang-xpu-runtime -f container/sglang-runtime-xpu
# Build Triton runtime image (prebuilt Dynamo wheels from PyPI on the upstream
# Triton release image). --network=host lets the build reach PyPI.
# The Triton release is selected with --build-arg RUNTIME_IMAGE_TAG=<tag>
# (defaults to 26.07-py3); pick any nvcr.io/nvidia/tritonserver:<tag>.
# (defaults to 26.08-py3); pick any nvcr.io/nvidia/tritonserver:<tag>.
container/render.py --framework=triton --target=runtime --output-short-filename
docker build --network=host --build-arg RUNTIME_IMAGE_TAG=26.07-py3 -t dynamo:latest-triton-runtime -f container/rendered.Dockerfile .
docker build --network=host --build-arg RUNTIME_IMAGE_TAG=26.08-py3 -t dynamo:latest-triton-runtime -f container/rendered.Dockerfile .
```

The `--device` flag selects the accelerator backend. It defaults to `cuda`; pass `--device=xpu`
Expand Down
8 changes: 7 additions & 1 deletion container/context.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -182,8 +182,14 @@ triton:
# Build toolchain only, pinned to CUDA 13.1: the Rust cudarc crate rejects 13.2 at build time.
# The wheels load CUDA dynamically, so they run on the 13.2 runtime image regardless.
base_image_tag: 26.02-cuda13.1-devel-ubuntu24.04
# This value will be updated monthly by the Triton Team after each release.
runtime_image_tag: 26.07-py3
cuda13.4:
base_image: nvcr.io/nvidia/cuda-dl-base
runtime_image: nvcr.io/nvidia/tritonserver
# Build toolchain only, pinned to CUDA 13.1: the Rust cudarc crate rejects 13.4 at build time.
# The wheels load CUDA dynamically, so they run on the 13.4 runtime image regardless.
base_image_tag: 26.02-cuda13.1-devel-ubuntu24.04
runtime_image_tag: 26.08-py3
enable_media_ffmpeg: "false"
enable_gpu_memory_service: "true"
# KVBM is disabled: it is an LLM KV-cache feature whose Python NIXL path
Expand Down
19 changes: 3 additions & 16 deletions container/render.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,11 +100,11 @@ def parse_args():
"--cuda-version",
type=str,
default="13.0",
choices=["13.0", "13.1"],
choices=["13.0", "13.1", "13.2", "13.4"],
Comment thread
whoisj marked this conversation as resolved.
Resolved
Comment thread
whoisj marked this conversation as resolved.
Resolved
Comment thread
whoisj marked this conversation as resolved.
Resolved
Comment thread
whoisj marked this conversation as resolved.
Resolved
help=(
"CUDA version to use. [13.0 for vllm and sglang, 13.1 for trtllm].\n"
"Not required for non-cuda devices.\n"
"Not supported by Triton - CUDA version is predefined by its release image."
"Only Triton supports versions greater than 13.1."
),
)
parser.add_argument("--make-efa", action="store_true", help="Enable AWS EFA")
Expand Down Expand Up @@ -165,7 +165,7 @@ def validate_args(args):
"target": [
"runtime",
],
"cuda_version": ["13.2"],
"cuda_version": ["13.2", "13.4"],
Comment thread
mc-nv marked this conversation as resolved.
Resolved
Comment thread
whoisj marked this conversation as resolved.
Resolved
Comment thread
whoisj marked this conversation as resolved.
Resolved
},
"dynamo": {
"device": ["cuda"],
Expand All @@ -182,19 +182,6 @@ def validate_args(args):
},
}

# Triton's CUDA family is fixed by its release image, so it cannot be chosen
# by the user: reject an explicitly-passed --cuda-version (detected from argv
# since the arg has a default) and pin it to Triton's single valid value.
if args.framework == "triton":
if any(
a == "--cuda-version" or a.startswith("--cuda-version=") for a in sys.argv
):
raise ValueError(
"--cuda-version cannot be specified for triton: its CUDA family is "
"fixed by the Triton release image."
)
args.cuda_version = valid_inputs["triton"]["cuda_version"][0]

if args.framework in valid_inputs:
cuda_version_valid = (
args.device != "cuda"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,10 @@ The Triton and KServe features below are not yet supported end-to-end through th

| Triton release tag | CUDA | NVIDIA driver |
| :-------------------------------------- | :----: | :-----------: |
| `nvcr.io/nvidia/tritonserver:26.07-py3` | `13.2` | `610.43.02` | <!-- Update version with each Triton release. -->
| `nvcr.io/nvidia/tritonserver:26.07-py3` | `13.2` | `610.43` |
| `nvcr.io/nvidia/tritonserver:26.08-py3` | `13.4` | `615.61` |

The Triton release is pinned in [`container/context.yaml`](https://github.com/ai-dynamo/dynamo/tree/main/container/context.yaml) under `triton.cuda13.2` (`runtime_image_tag`/`base_image_tag`), the same way the other framework runtimes pin their image.
The Triton release is pinned in [`container/context.yaml`](https://github.com/ai-dynamo/dynamo/tree/main/container/context.yaml) under `triton.cuda13.2` and `triton.cuda13.4` (`runtime_image_tag`/`base_image_tag`), the same way the other framework runtimes pin their image.

## Prerequisites

Expand Down Expand Up @@ -170,21 +171,21 @@ Common flags:

## Configuring the Triton version

The Triton release is pinned by `triton.cuda13.2.runtime_image_tag` in [`container/context.yaml`](https://github.com/ai-dynamo/dynamo/tree/main/container/context.yaml) (default `26.07-py3`), mirroring how the other framework runtimes pin their image.
The Triton release is pinned by `triton.cuda13.4.runtime_image_tag` in [`container/context.yaml`](https://github.com/ai-dynamo/dynamo/tree/main/container/context.yaml) (default `26.08-py3`), mirroring how the other framework runtimes pin their image.
Comment thread
whoisj marked this conversation as resolved.
Resolved
The CUDA family is fixed by the Triton release, so `--cuda-version` is auto-derived; passing it explicitly is rejected.
Comment thread
whoisj marked this conversation as resolved.
Resolved

To build into a different Triton release, override `RUNTIME_IMAGE_TAG` at build time (no `context.yaml` edit needed). Keep `BASE_IMAGE_TAG` on CUDA 13.1 (default `26.02-cuda13.1-devel-ubuntu24.04`):
the Rust `cudarc` crate rejects CUDA 13.2 at build time, and the wheels load CUDA dynamically so they run on the 13.2 runtime image regardless:
the Rust `cudarc` crate rejects other CUDA versions at build time, and the wheels load CUDA dynamically so they run on the 13.4 runtime image regardless:

```bash
python container/render.py --framework=triton --target=runtime --output-short-filename
docker buildx build --network=host \
--build-arg RUNTIME_IMAGE_TAG=26.07-py3 \
--build-arg RUNTIME_IMAGE_TAG=26.08-py3 \
--build-arg BASE_IMAGE_TAG=26.02-cuda13.1-devel-ubuntu24.04 \
-f container/rendered.Dockerfile -t dynamo:triton-26.07 .
-f container/rendered.Dockerfile -t dynamo:triton-26.08 .
```

To make a release the default, edit `triton.cuda13.2` in `container/context.yaml`.
To make a release the default, edit `triton.cuda13.4` in `container/context.yaml`.

## Metrics

Expand Down
Loading