Skip to content

Commit d23414b

Browse files
mc-nvmattwittwerpskiran1
authored
post(TRI-1431): advance main with r26.06 upstream-tracking cherry-picks (#8861)
Co-authored-by: mattwittwer <mwittwer@nvidia.com> Co-authored-by: Sai Kiran Polisetty <spolisetty@nvidia.com>
1 parent 5e885a1 commit d23414b

35 files changed

Lines changed: 711 additions & 290 deletions

Dockerfile.sdk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
#
3030

3131
# Base image on the minimum Triton container
32-
ARG BASE_IMAGE=nvcr.io/nvidia/tritonserver:26.05-py3-min
32+
ARG BASE_IMAGE=nvcr.io/nvidia/tritonserver:26.06-py3-min
3333

3434
ARG TRITON_CLIENT_REPO_SUBDIR=clientrepo
3535
ARG TRITON_REPO_ORGANIZATION=http://github.com/triton-inference-server

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929

3030
>[!WARNING]
3131
>You are currently on the `main` branch which tracks under-development progress
32-
>towards the next release. The current release is version [2.69.0](https://github.com/triton-inference-server/server/releases/latest)
33-
>and corresponds to the 26.05 container release on NVIDIA GPU Cloud (NGC).
32+
>towards the next release. The current release is version [2.70.0](https://github.com/triton-inference-server/server/releases/latest)
33+
>and corresponds to the 26.06 container release on NVIDIA GPU Cloud (NGC).
3434
3535
# Triton Inference Server
3636

@@ -90,16 +90,16 @@ Inference Server with the
9090

9191
```bash
9292
# Step 1: Create the example model repository
93-
git clone -b r26.05 https://github.com/triton-inference-server/server.git
93+
git clone -b r26.06 https://github.com/triton-inference-server/server.git
9494
cd server/docs/examples
9595
./fetch_models.sh
9696

9797
# Step 2: Launch triton from the NGC Triton container
98-
docker run --gpus=1 --rm --net=host -v ${PWD}/model_repository:/models nvcr.io/nvidia/tritonserver:26.05-py3 tritonserver --model-repository=/models --model-control-mode explicit --load-model densenet_onnx
98+
docker run --gpus=1 --rm --net=host -v ${PWD}/model_repository:/models nvcr.io/nvidia/tritonserver:26.06-py3 tritonserver --model-repository=/models --model-control-mode explicit --load-model densenet_onnx
9999

100100
# Step 3: Sending an Inference Request
101101
# In a separate console, launch the image_client example from the NGC Triton SDK container
102-
docker run -it --rm --net=host nvcr.io/nvidia/tritonserver:26.05-py3-sdk /workspace/install/bin/image_client -m densenet_onnx -c 3 -s INCEPTION /workspace/images/mug.jpg
102+
docker run -it --rm --net=host nvcr.io/nvidia/tritonserver:26.06-py3-sdk /workspace/install/bin/image_client -m densenet_onnx -c 3 -s INCEPTION /workspace/images/mug.jpg
103103

104104
# Inference should return the following
105105
Image '/workspace/images/mug.jpg':

build.py

Lines changed: 74 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import os.path
3333
import pathlib
3434
import platform
35+
import re
3536
import stat
3637
import subprocess
3738
import sys
@@ -75,8 +76,8 @@
7576
"triton_container_version": "26.07dev",
7677
"upstream_container_version": "26.05",
7778
"ort_version": "1.24.4",
78-
"ort_openvino_version": "2026.1.0",
79-
"standalone_openvino_version": "2026.1.0",
79+
"ort_openvino_version": "2026.2.0",
80+
"standalone_openvino_version": "2026.2.0",
8081
"dcgm_version": "4.5.3-1",
8182
"rhel_py_version": "3.12.3",
8283
}
@@ -921,6 +922,7 @@ def create_dockerfile_buildbase_rhel(ddir, dockerfile_name, argmap):
921922
922923
RUN pip3 install --upgrade pip \\
923924
&& pip3 install --upgrade \\
925+
auditwheel \\
924926
build \\
925927
wheel \\
926928
setuptools \\
@@ -1034,6 +1036,7 @@ def create_dockerfile_buildbase(ddir, dockerfile_name, argmap):
10341036
&& rm -rf /var/lib/apt/lists/*
10351037
10361038
RUN pip3 install --upgrade \\
1039+
auditwheel \\
10371040
build \\
10381041
docker \\
10391042
virtualenv \\
@@ -1171,10 +1174,21 @@ def create_dockerfile_linux(
11711174
11721175
WORKDIR /opt/tritonserver
11731176
COPY NVIDIA_Deep_Learning_Container_License.pdf .
1174-
RUN find /opt/tritonserver/python -maxdepth 1 -type f -name \\
1175-
"tritonserver-*.whl" | xargs -I {{}} pip install --upgrade {{}}[{FLAGS.triton_wheels_dependencies_group}] && \\
1176-
find /opt/tritonserver/python -maxdepth 1 -type f -name \\
1177-
"tritonfrontend-*.whl" | xargs -I {{}} pip install --upgrade {{}}[{FLAGS.triton_wheels_dependencies_group}]
1177+
# TRI-1118 — fail fast if either tritonserver or tritonfrontend wheel is
1178+
# missing from /opt/tritonserver/python. The legacy `find | xargs -I` is
1179+
# a silent no-op when find returns zero matches: xargs runs the command
1180+
# zero times and the layer succeeds, masking the gap until something
1181+
# downstream (a wheel publish job, or pip install tritonfrontend)
1182+
# discovers nothing was actually installed. Check existence first.
1183+
RUN set -e; \\
1184+
for pkg in tritonserver tritonfrontend; do \\
1185+
wheels=$(find /opt/tritonserver/python -maxdepth 1 -type f -name "${{pkg}}-*.whl"); \\
1186+
if [ -z "$wheels" ]; then \\
1187+
echo "ERROR: ${{pkg}}-*.whl missing from /opt/tritonserver/python -- build did not stage the wheel into the image" >&2; \\
1188+
exit 1; \\
1189+
fi; \\
1190+
printf '%s\\n' "$wheels" | xargs -I {{}} pip install --upgrade "{{}}[{FLAGS.triton_wheels_dependencies_group}]"; \\
1191+
done
11781192
11791193
RUN pip3 install -r python/openai/requirements.txt
11801194
@@ -1301,6 +1315,7 @@ def dockerfile_prepare_container_linux(argmap, backends, enable_gpu, target_mach
13011315
libgoogle-perftools-dev \\
13021316
libjemalloc-dev \\
13031317
libnuma-dev \\
1318+
libssl-dev \\
13041319
wget \\
13051320
{backend_dependencies} \\
13061321
python3-pip \\
@@ -1664,6 +1679,25 @@ def create_docker_build_script(script_name, container_install_dir, container_ci_
16641679
),
16651680
]
16661681

1682+
# TRI-1118 — propagate TRITON_RELEASE_VERSION into the wheel build
1683+
# only when it was actually set in main() (release-semantic version
1684+
# or explicit --release-version). Dev / pre-release builds leave it
1685+
# unset so build_wheel.py reads the in-tree TRITON_VERSION file and
1686+
# takes the PEP 817 variant path.
1687+
if "TRITON_RELEASE_VERSION" in os.environ:
1688+
runargs += [
1689+
"-e",
1690+
f"TRITON_RELEASE_VERSION={os.environ['TRITON_RELEASE_VERSION']}",
1691+
]
1692+
# TRI-1118 — forward PEP 427 build-tag and PEP 817 nv-part inputs so
1693+
# build_wheel.py inside the buildbase container can emit pipeline-correct
1694+
# wheel filenames. CUDA_VERSION is deliberately NOT forwarded -- the
1695+
# container's own CUDA base image defines it; host CUDA may differ
1696+
# (see core/python/build_wheel.py:_detect_cuda_version).
1697+
for var in ("CI_PIPELINE_ID", "NVIDIA_UPSTREAM_VERSION", "NVIDIA_BUILD_ID"):
1698+
if os.environ.get(var):
1699+
runargs += ["-e", f"{var}={os.environ[var]}"]
1700+
16671701
runargs += ["tritonserver_buildbase"]
16681702

16691703
runargs += ["./cmake_build"]
@@ -1787,6 +1821,18 @@ def core_build(
17871821
# [FIXME] Placing the tritonserver and tritonfrontend wheel files in 'python' for now,
17881822
# should be uploaded to pip registry to be able to install directly
17891823
cmake_script.mkdir(os.path.join(install_dir, "python"))
1824+
# TRI-1118 — tritonfrontend wheel is built by the triton-server
1825+
# sub-build's `frontend-server-wheel` target, but its CMake
1826+
# `install(DIRECTORY ${WHEEL_OUT_DIR})` rule doesn't traverse the
1827+
# outer install pass, so the wheel never lands in
1828+
# repo_install_dir/python/ alongside the core's tritonserver wheel.
1829+
# Pull it in from the build tree directly so the subsequent
1830+
# `triton*.whl` glob picks it up. Safe no-op when the wheel is
1831+
# absent (e.g. downstream builds that disable the frontend).
1832+
cmake_script.cmd(
1833+
f"find {repo_build_dir} -path '*/wheel/dist/tritonfrontend-*.whl' "
1834+
f"-exec cp {{}} {os.path.join(repo_install_dir, 'python')}/ \\;"
1835+
)
17901836
cmake_script.cp(
17911837
os.path.join(repo_install_dir, "python", "triton*.whl"),
17921838
os.path.join(install_dir, "python"),
@@ -2466,8 +2512,12 @@ def enable_all():
24662512
parser.add_argument(
24672513
"--release-version",
24682514
required=False,
2469-
default=DEFAULT_TRITON_VERSION_MAP["release_version"],
2470-
help="This flag sets the release version for Triton Inference Server to be built. Default: the latest released version.",
2515+
default=None,
2516+
help="Override the wheel base version (TRI-1118). When set, exported "
2517+
"as TRITON_RELEASE_VERSION so build_wheel.py uses it as the bare "
2518+
"PEP 440 version. When unset, build.py falls back to --version when "
2519+
"it matches X.Y.Z release-semantic, otherwise leaves the env var "
2520+
"unset and lets the in-tree TRITON_VERSION file rule (PEP 817 path).",
24712521
)
24722522
parser.add_argument(
24732523
"--triton-container-version",
@@ -2596,6 +2646,22 @@ def enable_all():
25962646
if FLAGS.version is None:
25972647
FLAGS.version = DEFAULT_TRITON_VERSION_MAP["release_version"]
25982648

2649+
# TRI-1118 — choose whether to export TRITON_RELEASE_VERSION based on
2650+
# the resolved Triton version:
2651+
# - --release-version explicitly passed -> use it (override)
2652+
# - FLAGS.version matches X.Y.Z -> propagate FLAGS.version
2653+
# - anything else (dev / pre-release / etc) -> leave unset so the
2654+
# wheel build reads the
2655+
# in-tree TRITON_VERSION
2656+
# file (PEP 817 variant).
2657+
# The container build forwards this env var via `docker run -e`
2658+
# (create_docker_build_script). For --no-container-build, the
2659+
# cmake_build subprocess inherits the host env directly.
2660+
if FLAGS.release_version is not None:
2661+
os.environ.setdefault("TRITON_RELEASE_VERSION", FLAGS.release_version)
2662+
elif re.match(r"^\d+\.\d+\.\d+$", FLAGS.version):
2663+
os.environ.setdefault("TRITON_RELEASE_VERSION", FLAGS.version)
2664+
25992665
if FLAGS.build_parallel is None:
26002666
FLAGS.build_parallel = multiprocessing.cpu_count() * 2
26012667

deploy/aws/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
replicaCount: 1
2828

2929
image:
30-
imageName: nvcr.io/nvidia/tritonserver:26.05-py3
30+
imageName: nvcr.io/nvidia/tritonserver:26.06-py3
3131
pullPolicy: IfNotPresent
3232
modelRepositoryPath: s3://triton-inference-server-repository/model_repository
3333
numGpus: 1

deploy/fleetcommand/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
apiVersion: v1
2828
# appVersion is the Triton version; update when changing release
29-
appVersion: 2.69.0
29+
appVersion: 2.70.0
3030
description: Triton Inference Server (Fleet Command)
3131
name: triton-inference-server
3232
# version is the Chart version; update when changing anything in the chart

deploy/fleetcommand/values.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
replicaCount: 1
2828

2929
image:
30-
imageName: nvcr.io/nvidia/tritonserver:26.05-py3
30+
imageName: nvcr.io/nvidia/tritonserver:26.06-py3
3131
pullPolicy: IfNotPresent
3232
numGpus: 1
3333
serverCommand: tritonserver
@@ -47,13 +47,13 @@ image:
4747
#
4848
# To set model control mode, uncomment and configure below
4949
# TODO: Fix the following url, it is invalid
50-
# See https://github.com/triton-inference-server/server/blob/r26.05/docs/user_guide/model_management.md
50+
# See https://github.com/triton-inference-server/server/blob/r26.06/docs/user_guide/model_management.md
5151
# for more details
5252
#- --model-control-mode=explicit|poll|none
5353
#
5454
# Additional server args
5555
#
56-
# see https://github.com/triton-inference-server/server/blob/r26.05/README.md
56+
# see https://github.com/triton-inference-server/server/blob/r26.06/README.md
5757
# for more details
5858

5959
service:

deploy/gcp/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
replicaCount: 1
2828

2929
image:
30-
imageName: nvcr.io/nvidia/tritonserver:26.05-py3
30+
imageName: nvcr.io/nvidia/tritonserver:26.06-py3
3131
pullPolicy: IfNotPresent
3232
modelRepositoryPath: gs://triton-inference-server-repository/model_repository
3333
numGpus: 1

deploy/gke-marketplace-app/benchmark/perf-analyzer-script/triton_client.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ metadata:
3333
namespace: default
3434
spec:
3535
containers:
36-
- image: nvcr.io/nvidia/tritonserver:26.05-py3-sdk
36+
- image: nvcr.io/nvidia/tritonserver:26.06-py3-sdk
3737
imagePullPolicy: Always
3838
name: nv-triton-client
3939
securityContext:

deploy/gke-marketplace-app/server-deployer/build_and_push.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
export REGISTRY=gcr.io/$(gcloud config get-value project | tr ':' '/')
2929
export APP_NAME=tritonserver
3030
export MAJOR_VERSION=2.67
31-
export MINOR_VERSION=2.69.0
32-
export NGC_VERSION=26.05-py3
31+
export MINOR_VERSION=2.70.0
32+
export NGC_VERSION=26.06-py3
3333

3434
docker pull nvcr.io/nvidia/$APP_NAME:$NGC_VERSION
3535

deploy/gke-marketplace-app/server-deployer/chart/triton/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,4 @@ apiVersion: v1
2828
appVersion: "2.68"
2929
description: Triton Inference Server
3030
name: triton-inference-server
31-
version: 2.69.0
31+
version: 2.70.0

0 commit comments

Comments
 (0)