From e0e2c1a84f1d17f8cb35fd21a112fb1b50425695 Mon Sep 17 00:00:00 2001 From: Misha Chornyi <99709299+mc-nv@users.noreply.github.com> Date: Wed, 31 May 2023 20:10:33 -0700 Subject: [PATCH] Update `main` post-23.05 release (#5880) * Update README and versions for 23.05 branch * Changes to support 23.05 (#5782) * Update python and conda version * Update CMAKE installation * Update checksum version * Update ubuntu base image to 22.04 * Use ORT 1.15.0 * Set CMAKE to pull latest version * Update libre package version * Removing unused argument * Adding condition for ubuntu 22.04 * Removing installation of the package from the devel container * Nnshah1 u22.04 (#5770) * Update CMAKE installation * Update python and conda version * Update CMAKE installation * Update checksum version * Update ubuntu base image to 22.04 * updating versions for ubuntu 22.04 * remove re2 --------- Co-authored-by: Neelay Shah Co-authored-by: Neelay Shah * Set ONNX version to 1.13.0 * Fix L0_custom_ops for ubuntu 22.04 (#5775) * add back rapidjson-dev --------- Co-authored-by: Neelay Shah Co-authored-by: Neelay Shah Co-authored-by: nv-kmcgill53 <101670481+nv-kmcgill53@users.noreply.github.com> * Fix L0_mlflow (#5805) * working thread * remove default install of blinker * merge issue fixed * Fix L0_backend_python/env test (#5799) * Fix L0_backend_python/env test * Address comment * Update the copyright * Fix up * Fix L0_http_fuzz (#5776) * installing python 3.8.16 for test * spelling Co-authored-by: Neelay Shah * use util functions to install python3.8 in an easier way --------- Co-authored-by: Neelay Shah * Update Windows versions for 23.05 release (#5826) * Rename Ubuntu 20.04 mentions to 22.04 (#5849) * Update DCGM version (#5856) * Update DCGM version (#5857) * downgrade DCGM version to 2.4.7 (#5860) * Updating link for latest release notes to 23.05 --------- Co-authored-by: Neelay Shah Co-authored-by: Neelay Shah Co-authored-by: nv-kmcgill53 <101670481+nv-kmcgill53@users.noreply.github.com> Co-authored-by: Iman Tabrizian --- Dockerfile.QA | 25 ++++---- Dockerfile.sdk | 36 +++++------- Dockerfile.win10.min | 16 ++--- README.md | 10 ++-- build.py | 35 ++++++----- compose.py | 2 +- deploy/aws/values.yaml | 2 +- deploy/fleetcommand/Chart.yaml | 2 +- deploy/fleetcommand/values.yaml | 6 +- deploy/gcp/values.yaml | 2 +- .../perf-analyzer-script/triton_client.yaml | 2 +- .../server-deployer/build_and_push.sh | 4 +- .../server-deployer/chart/triton/Chart.yaml | 2 +- .../server-deployer/chart/triton/values.yaml | 4 +- .../server-deployer/data-test/schema.yaml | 2 +- .../server-deployer/schema.yaml | 2 +- .../gke-marketplace-app/trt-engine/README.md | 2 +- deploy/k8s-onprem/values.yaml | 2 +- docs/Dockerfile.docs | 2 +- docs/customization_guide/build.md | 20 +++---- docs/customization_guide/compose.md | 14 ++--- docs/customization_guide/test.md | 2 +- docs/index.md | 2 +- docs/user_guide/custom_operations.md | 6 +- docs/user_guide/jetson.md | 25 ++++---- docs/user_guide/metrics.md | 2 +- docs/user_guide/performance_tuning.md | 4 +- qa/L0_backend_bls/test.sh | 15 +++-- qa/L0_backend_python/common.sh | 23 ++++---- qa/L0_backend_python/env/test.sh | 58 ++++++++++--------- qa/L0_backend_tutorial/test.sh | 17 +++--- qa/L0_batch_custom/test.sh | 16 ++--- qa/L0_client_build_variants/test.sh | 18 +++--- qa/L0_custom_ops/test.sh | 2 +- qa/L0_http_fuzz/test.sh | 18 +++++- qa/L0_mlflow/test.sh | 10 ++++ qa/common/gen_jetson_trt_models | 2 +- qa/common/gen_qa_custom_ops | 4 +- qa/common/gen_qa_model_repository | 18 ++---- 39 files changed, 235 insertions(+), 199 deletions(-) diff --git a/Dockerfile.QA b/Dockerfile.QA index ac15fe04b0..7ff4598c22 100644 --- a/Dockerfile.QA +++ b/Dockerfile.QA @@ -62,13 +62,15 @@ RUN apt-get update && \ RUN pip3 install --upgrade pip && \ pip3 install --upgrade wheel setuptools -RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \ - gpg --dearmor - | \ - tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null && \ - apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' && \ +RUN apt update && apt install -y gpg wget && \ + wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \ + gpg --dearmor - | \ + tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null && \ + . /etc/os-release && \ + echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $UBUNTU_CODENAME main" | \ + tee /etc/apt/sources.list.d/kitware.list >/dev/null && \ apt-get update && \ - apt-get install -y --no-install-recommends \ - cmake-data=3.25.2-0kitware1ubuntu20.04.1 cmake=3.25.2-0kitware1ubuntu20.04.1 + apt-get install -y --no-install-recommends cmake cmake-data # Add inception_graphdef model to example repo WORKDIR /workspace/docs/examples/model_repository @@ -294,12 +296,16 @@ RUN if [ $(cat /etc/os-release | grep 'VERSION_ID="20.04"' | wc -l) -ne 0 ]; the apt-get update && \ apt-get install -y --no-install-recommends \ libpng-dev; \ + elif [ $(cat /etc/os-release | grep 'VERSION_ID="22.04"' | wc -l) -ne 0 ]; then \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + libpng-dev; \ elif [ $(cat /etc/os-release | grep 'VERSION_ID="18.04"' | wc -l) -ne 0 ]; then \ apt-get update && \ apt-get install -y --no-install-recommends \ libpng-dev; \ else \ - echo "Ubuntu version must be either 18.04 or 20.04" && \ + echo "Ubuntu version must be either 18.04, 20.04 or 22.04" && \ exit 1; \ fi @@ -333,11 +339,6 @@ RUN pip3 install --upgrade wheel setuptools && \ pip3 install --upgrade numpy pillow attrdict future grpcio requests gsutil \ awscli six grpcio-channelz prettytable virtualenv -# L0_http_fuzz is hitting similar issue with boofuzz with latest version (0.4.0): -# https://github.com/jtpereyda/boofuzz/issues/529 -# Hence, fixing the boofuzz version to 0.3.0 -RUN pip3 install 'boofuzz==0.3.0' - # go needed for example go client test. RUN if [ "$TARGETPLATFORM" = "linux/arm64" ]; then \ wget https://golang.org/dl/go1.19.1.linux-arm64.tar.gz && \ diff --git a/Dockerfile.sdk b/Dockerfile.sdk index 608b27a564..558d40fb92 100644 --- a/Dockerfile.sdk +++ b/Dockerfile.sdk @@ -29,7 +29,7 @@ # # Base image on the minimum Triton container -ARG BASE_IMAGE=nvcr.io/nvidia/tritonserver:23.04-py3-min +ARG BASE_IMAGE=nvcr.io/nvidia/tritonserver:23.05-py3-min ARG TRITON_CLIENT_REPO_SUBDIR=clientrepo ARG TRITON_COMMON_REPO_TAG=main @@ -37,13 +37,12 @@ ARG TRITON_CORE_REPO_TAG=main ARG TRITON_BACKEND_REPO_TAG=main ARG TRITON_THIRD_PARTY_REPO_TAG=main ARG TRITON_MODEL_ANALYZER_REPO_TAG=main -ARG CMAKE_UBUNTU_VERSION=20.04 ARG TRITON_ENABLE_GPU=ON ARG JAVA_BINDINGS_MAVEN_VERSION=3.8.4 ARG JAVA_BINDINGS_JAVACPP_PRESETS_TAG=1.5.8 # DCGM version to install for Model Analyzer -ARG DCGM_VERSION=2.2.9 +ARG DCGM_VERSION=2.4.7 ARG NVIDIA_TRITON_SERVER_SDK_VERSION=unknown ARG NVIDIA_BUILD_ID=unknown @@ -87,25 +86,18 @@ RUN apt-get update && \ pip3 install --upgrade grpcio-tools && \ pip3 install --upgrade pip -ARG CMAKE_UBUNTU_VERSION # Client build requires recent version of CMake (FetchContent required) -RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \ - gpg --dearmor - | \ - tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null && \ - if [ "$CMAKE_UBUNTU_VERSION" = "20.04" ]; then \ - apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' && \ - apt-get update && \ - apt-get install -y --no-install-recommends \ - cmake-data=3.25.2-0kitware1ubuntu20.04.1 cmake=3.25.2-0kitware1ubuntu20.04.1; \ - elif [ "$CMAKE_UBUNTU_VERSION" = "18.04" ]; then \ - apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main' && \ - apt-get update && \ - apt-get install -y --no-install-recommends \ - cmake-data=3.18.4-0kitware1 cmake=3.18.4-0kitware1; \ - else \ - echo "ERROR: Only support CMAKE_UBUNTU_VERSION to be 18.04 or 20.04" && false; \ - fi && \ - cmake --version +# Using CMAKE installation instruction from:: https://apt.kitware.com/ +RUN apt update && apt install -y gpg wget && \ + wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \ + gpg --dearmor - | \ + tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null && \ + . /etc/os-release && \ + echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $UBUNTU_CODENAME main" | \ + tee /etc/apt/sources.list.d/kitware.list >/dev/null && \ + apt-get update && \ + apt-get install -y --no-install-recommends cmake cmake-data && \ + cmake --version # Build expects "python" executable (not python3). RUN rm -f /usr/bin/python && \ @@ -224,7 +216,7 @@ RUN pip3 install --upgrade numpy pillow attrdict && \ RUN if [ "$TRITON_ENABLE_GPU" = "ON" ]; then \ [ "$(uname -m)" != "x86_64" ] && arch="sbsa" || arch="x86_64" && \ curl -o /tmp/cuda-keyring.deb \ - https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/$arch/cuda-keyring_1.0-1_all.deb \ + https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/$arch/cuda-keyring_1.0-1_all.deb \ && apt install /tmp/cuda-keyring.deb && rm /tmp/cuda-keyring.deb && \ apt-get update && apt-get install -y datacenter-gpu-manager=1:${DCGM_VERSION}; \ fi diff --git a/Dockerfile.win10.min b/Dockerfile.win10.min index 97dd4c24c3..a0660c2f80 100644 --- a/Dockerfile.win10.min +++ b/Dockerfile.win10.min @@ -71,7 +71,7 @@ WORKDIR / # # Installing Vcpkg # -ARG VCPGK_VERSION=2023.02.24 +ARG VCPGK_VERSION=2022.11.14 RUN git clone --single-branch --depth=1 -b %VCPGK_VERSION% https://github.com/microsoft/vcpkg.git WORKDIR /vcpkg RUN bootstrap-vcpkg.bat @@ -103,9 +103,9 @@ LABEL CMAKE_VERSION=${CMAKE_VERSION} # # Installing CUDA # -ARG CUDA_MAJOR=11 -ARG CUDA_MINOR=8 -ARG CUDA_PATCH=0 +ARG CUDA_MAJOR=12 +ARG CUDA_MINOR=1 +ARG CUDA_PATCH=1 ARG CUDA_VERSION=${CUDA_MAJOR}.${CUDA_MINOR}.${CUDA_PATCH} ARG CUDA_PACKAGES="nvcc_${CUDA_MAJOR}.${CUDA_MINOR} \ cudart_${CUDA_MAJOR}.${CUDA_MINOR} \ @@ -135,8 +135,8 @@ LABEL CUDA_VERSION="${CUDA_VERSION}" # # Installing Tensorrt # -ARG TENSORRT_VERSION=8.5.3.1 -ARG TENSORRT_ZIP="TensorRT-${TENSORRT_VERSION}.Windows10.x86_64.cuda-11.8.zip" +ARG TENSORRT_VERSION=8.6.1.6 +ARG TENSORRT_ZIP="TensorRT-${TENSORRT_VERSION}.Windows10.x86_64.cuda-12.0.zip" ARG TENSORRT_SOURCE=${TENSORRT_ZIP} # COPY ${TENSORRT_ZIP} /tmp/${TENSORRT_ZIP} ADD ${TENSORRT_SOURCE} /tmp/${TENSORRT_ZIP} @@ -153,8 +153,8 @@ LABEL TENSORRT_VERSION="${TENSORRT_VERSION}" # # Installing CUDNN # -ARG CUDNN_VERSION=8.8.1.3 -ARG CUDNN_ZIP=cudnn-windows-x86_64-${CUDNN_VERSION}_cuda11-archive.zip +ARG CUDNN_VERSION=8.9.1.23 +ARG CUDNN_ZIP=cudnn-windows-x86_64-${CUDNN_VERSION}_cuda12-archive.zip ARG CUDNN_SOURCE=${CUDNN_ZIP} ADD ${CUDNN_SOURCE} /tmp/${CUDNN_ZIP} diff --git a/README.md b/README.md index f0bd69b866..78aa8948da 100644 --- a/README.md +++ b/README.md @@ -32,8 +32,8 @@ **LATEST RELEASE: You are currently on the main branch which tracks under-development progress towards the next release. The current release is -version [2.33.0](https://github.com/triton-inference-server/server/tree/r23.04) -and corresponds to the 23.04 container release on +version [2.34.0](https://github.com/triton-inference-server/server/tree/r23.05) +and corresponds to the 23.05 container release on [NVIDIA GPU Cloud (NGC)](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/tritonserver).** ---- @@ -88,16 +88,16 @@ Inference Server with the ```bash # Step 1: Create the example model repository -git clone -b r23.04 https://github.com/triton-inference-server/server.git +git clone -b r23.05 https://github.com/triton-inference-server/server.git cd server/docs/examples ./fetch_models.sh # Step 2: Launch triton from the NGC Triton container -docker run --gpus=1 --rm --net=host -v ${PWD}/model_repository:/models nvcr.io/nvidia/tritonserver:23.04-py3 tritonserver --model-repository=/models +docker run --gpus=1 --rm --net=host -v ${PWD}/model_repository:/models nvcr.io/nvidia/tritonserver:23.05-py3 tritonserver --model-repository=/models # Step 3: Sending an Inference Request # In a separate console, launch the image_client example from the NGC Triton SDK container -docker run -it --rm --net=host nvcr.io/nvidia/tritonserver:23.04-py3-sdk +docker run -it --rm --net=host nvcr.io/nvidia/tritonserver:23.05-py3-sdk /workspace/install/bin/image_client -m densenet_onnx -c 3 -s INCEPTION /workspace/images/mug.jpg # Inference should return the following diff --git a/build.py b/build.py index 4b6e83fcb4..b872557c3a 100755 --- a/build.py +++ b/build.py @@ -67,14 +67,15 @@ # incorrectly load the other version of the openvino libraries. # TRITON_VERSION_MAP = { + '2.35.0dev': ( '23.06dev', # triton container - '23.04', # upstream container - '1.14.1', # ORT + '23.05', # upstream container + '1.15.0', # ORT '2022.1.0', # ORT OpenVINO '2022.1.0', # Standalone OpenVINO - '2.2.9', # DCGM version - 'py38_4.12.0') # Conda version. + '2.4.7', # DCGM version + 'py310_23.1.0-1') # Conda version. } CORE_BACKENDS = ['ensemble'] @@ -830,7 +831,7 @@ def install_dcgm_libraries(dcgm_version, target_machine): ENV DCGM_VERSION {} # Install DCGM. Steps from https://developer.nvidia.com/dcgm#Downloads RUN curl -o /tmp/cuda-keyring.deb \ - https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/sbsa/cuda-keyring_1.0-1_all.deb \ + https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/sbsa/cuda-keyring_1.0-1_all.deb \ && apt install /tmp/cuda-keyring.deb && rm /tmp/cuda-keyring.deb && \ apt-get update && apt-get install -y datacenter-gpu-manager=1:{} '''.format(dcgm_version, dcgm_version) @@ -839,7 +840,7 @@ def install_dcgm_libraries(dcgm_version, target_machine): ENV DCGM_VERSION {} # Install DCGM. Steps from https://developer.nvidia.com/dcgm#Downloads RUN curl -o /tmp/cuda-keyring.deb \ - https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb \ + https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb \ && apt install /tmp/cuda-keyring.deb && rm /tmp/cuda-keyring.deb && \ apt-get update && apt-get install -y datacenter-gpu-manager=1:{} '''.format(dcgm_version, dcgm_version) @@ -857,9 +858,9 @@ def install_miniconda(conda_version, target_machine): .format(FLAGS.version)) miniconda_url = f"https://repo.anaconda.com/miniconda/Miniconda3-{conda_version}-Linux-{target_machine}.sh" if target_machine == 'x86_64': - sha_sum = "3190da6626f86eee8abf1b2fd7a5af492994eb2667357ee4243975cdbb175d7a" + sha_sum = "32d73e1bc33fda089d7cd9ef4c1be542616bd8e437d1f77afeeaf7afdb019787" else: - sha_sum = "0c20f121dc4c8010032d64f8e9b27d79e52d28355eb8d7972eafc90652387777" + sha_sum = "80d6c306b015e1e3b01ea59dc66c676a81fa30279bc2da1f180a7ef7b2191d6e" return f''' RUN mkdir -p /opt/ RUN wget "{miniconda_url}" -O miniconda.sh -q && \ @@ -945,13 +946,15 @@ def create_dockerfile_buildbase(ddir, dockerfile_name, argmap): mv /tmp/boost_1_80_0/boost /usr/include/boost # Server build requires recent version of CMake (FetchContent required) -RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \ - gpg --dearmor - | \ - tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null && \ - apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' && \ +RUN apt update && apt install -y gpg wget && \ + wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \ + gpg --dearmor - | \ + tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null && \ + . /etc/os-release && \ + echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $UBUNTU_CODENAME main" | \ + tee /etc/apt/sources.list.d/kitware.list >/dev/null && \ apt-get update && \ - apt-get install -y --no-install-recommends \ - cmake-data=3.25.2-0kitware1ubuntu20.04.1 cmake=3.25.2-0kitware1ubuntu20.04.1 + apt-get install -y --no-install-recommends cmake cmake-data ''' if FLAGS.enable_gpu: @@ -1136,7 +1139,7 @@ def dockerfile_prepare_container_linux(argmap, backends, enable_gpu, software-properties-common \ libb64-0d \ libcurl4-openssl-dev \ - libre2-5 \ + libre2-9 \ git \ gperf \ dirmngr \ @@ -1314,7 +1317,7 @@ def create_build_dockerfiles(container_build_dir, images, backends, repoagents, base_image = 'nvcr.io/nvidia/tritonserver:{}-py3-min'.format( FLAGS.upstream_container_version) else: - base_image = 'ubuntu:20.04' + base_image = 'ubuntu:22.04' dockerfileargmap = { 'NVIDIA_BUILD_REF': diff --git a/compose.py b/compose.py index 971d0a6f2c..79e64f0646 100644 --- a/compose.py +++ b/compose.py @@ -434,7 +434,7 @@ def create_argmap(images, skip_pull): "nvcr.io/nvidia/tritonserver:{}-cpu-only-py3".format( FLAGS.container_version), "min": - "ubuntu:20.04" + "ubuntu:22.04" } fail_if( len(images) < 2, diff --git a/deploy/aws/values.yaml b/deploy/aws/values.yaml index 42256c571a..3d3f79b681 100644 --- a/deploy/aws/values.yaml +++ b/deploy/aws/values.yaml @@ -27,7 +27,7 @@ replicaCount: 1 image: - imageName: nvcr.io/nvidia/tritonserver:23.04-py3 + imageName: nvcr.io/nvidia/tritonserver:23.05-py3 pullPolicy: IfNotPresent modelRepositoryPath: s3://triton-inference-server-repository/model_repository numGpus: 1 diff --git a/deploy/fleetcommand/Chart.yaml b/deploy/fleetcommand/Chart.yaml index eb95ccc997..1a55767b8b 100644 --- a/deploy/fleetcommand/Chart.yaml +++ b/deploy/fleetcommand/Chart.yaml @@ -26,7 +26,7 @@ apiVersion: v1 # appVersion is the Triton version; update when changing release -appVersion: "2.33.0" +appVersion: "2.34.0" description: Triton Inference Server (Fleet Command) name: triton-inference-server # version is the Chart version; update when changing anything in the chart diff --git a/deploy/fleetcommand/values.yaml b/deploy/fleetcommand/values.yaml index 8aac03b247..a6603efadb 100644 --- a/deploy/fleetcommand/values.yaml +++ b/deploy/fleetcommand/values.yaml @@ -27,7 +27,7 @@ replicaCount: 1 image: - imageName: nvcr.io/nvidia/tritonserver:23.04-py3 + imageName: nvcr.io/nvidia/tritonserver:23.05-py3 pullPolicy: IfNotPresent numGpus: 1 serverCommand: tritonserver @@ -46,13 +46,13 @@ image: # Model Control Mode (Optional, default: none) # # To set model control mode, uncomment and configure below - # See https://github.com/triton-inference-server/server/blob/r23.04/docs/model_management.md + # See https://github.com/triton-inference-server/server/blob/r23.05/docs/model_management.md # for more details #- --model-control-mode=explicit|poll|none # # Additional server args # - # see https://github.com/triton-inference-server/server/blob/r23.04/README.md + # see https://github.com/triton-inference-server/server/blob/r23.05/README.md # for more details service: diff --git a/deploy/gcp/values.yaml b/deploy/gcp/values.yaml index 424e964e4d..a803e939b1 100644 --- a/deploy/gcp/values.yaml +++ b/deploy/gcp/values.yaml @@ -27,7 +27,7 @@ replicaCount: 1 image: - imageName: nvcr.io/nvidia/tritonserver:23.04-py3 + imageName: nvcr.io/nvidia/tritonserver:23.05-py3 pullPolicy: IfNotPresent modelRepositoryPath: gs://triton-inference-server-repository/model_repository numGpus: 1 diff --git a/deploy/gke-marketplace-app/benchmark/perf-analyzer-script/triton_client.yaml b/deploy/gke-marketplace-app/benchmark/perf-analyzer-script/triton_client.yaml index 89d032c3d6..8fd1a5f16e 100644 --- a/deploy/gke-marketplace-app/benchmark/perf-analyzer-script/triton_client.yaml +++ b/deploy/gke-marketplace-app/benchmark/perf-analyzer-script/triton_client.yaml @@ -33,7 +33,7 @@ metadata: namespace: default spec: containers: - - image: nvcr.io/nvidia/tritonserver:23.04-py3-sdk + - image: nvcr.io/nvidia/tritonserver:23.05-py3-sdk imagePullPolicy: Always name: nv-triton-client securityContext: diff --git a/deploy/gke-marketplace-app/server-deployer/build_and_push.sh b/deploy/gke-marketplace-app/server-deployer/build_and_push.sh index 543c22a452..1e3a937b2f 100644 --- a/deploy/gke-marketplace-app/server-deployer/build_and_push.sh +++ b/deploy/gke-marketplace-app/server-deployer/build_and_push.sh @@ -27,8 +27,8 @@ export REGISTRY=gcr.io/$(gcloud config get-value project | tr ':' '/') export APP_NAME=tritonserver export MAJOR_VERSION=2.33 -export MINOR_VERSION=2.33.0 -export NGC_VERSION=23.04-py3 +export MINOR_VERSION=2.34.0 +export NGC_VERSION=23.05-py3 docker pull nvcr.io/nvidia/$APP_NAME:$NGC_VERSION diff --git a/deploy/gke-marketplace-app/server-deployer/chart/triton/Chart.yaml b/deploy/gke-marketplace-app/server-deployer/chart/triton/Chart.yaml index b16ea3af48..f7912dbf05 100644 --- a/deploy/gke-marketplace-app/server-deployer/chart/triton/Chart.yaml +++ b/deploy/gke-marketplace-app/server-deployer/chart/triton/Chart.yaml @@ -28,4 +28,4 @@ apiVersion: v1 appVersion: "2.33" description: Triton Inference Server name: triton-inference-server -version: 2.33.0 +version: 2.34.0 diff --git a/deploy/gke-marketplace-app/server-deployer/chart/triton/values.yaml b/deploy/gke-marketplace-app/server-deployer/chart/triton/values.yaml index 54867eefc8..f3b0d55810 100644 --- a/deploy/gke-marketplace-app/server-deployer/chart/triton/values.yaml +++ b/deploy/gke-marketplace-app/server-deployer/chart/triton/values.yaml @@ -32,13 +32,13 @@ tritonProtocol: HTTP # HPA GPU utilization autoscaling target HPATargetAverageValue: 85 modelRepositoryPath: gs://triton_sample_models/23_04 -publishedVersion: '2.33.0' +publishedVersion: '2.34.0' gcpMarketplace: true image: registry: gcr.io repository: nvidia-ngc-public/tritonserver - tag: 23.04-py3 + tag: 23.05-py3 pullPolicy: IfNotPresent # modify the model repository here to match your GCP storage bucket numGpus: 1 diff --git a/deploy/gke-marketplace-app/server-deployer/data-test/schema.yaml b/deploy/gke-marketplace-app/server-deployer/data-test/schema.yaml index 7039d263b1..23d4e65729 100644 --- a/deploy/gke-marketplace-app/server-deployer/data-test/schema.yaml +++ b/deploy/gke-marketplace-app/server-deployer/data-test/schema.yaml @@ -27,7 +27,7 @@ x-google-marketplace: schemaVersion: v2 applicationApiVersion: v1beta1 - publishedVersion: '2.33.0' + publishedVersion: '2.34.0' publishedVersionMetadata: releaseNote: >- Initial release. diff --git a/deploy/gke-marketplace-app/server-deployer/schema.yaml b/deploy/gke-marketplace-app/server-deployer/schema.yaml index c1cac2e2aa..d5274c4461 100644 --- a/deploy/gke-marketplace-app/server-deployer/schema.yaml +++ b/deploy/gke-marketplace-app/server-deployer/schema.yaml @@ -27,7 +27,7 @@ x-google-marketplace: schemaVersion: v2 applicationApiVersion: v1beta1 - publishedVersion: '2.33.0' + publishedVersion: '2.34.0' publishedVersionMetadata: releaseNote: >- Initial release. diff --git a/deploy/gke-marketplace-app/trt-engine/README.md b/deploy/gke-marketplace-app/trt-engine/README.md index 8e412094f4..054265460a 100644 --- a/deploy/gke-marketplace-app/trt-engine/README.md +++ b/deploy/gke-marketplace-app/trt-engine/README.md @@ -33,7 +33,7 @@ ``` docker run --gpus all -it --network host \ --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 \ - -v ~:/scripts nvcr.io/nvidia/tensorrt:23.04-py3 + -v ~:/scripts nvcr.io/nvidia/tensorrt:23.05-py3 pip install onnx six torch tf2onnx tensorflow diff --git a/deploy/k8s-onprem/values.yaml b/deploy/k8s-onprem/values.yaml index b465b2a3ce..e3f8a3b6b0 100644 --- a/deploy/k8s-onprem/values.yaml +++ b/deploy/k8s-onprem/values.yaml @@ -29,7 +29,7 @@ tags: loadBalancing: true image: - imageName: nvcr.io/nvidia/tritonserver:23.04-py3 + imageName: nvcr.io/nvidia/tritonserver:23.05-py3 pullPolicy: IfNotPresent modelRepositoryServer: < Replace with the IP Address of your file server > modelRepositoryPath: /srv/models diff --git a/docs/Dockerfile.docs b/docs/Dockerfile.docs index 3d22c0b19c..feaa76dd6a 100644 --- a/docs/Dockerfile.docs +++ b/docs/Dockerfile.docs @@ -24,7 +24,7 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -FROM ubuntu:20.04 +FROM ubuntu:22.04 # various documentation dependencies RUN apt-get update && \ diff --git a/docs/customization_guide/build.md b/docs/customization_guide/build.md index b6232394c2..0d08896fdd 100644 --- a/docs/customization_guide/build.md +++ b/docs/customization_guide/build.md @@ -57,7 +57,7 @@ following platforms. See [Building on Unsupported Platforms](#building-on-unsupported-platforms) if you are attempting to build Triton on a platform that is not listed here. -* [Ubuntu 20.04, x86-64](#building-for-ubuntu-2004) +* [Ubuntu 22.04, x86-64](#building-for-ubuntu-2204) * [Jetpack 4.x, NVIDIA Jetson (Xavier, Nano, TX2)](#building-for-jetpack-4x) @@ -67,9 +67,9 @@ If you are developing or debugging Triton, see [Development and Incremental Builds](#development-and-incremental-builds) for information on how to perform incremental build. -## Building for Ubuntu 20.04 +## Building for Ubuntu 22.04 -For Ubuntu-20.04, build.py supports both a Docker build and a +For Ubuntu-22.04, build.py supports both a Docker build and a non-Docker build. * [Build using Docker](#building-with-docker) and the TensorFlow and PyTorch @@ -111,7 +111,7 @@ building with Docker. image pulled from [NGC](https://ngc.nvidia.com) that contains the CUDA, cuDNN, TensorRT and other dependencies that are required to build Triton. When building without GPU support, the *min* image - is the standard ubuntu:20.04 image. + is the standard ubuntu:22.04 image. * Run the cmake_build script within the *tritonserver_buildbase* image to actually build Triton. The cmake_build script performs @@ -173,7 +173,7 @@ $ ./build.py ... --repo-tag=common: --repo-tag=core:` will default to the branch name. For example, if you are building on the -r23.04 branch, `` will default to r23.04. If you are +r23.05 branch, `` will default to r23.05. If you are building on any other branch (including the *main* branch) then `` will default to "main". Therefore, you typically do not need to provide `` at all (nor the preceding @@ -274,7 +274,7 @@ issues since non-supported versions are not tested. ## Building for Windows 10 For Windows 10, build.py supports both a Docker build and a non-Docker -build in a similar way as described for [Ubuntu](#building-for-ubuntu-2004). The primary +build in a similar way as described for [Ubuntu](#building-for-ubuntu-2204). The primary difference is that the minimal/base image used as the base of Dockerfile.buildbase image can be built from the provided [Dockerfile.win10.min](https://github.com/triton-inference-server/server/blob/main/Dockerfile.win10.min) @@ -334,8 +334,8 @@ python build.py --cmake-dir=/build --build-dir=/tmp/citritonbuild If you are building on *main* branch then '' will default to "main". If you are building on a release branch then '' will default to the branch name. For example, if you -are building on the r23.04 branch, '' will default to -r23.04. Therefore, you typically do not need to provide '' will default to +r23.05. Therefore, you typically do not need to provide '' at all (nor the preceding colon). You can use a different '' for a component to instead use the corresponding branch/tag in the build. For example, if you have a branch called @@ -378,7 +378,7 @@ platforms by reading the above documentation and then follow the process for the supported platform that most closely matches the platform you are interested in (for example, if you are trying to build for RHEL/x86-64 then follow the [Building for Ubuntu -20.04](#building-for-ubuntu-2004) process. You will likely need to +22.04](#building-for-ubuntu-2204) process. You will likely need to make changes in the following areas and then manually run docker_build and cmake_build or the equivalent commands to perform a build. @@ -410,7 +410,7 @@ and cmake_build or the equivalent commands to perform a build. [TensorFlow](https://github.com/triton-inference-server/tensorflow_backend) backend extracts pre-built shared libraries from the TensorFlow NGC container as part of the build. This container is only available for - Ubuntu-20.04 / x86-64, so if you require the TensorFlow backend for + Ubuntu-22.04 / x86-64, so if you require the TensorFlow backend for your platform you will need download the TensorFlow container and modify its build to produce shared libraries for your platform. You must use the TensorFlow source and build scripts from within the NGC diff --git a/docs/customization_guide/compose.md b/docs/customization_guide/compose.md index bd30ad2cf4..e1bb7b5c3f 100644 --- a/docs/customization_guide/compose.md +++ b/docs/customization_guide/compose.md @@ -44,8 +44,8 @@ from source to get more exact customization. The `compose.py` script can be found in the [server repository](https://github.com/triton-inference-server/server). Simply clone the repository and run `compose.py` to create a custom container. Note: Created container version will depend on the branch that was cloned. -For example branch [r23.04](https://github.com/triton-inference-server/server/tree/r23.04) -should be used to create a image based on the NGC 23.04 Triton release. +For example branch [r23.05](https://github.com/triton-inference-server/server/tree/r23.05) +should be used to create a image based on the NGC 23.05 Triton release. `compose.py` provides `--backend`, `--repoagent` options that allow you to specify which backends and repository agents to include in the custom image. @@ -76,19 +76,19 @@ For example, running ``` python3 compose.py --backend tensorflow1 --repoagent checksum ``` -on branch [r23.04](https://github.com/triton-inference-server/server/tree/r23.04) pulls: -- `min` container `nvcr.io/nvidia/tritonserver:23.04-py3-min` -- `full` container `nvcr.io/nvidia/tritonserver:23.04-py3` +on branch [r23.05](https://github.com/triton-inference-server/server/tree/r23.05) pulls: +- `min` container `nvcr.io/nvidia/tritonserver:23.05-py3-min` +- `full` container `nvcr.io/nvidia/tritonserver:23.05-py3` Alternatively, users can specify the version of Triton container to pull from any branch by either: 1. Adding flag `--container-version ` to branch ``` -python3 compose.py --backend tensorflow1 --repoagent checksum --container-version 23.04 +python3 compose.py --backend tensorflow1 --repoagent checksum --container-version 23.05 ``` 2. Specifying `--image min, --image full,`. The user is responsible for specifying compatible `min` and `full` containers. ``` -python3 compose.py --backend tensorflow1 --repoagent checksum --image min,nvcr.io/nvidia/tritonserver:23.04-py3-min --image full,nvcr.io/nvidia/tritonserver:23.04-py3 +python3 compose.py --backend tensorflow1 --repoagent checksum --image min,nvcr.io/nvidia/tritonserver:23.05-py3-min --image full,nvcr.io/nvidia/tritonserver:23.05-py3 ``` Method 1 and 2 will result in the same composed container. Furthermore, `--image` flag overrides the `--container-version` flag when both are specified. diff --git a/docs/customization_guide/test.md b/docs/customization_guide/test.md index 71d54065d4..1bb8af8797 100644 --- a/docs/customization_guide/test.md +++ b/docs/customization_guide/test.md @@ -49,7 +49,7 @@ $ ./gen_qa_custom_ops ``` This will create multiple model repositories in /tmp//qa_* -(for example /tmp/23.04/qa_model_repository). The TensorRT models +(for example /tmp/23.05/qa_model_repository). The TensorRT models will be created for the GPU on the system that CUDA considers device 0 (zero). If you have multiple GPUs on your system see the documentation in the scripts for how to target a specific GPU. diff --git a/docs/index.md b/docs/index.md index bff31c78eb..e3fcb91338 100644 --- a/docs/index.md +++ b/docs/index.md @@ -94,4 +94,4 @@ Join the [Triton and TensorRT community](https://www.nvidia.com/en-us/deep-learn practices, and more. Need enterprise support? NVIDIA global support is available for Triton Inference Server with the [NVIDIA AI Enterprise software suite](https://www.nvidia.com/en-us/data-center/products/ai-enterprise/). -See the [Lastest Release Notes](https://docs.nvidia.com/deeplearning/triton-inference-server/release-notes/rel-23-04.html#rel-23-04) for updates on the newest features and bug fixes. +See the [Lastest Release Notes](https://docs.nvidia.com/deeplearning/triton-inference-server/release-notes/rel-23-05.html#rel-23-05) for updates on the newest features and bug fixes. diff --git a/docs/user_guide/custom_operations.md b/docs/user_guide/custom_operations.md index 5d949d2e01..d335be4c7a 100644 --- a/docs/user_guide/custom_operations.md +++ b/docs/user_guide/custom_operations.md @@ -64,7 +64,7 @@ simple way to ensure you are using the correct version of TensorRT is to use the [NGC TensorRT container](https://ngc.nvidia.com/catalog/containers/nvidia:tensorrt) corresponding to the Triton container. For example, if you are using -the 23.04 version of Triton, use the 23.04 version of the TensorRT +the 23.05 version of Triton, use the 23.05 version of the TensorRT container. ## TensorFlow @@ -123,7 +123,7 @@ simple way to ensure you are using the correct version of TensorFlow is to use the [NGC TensorFlow container](https://ngc.nvidia.com/catalog/containers/nvidia:tensorflow) corresponding to the Triton container. For example, if you are using -the 23.04 version of Triton, use the 23.04 version of the TensorFlow +the 23.05 version of Triton, use the 23.05 version of the TensorFlow container. ## PyTorch @@ -167,7 +167,7 @@ simple way to ensure you are using the correct version of PyTorch is to use the [NGC PyTorch container](https://ngc.nvidia.com/catalog/containers/nvidia:pytorch) corresponding to the Triton container. For example, if you are using -the 23.04 version of Triton, use the 23.04 version of the PyTorch +the 23.05 version of Triton, use the 23.05 version of the PyTorch container. ## ONNX diff --git a/docs/user_guide/jetson.md b/docs/user_guide/jetson.md index 2e0b2149c2..28dc6c5f95 100644 --- a/docs/user_guide/jetson.md +++ b/docs/user_guide/jetson.md @@ -131,17 +131,20 @@ pip3 install --upgrade wheel setuptools cython && \ **Note**: OpenCV 4.2.0 is installed as a part of JetPack. It is one of the dependencies for the client build. **Note**: When building Triton on Jetson, you will require a recent version of cmake. -We recommend using cmake 3.21.1. Below is a script to upgrade your cmake version to 3.21.1. +We recommend using cmake 3.25.2. Below is a script to upgrade your cmake version to 3.25.2. ``` apt remove cmake -wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \ - gpg --dearmor - | \ - tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null && \ - apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' && \ - apt-get update && \ - apt-get install -y --no-install-recommends \ - cmake-data=3.25.2-0kitware1ubuntu20.04.1 cmake=3.25.2-0kitware1ubuntu20.04.1 +# Using CMAKE installation instruction from:: https://apt.kitware.com/ +apt update && apt install -y gpg wget && \ + wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \ + gpg --dearmor - | \ + tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null && \ + . /etc/os-release && \ + echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $UBUNTU_CODENAME main" | \ + tee /etc/apt/sources.list.d/kitware.list >/dev/null && \ + apt-get update && \ + apt-get install -y --no-install-recommends cmake cmake-data ``` ### Runtime Dependencies for Triton @@ -152,7 +155,7 @@ The following runtime dependencies must be installed before running Triton serve apt-get update && \ apt-get install -y --no-install-recommends \ libb64-0d \ - libre2-5 \ + libre2-9 \ libssl1.1 \ rapidjson-dev \ libopenblas-dev \ @@ -188,8 +191,8 @@ LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/llvm-8/lib" ``` **Note**: On Jetson, the backend directory must be explicitly specified using the -`--backend-directory` flag. Starting from 23.04, Triton no longer supports -TensorFlow 1.x. If you'd like to use TensorFlow 1.x with Triton prior to 23.04, +`--backend-directory` flag. Starting from 23.05, Triton no longer supports +TensorFlow 1.x. If you'd like to use TensorFlow 1.x with Triton prior to 23.05, a version string is required to use TensorFlow 1.x. ``` diff --git a/docs/user_guide/metrics.md b/docs/user_guide/metrics.md index d53ba619a7..043347ddd2 100644 --- a/docs/user_guide/metrics.md +++ b/docs/user_guide/metrics.md @@ -100,7 +100,7 @@ Count*. The count metrics are illustrated by the following examples: ### Latencies -Starting in 23.04, Triton exposes the ability to choose the types of metrics +Starting in 23.05, Triton exposes the ability to choose the types of metrics that are published through the `--metrics-config` CLI options. #### Counters diff --git a/docs/user_guide/performance_tuning.md b/docs/user_guide/performance_tuning.md index fbf5d01706..2d00634f46 100644 --- a/docs/user_guide/performance_tuning.md +++ b/docs/user_guide/performance_tuning.md @@ -157,10 +157,10 @@ These containers can be started interactively instead, but for the sake of demon ```bash # Start server container in the background -docker run -d --gpus=all --network=host -v $PWD:/mnt --name triton-server nvcr.io/nvidia/tritonserver:23.04-py3 +docker run -d --gpus=all --network=host -v $PWD:/mnt --name triton-server nvcr.io/nvidia/tritonserver:23.05-py3 # Start client container in the background -docker run -d --gpus=all --network=host -v $PWD:/mnt --name triton-client nvcr.io/nvidia/tritonserver:23.04-py3-sdk +docker run -d --gpus=all --network=host -v $PWD:/mnt --name triton-client nvcr.io/nvidia/tritonserver:23.05-py3-sdk ``` > **Note** diff --git a/qa/L0_backend_bls/test.sh b/qa/L0_backend_bls/test.sh index 4df9c17bc7..38b125cc41 100755 --- a/qa/L0_backend_bls/test.sh +++ b/qa/L0_backend_bls/test.sh @@ -37,13 +37,16 @@ source ../common/util.sh RET=0 # Backend build requires recent version of CMake (FetchContent required) -wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \ - gpg --dearmor - | \ - tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null && \ - apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' && \ +# Using CMAKE installation instruction from:: https://apt.kitware.com/ +apt update && apt install -y gpg wget && \ + wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \ + gpg --dearmor - | \ + tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null && \ + . /etc/os-release && \ + echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $UBUNTU_CODENAME main" | \ + tee /etc/apt/sources.list.d/kitware.list >/dev/null && \ apt-get update && \ - apt-get install -y --no-install-recommends \ - cmake-data=3.25.2-0kitware1ubuntu20.04.1 cmake=3.25.2-0kitware1ubuntu20.04.1 \ + apt-get install -y --no-install-recommends cmake cmake-data \ rapidjson-dev cmake --version diff --git a/qa/L0_backend_python/common.sh b/qa/L0_backend_python/common.sh index 78d4998e2b..6cda002045 100644 --- a/qa/L0_backend_python/common.sh +++ b/qa/L0_backend_python/common.sh @@ -1,4 +1,4 @@ -# Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. +# Copyright 2021-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions @@ -31,7 +31,7 @@ get_shm_pages() { install_conda() { rm -rf ./miniconda - file_name="Miniconda3-py38_4.9.2-Linux-x86_64.sh" + file_name="Miniconda3-py310_23.3.1-0-Linux-x86_64.sh" wget https://repo.anaconda.com/miniconda/$file_name # install miniconda in silent mode @@ -43,13 +43,16 @@ install_conda() { install_build_deps() { apt update && apt install software-properties-common rapidjson-dev -y - wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \ - gpg --dearmor - | \ - tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null && \ - apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' && \ - apt-get update && \ - apt-get install -y --no-install-recommends \ - cmake-data=3.18.4-0kitware1ubuntu20.04.1 cmake=3.18.4-0kitware1ubuntu20.04.1 + # Using CMAKE installation instruction from:: https://apt.kitware.com/ + apt install -y gpg wget && \ + wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \ + gpg --dearmor - | \ + tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null && \ + . /etc/os-release && \ + echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $UBUNTU_CODENAME main" | \ + tee /etc/apt/sources.list.d/kitware.list >/dev/null && \ + apt-get update && \ + apt-get install -y --no-install-recommends cmake cmake-data } create_conda_env() { @@ -57,7 +60,7 @@ create_conda_env() { env_name=$2 conda create -n $env_name python=$python_version -y conda activate $env_name - conda install conda-pack -y + conda install -c conda-forge conda-pack -y } create_python_backend_stub() { diff --git a/qa/L0_backend_python/env/test.sh b/qa/L0_backend_python/env/test.sh index 70dcb311fc..a3c7ad1950 100644 --- a/qa/L0_backend_python/env/test.sh +++ b/qa/L0_backend_python/env/test.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2021-2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# Copyright 2021-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions @@ -48,6 +48,8 @@ install_conda create_conda_env "3.7" "python-3-7" conda install numpy=1.20.1 -y conda install tensorflow=2.1.0 -y +conda install -c conda-forge libstdcxx-ng=12 -y + PY37_VERSION_STRING="Python version is 3.7, NumPy version is 1.20.1, and Tensorflow version is 2.1.0" create_python_backend_stub conda-pack -o python3.7.tar.gz @@ -65,6 +67,7 @@ conda deactivate # Tensorflow 2.1.0 only works with Python 3.4 - 3.7. Successful execution of # the Python model indicates that the environment has been setup correctly. create_conda_env "3.6" "python-3-6" +conda install -c conda-forge libstdcxx-ng=12 -y conda install numpy=1.18.1 -y conda install tensorflow=2.1.0 -y PY36_VERSION_STRING="Python version is 3.6, NumPy version is 1.18.1, and Tensorflow version is 2.1.0" @@ -82,21 +85,23 @@ cp python3.6.tar.gz models/python_3_6/python_3_6_environment.tar.gz cp ../../python_models/python_version/model.py ./models/python_3_6/1/ cp python_backend/builddir/triton_python_backend_stub ./models/python_3_6 -# Test conda env without custom Python backend stub -# Tensorflow 2.3.0 only works with Python 3.5 - 3.8. -path_to_conda_pack='$$TRITON_MODEL_DIRECTORY/python_3_8_environment.tar.gz' -create_conda_env "3.8" "python-3-8" -conda install numpy=1.19.1 -y -conda install tensorflow=2.3.0 -y -PY38_VERSION_STRING="Python version is 3.8, NumPy version is 1.19.1, and Tensorflow version is 2.3.0" -conda-pack -o python3.8.tar.gz -mkdir -p models/python_3_8/1/ -cp ../../python_models/python_version/config.pbtxt ./models/python_3_8 -cp python3.8.tar.gz models/python_3_8/python_3_8_environment.tar.gz -(cd models/python_3_8 && \ - sed -i "s/^name:.*/name: \"python_3_8\"/" config.pbtxt && \ +# Test conda env without custom Python backend stub This environment should +# always use the default Python version shipped in the container. For Ubuntu 22.04 +# it is Python 3.10 and for Ubuntu 20.04 is 3.8 +path_to_conda_pack='$$TRITON_MODEL_DIRECTORY/python_3_10_environment.tar.gz' +create_conda_env "3.10" "python-3-10" +conda install -c conda-forge libstdcxx-ng=12 -y +conda install numpy=1.23.4 -y +conda install tensorflow=2.10.0 -y +PY310_VERSION_STRING="Python version is 3.10, NumPy version is 1.23.4, and Tensorflow version is 2.10.0" +conda pack -o python3.10.tar.gz +mkdir -p models/python_3_10/1/ +cp ../../python_models/python_version/config.pbtxt ./models/python_3_10 +cp python3.10.tar.gz models/python_3_10/python_3_10_environment.tar.gz +(cd models/python_3_10 && \ + sed -i "s/^name:.*/name: \"python_3_10\"/" config.pbtxt && \ echo "parameters: {key: \"EXECUTION_ENV_PATH\", value: {string_value: \"$path_to_conda_pack\"}}" >> config.pbtxt) -cp ../../python_models/python_version/model.py ./models/python_3_8/1/ +cp ../../python_models/python_version/model.py ./models/python_3_10/1/ rm -rf ./miniconda run_server @@ -110,7 +115,7 @@ kill $SERVER_PID wait $SERVER_PID set +e -for EXPECTED_VERSION_STRING in "$PY36_VERSION_STRING" "$PY37_VERSION_STRING" "$PY38_VERSION_STRING"; do +for EXPECTED_VERSION_STRING in "$PY36_VERSION_STRING" "$PY37_VERSION_STRING" "$PY310_VERSION_STRING"; do grep "$EXPECTED_VERSION_STRING" $SERVER_LOG if [ $? -ne 0 ]; then cat $SERVER_LOG @@ -130,22 +135,23 @@ if [ "$SERVER_PID" == "0" ]; then cat $SERVER_LOG exit 1 fi + # The environment should be extracted -curl -v -X POST localhost:8000/v2/repository/models/python_3_8/load -touch -m models/python_3_8/1/model.py +curl -v -X POST localhost:8000/v2/repository/models/python_3_10/load +touch -m models/python_3_10/1/model.py # The environment should not be re-extracted -curl -v -X POST localhost:8000/v2/repository/models/python_3_8/load -touch -m models/python_3_8/python_3_8_environment.tar.gz +curl -v -X POST localhost:8000/v2/repository/models/python_3_10/load +touch -m models/python_3_10/python_3_10_environment.tar.gz # The environment should be re-extracted -curl -v -X POST localhost:8000/v2/repository/models/python_3_8/load +curl -v -X POST localhost:8000/v2/repository/models/python_3_10/load kill $SERVER_PID wait $SERVER_PID set +e -PY38_ENV_EXTRACTION="Extracting Python execution env" -if [ `grep -c "${PY38_ENV_EXTRACTION}" ${SERVER_LOG}` != "2" ]; then +PY310_ENV_EXTRACTION="Extracting Python execution env" +if [ `grep -c "${PY310_ENV_EXTRACTION}" ${SERVER_LOG}` != "2" ]; then cat $SERVER_LOG echo -e "\n***\n*** Python execution environment should be extracted exactly twice. \n***" RET=1 @@ -207,8 +213,8 @@ aws s3 rm "${BUCKET_URL_SLASH}" --recursive --include "*" # Test with EXECUTION_ENV_PATH outside the model directory sed -i "s/TRITON_MODEL_DIRECTORY\/python_3_6_environment/TRITON_MODEL_DIRECTORY\/..\/python_3_6_environment/" models/python_3_6/config.pbtxt mv models/python_3_6/python_3_6_environment.tar.gz models -sed -i "s/\$\$TRITON_MODEL_DIRECTORY\/python_3_8_environment/s3:\/\/triton-bucket-${CI_JOB_ID}\/python_3_8_environment/" models/python_3_8/config.pbtxt -mv models/python_3_8/python_3_8_environment.tar.gz models +sed -i "s/\$\$TRITON_MODEL_DIRECTORY\/python_3_10_environment/s3:\/\/triton-bucket-${CI_JOB_ID}\/python_3_10_environment/" models/python_3_10/config.pbtxt +mv models/python_3_10/python_3_10_environment.tar.gz models aws s3 cp models/ "${BUCKET_URL_SLASH}" --recursive --include "*" @@ -226,7 +232,7 @@ kill $SERVER_PID wait $SERVER_PID set +e -for EXPECTED_VERSION_STRING in "$PY36_VERSION_STRING" "$PY38_VERSION_STRING"; do +for EXPECTED_VERSION_STRING in "$PY36_VERSION_STRING" "$PY310_VERSION_STRING"; do grep "$EXPECTED_VERSION_STRING" $SERVER_LOG if [ $? -ne 0 ]; then cat $SERVER_LOG diff --git a/qa/L0_backend_tutorial/test.sh b/qa/L0_backend_tutorial/test.sh index 3da92ffb5e..d6f337da7e 100755 --- a/qa/L0_backend_tutorial/test.sh +++ b/qa/L0_backend_tutorial/test.sh @@ -40,13 +40,16 @@ source ../common/util.sh RET=0 # Client build requires recent version of CMake (FetchContent required) -wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \ - gpg --dearmor - | \ - tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null && \ - apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' && \ - apt-get update && \ - apt-get install -y --no-install-recommends \ - cmake-data=3.25.2-0kitware1ubuntu20.04.1 cmake=3.25.2-0kitware1ubuntu20.04.1 \ +# Using CMAKE installation instruction from:: https://apt.kitware.com/ +apt update && apt install -y gpg wget && \ + wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \ + gpg --dearmor - | \ + tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null && \ + . /etc/os-release && \ + echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $UBUNTU_CODENAME main" | \ + tee /etc/apt/sources.list.d/kitware.list >/dev/null && \ + apt-get update && \ + apt-get install -y --no-install-recommends cmake cmake-data \ rapidjson-dev cmake --version diff --git a/qa/L0_batch_custom/test.sh b/qa/L0_batch_custom/test.sh index ca4b0e4b24..c957ec4515 100755 --- a/qa/L0_batch_custom/test.sh +++ b/qa/L0_batch_custom/test.sh @@ -58,14 +58,16 @@ source ../common/util.sh RET=0 # Batch strategy build requires recent version of CMake (FetchContent required) -wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \ - gpg --dearmor - | \ - tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null && \ - apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' && \ +# Using CMAKE installation instruction from:: https://apt.kitware.com/ +apt update && apt install -y gpg wget && \ + wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \ + gpg --dearmor - | \ + tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null && \ + . /etc/os-release && \ + echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $UBUNTU_CODENAME main" | \ + tee /etc/apt/sources.list.d/kitware.list >/dev/null && \ apt-get update && \ - apt-get install -y --no-install-recommends \ - cmake-data=3.25.2-0kitware1ubuntu20.04.1 cmake=3.25.2-0kitware1ubuntu20.04.1 \ - rapidjson-dev + apt-get install -y --no-install-recommends cmake cmake-data rapidjson-dev cmake --version # Set up repository diff --git a/qa/L0_client_build_variants/test.sh b/qa/L0_client_build_variants/test.sh index 9dfc59d09c..be8ae2c15e 100755 --- a/qa/L0_client_build_variants/test.sh +++ b/qa/L0_client_build_variants/test.sh @@ -31,15 +31,19 @@ apt-get install -y --no-install-recommends \ rapidjson-dev # Client build requires recent version of CMake (FetchContent required) -wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \ - gpg --dearmor - | \ - tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null && \ -apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' && \ -apt-get update && \ -apt-get install -y --no-install-recommends \ -cmake-data=3.25.2-0kitware1ubuntu20.04.1 cmake=3.25.2-0kitware1ubuntu20.04.1; \ +# Using CMAKE installation instruction from:: https://apt.kitware.com/ +apt update && apt install -y gpg wget && \ + wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \ + gpg --dearmor - | \ + tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null && \ + . /etc/os-release && \ + echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $UBUNTU_CODENAME main" | \ + tee /etc/apt/sources.list.d/kitware.list >/dev/null && \ + apt-get update && \ + apt-get install -y --no-install-recommends cmake cmake-data cmake --version + set +e mkdir -p /workspace/build diff --git a/qa/L0_custom_ops/test.sh b/qa/L0_custom_ops/test.sh index e11026c83a..a12c1d67a4 100755 --- a/qa/L0_custom_ops/test.sh +++ b/qa/L0_custom_ops/test.sh @@ -171,7 +171,7 @@ SERVER_ARGS="--model-repository=/data/inferenceserver/${REPO_VERSION}/qa_custom_ # FIXME: Pre-loading the python library system to satisfy the symbol definitions # as the custom op library is built with different python version within # pytorch container. See DLIS-4152. -SERVER_LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libpython3.8.so.1:/data/inferenceserver/${REPO_VERSION}/qa_custom_ops/libtorch_custom_ops/libtorch_modulo/custom_modulo.so" +SERVER_LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libpython3.10.so.1:/data/inferenceserver/${REPO_VERSION}/qa_custom_ops/libtorch_custom_ops/libtorch_modulo/custom_modulo.so" run_server if [ "$SERVER_PID" == "0" ]; then echo -e "\n***\n*** Failed to start $SERVER\n***" diff --git a/qa/L0_http_fuzz/test.sh b/qa/L0_http_fuzz/test.sh index e56a6018e8..372fe5a242 100644 --- a/qa/L0_http_fuzz/test.sh +++ b/qa/L0_http_fuzz/test.sh @@ -53,7 +53,21 @@ FUZZ_LOG=`pwd`/fuzz.log DATADIR=`pwd`/models SERVER=/opt/tritonserver/bin/tritonserver SERVER_ARGS="--model-repository=$DATADIR" -source ../common/util.sh +source ../common/util.sh + +# Remove this once foobuzz and tornado packages upgrade to work with python 3.10 +# This test tests the server's ability to handle poor input and not the compatibility +# with python 3.10. Python 3.8 is ok to use here. +function_install_python38() { + source ../L0_backend_python/common.sh + install_conda + create_conda_env "3.8" "python-3-8" + + # Install test script dependencies + pip3 install --upgrade wheel setuptools boofuzz==0.3.0 numpy pillow attrdict future grpcio requests gsutil \ + awscli six grpcio-channelz prettytable virtualenv +} +function_install_python38 run_server if [ "$SERVER_PID" == "0" ]; then @@ -65,7 +79,7 @@ fi set +e # Test health -python $FUZZTEST -v >> ${FUZZ_LOG} 2>&1 +python3 $FUZZTEST -v >> ${FUZZ_LOG} 2>&1 if [ $? -ne 0 ]; then cat ${FUZZ_LOG} RET=1 diff --git a/qa/L0_mlflow/test.sh b/qa/L0_mlflow/test.sh index 7d454829a8..2ea7980735 100755 --- a/qa/L0_mlflow/test.sh +++ b/qa/L0_mlflow/test.sh @@ -31,6 +31,16 @@ source ../common/util.sh rm -fr *.log *.json +# The default version of python 3.10.6 included in +# Ubuntu 22.04 installs blinker 1.4. This doesn't +# work with the awscli which we try to install. +# Uninstalling blinker and allowing pip to install blinker 1.6 +# fixes this issue. The alternative to this is to +# install a higher version of python which uses blinker 1.6, +# but it is unknown whether this test should rely on +# the default installation of python. +apt remove -y python3-blinker + RET=0 # Set up MLflow and dependencies used by the test diff --git a/qa/common/gen_jetson_trt_models b/qa/common/gen_jetson_trt_models index f35b634a69..3ba6318e6b 100755 --- a/qa/common/gen_jetson_trt_models +++ b/qa/common/gen_jetson_trt_models @@ -50,7 +50,7 @@ ## ############################################################################ -TRITON_VERSION=${TRITON_VERSION:=23.04} +TRITON_VERSION=${TRITON_VERSION:=23.05} CUDA_DEVICE=${RUNNER_ID:=0} HOST_BUILD_DIR=${HOST_BUILD_DIR:=/tmp} diff --git a/qa/common/gen_qa_custom_ops b/qa/common/gen_qa_custom_ops index a934e3adad..f42d924412 100755 --- a/qa/common/gen_qa_custom_ops +++ b/qa/common/gen_qa_custom_ops @@ -37,7 +37,7 @@ ## ############################################################################ -TRITON_VERSION=${TRITON_VERSION:=23.04} +TRITON_VERSION=${TRITON_VERSION:=23.05} NVIDIA_UPSTREAM_VERSION=${NVIDIA_UPSTREAM_VERSION:=$TRITON_VERSION} TENSORFLOW_IMAGE=${TENSORFLOW_IMAGE:=nvcr.io/nvidia/tensorflow:$NVIDIA_UPSTREAM_VERSION-tf2-py3} PYTORCH_IMAGE=${PYTORCH_IMAGE:=nvcr.io/nvidia/pytorch:$NVIDIA_UPSTREAM_VERSION-py3} @@ -126,7 +126,7 @@ nvidia-smi -L || true nvidia-smi || true set -e python3 $SRCDIR/gen_qa_custom_ops_models.py --libtorch --models_dir=$DESTDIR -cp /root/.cache/torch_extensions/py38_cu121/custom_modulo/custom_modulo.so $DESTDIR/libtorch_modulo/. +cp /root/.cache/torch_extensions/py310_cu121//custom_modulo/custom_modulo.so $DESTDIR/libtorch_modulo/. chmod -R 777 $DESTDIR EOF diff --git a/qa/common/gen_qa_model_repository b/qa/common/gen_qa_model_repository index 934853aed0..b26eb44de8 100755 --- a/qa/common/gen_qa_model_repository +++ b/qa/common/gen_qa_model_repository @@ -48,16 +48,16 @@ ## ############################################################################ -TRITON_VERSION=${TRITON_VERSION:=23.04} +TRITON_VERSION=${TRITON_VERSION:=23.05} # ONNX. Use ONNX_OPSET 0 to use the default for ONNX version -ONNX_VERSION=1.10.1 +ONNX_VERSION=1.13.0 ONNX_OPSET=0 # OPENVINO version -OPENVINO_VERSION=2021.4.582 +OPENVINO_VERSION=2022.3.0 -UBUNTU_IMAGE=${UBUNTU_IMAGE:=ubuntu:20.04} +UBUNTU_IMAGE=${UBUNTU_IMAGE:=ubuntu:22.04} PYTORCH_IMAGE=${PYTORCH_IMAGE:=nvcr.io/nvidia/pytorch:$TRITON_VERSION-py3} TENSORFLOW_IMAGE=${TENSORFLOW_IMAGE:=nvcr.io/nvidia/tensorflow:$TRITON_VERSION-tf2-py3} TENSORRT_IMAGE=${TENSORRT_IMAGE:=nvcr.io/nvidia/tensorrt:$TRITON_VERSION-py3} @@ -204,19 +204,11 @@ apt-get update && \ software-properties-common ln -s /usr/bin/python3 /usr/bin/python -(wget https://apt.repos.intel.com/openvino/2021/GPG-PUB-KEY-INTEL-OPENVINO-2021 && \ - apt-key add GPG-PUB-KEY-INTEL-OPENVINO-2021 && rm GPG-PUB-KEY-INTEL-OPENVINO-2021 && \ - cd /etc/apt/sources.list.d && \ - echo "deb https://apt.repos.intel.com/openvino/2021 all main">intel-openvino-2021.list && \ - apt update && \ - apt install -y intel-openvino-dev-ubuntu20-${OPENVINO_VERSION}) - pip3 install "protobuf<=3.20.1" # TODO: Remove current line DLIS-3838 pip3 install "numpy<=1.23.5" setuptools -PYTHONPATH=/opt/intel/openvino_${OPENVINO_VERSION}/python/python3 -source /opt/intel/openvino_${OPENVINO_VERSION}/bin/setupvars.sh . +pip3 install openvino==$OPENVINO_VERSION # Since variable shape tensors are not allowed, identity models may fail to generate. # TODO Add variable size tensor models after DLIS-2827 adds support for variable shape tensors.