github triton-inference-server/server v2.9.0
Release 2.9.0 corresponding to NGC container 21.04

latest releases: v2.51.0, v2.50.0, v2.49.0...
3 years ago

Triton Inference Server

The Triton Inference Server provides a cloud inferencing solution optimized for both CPUs and GPUs. The server provides an inference service via an HTTP or GRPC endpoint, allowing remote clients to request inferencing for any model being managed by the server. For edge deployments, Triton Server is also available as a shared library with an API that allows the full functionality of the server to be included directly in an application.

What's New In 2.9.0

  • Python backend performance has been increased significantly.

  • Onnx Runtime update to version 1.7.1.

  • Triton Server is now available as a GKE Marketplace Application, see https://github.com/triton-inference-server/server/tree/master/deploy/gke-marketplace-app.

  • The GRPC client libraries now allow compression to be enabled.

  • Ragged batching is now supported for TensorFlow models.

  • For TensorFlow models represented with SavedModel format, it is now possible to choose which graph and signature_def to load. See https://github.com/triton-inference-server/tensorflow_backend/tree/r21.04#parameters.

  • A Helm Chart example is added for AWS. See https://github.com/triton-inference-server/server/tree/master/deploy/aws.

  • The Model Control API is enhanced to provide an option when unloading an ensemble model. The option allows all contained models to be unloaded as part of unloading the ensemble. See https://github.com/triton-inference-server/server/blob/master/docs/protocol/extension_model_repository.md#model-repository-extension.

  • Model reloading using the Model Control API previously resulted in the model being unavailable for a short period of time. This is now fixed so that the model remains available during reloading.

  • Latency statistics and metrics for TensorRT models are fixed. Previously the sum of the "compute input", "compute infer" and "compute output" times accurately indicated the entire compute time but the total time could be incorrectly attributed across the three components. This incorrect attribution is now fixed and all values are now accurate.

  • Error reporting is improved for the Azure, S3 and GCS cloud file system support.

  • Fix trace support for ensembles. The models contained within an ensemble are now traced correctly.

  • Model Analyzer improvements

    • Summary report now includes GPU Power usage
    • Model Analyzer will find the Top N model configuration across multiple models.

Known Issues

  • There are backwards incompatible changes in the example Python client shared-memory support library when that library is used for tensors of type BYTES. The utils.serialize_byte_tensor() and utils.deserialize_byte_tensor() functions now return np.object_ numpy arrays where previously they returned np.bytes_ numpy arrays. Code depending on np.bytes_ must be updated. This change was necessary because the np.bytes_ type removes all trailing zeros from each array element and so binary sequences ending in zero(s) could not be represented with the old behavior. Correct usage of the Python client shared-memory support library is shown in https://github.com/triton-inference-server/server/blob/r21.03/src/clients/python/examples/simple_http_shm_string_client.py.

  • Some versions of Google Kubernetes Engine (GKE) contain a regression in the handling of LD_LIBRARY_PATH that prevents the inference server container from running correctly (see issue 141255952). Use a GKE 1.13 or earlier version or a GKE 1.14.6 or later version to avoid this issue.

Client Libraries and Examples

Ubuntu 20.04 builds of the client libraries and examples are included in this release in the attached v2.9.0_ubuntu2004.clients.tar.gz file. See Getting the Client Libraries for more information on the client libraries and examples. The client SDK is also available as a NGC Container.

Windows Support

An alpha release of Triton for Windows is provided in the attached file: tritonserver2.8.0-win.zip. This is an alpha release so functionality is limited and performance is not optimized. Additional features and improved performance will be provided in future releases. Specifically in this release:

  • TensorRT models are supported. The TensorRT version is 7.2.2.

  • ONNX models are supported by the ONNX Runtime backend. The ONNX Runtime version is 1.6.0. The CPU, CUDA, and TensorRT execution providers are supported. The OpenVINO execution provider is not supported.

  • Only the GRPC endpoint is supported, HTTP/REST is not supported.

  • Prometheus metrics endpoint is not supported.

  • System and CUDA shared memory are not supported.

The following components are required for this release and must be installed on the Windows system:

  • NVIDIA Driver release 455 or later.

  • CUDA 11.1.1

  • cuDNN 8.0.5

  • TensorRT 7.2.2

Jetson Jetpack Support

A release of Triton for JetPack 4.5 (https://developer.nvidia.com/embedded/jetpack) is provided in the attached file: tritonserver2.9.0-jetpack4.5.tgz. This release supports the TensorFlow 2.4.0, TensorFlow 1.15.5, TensorRT 7.1, and Custom backends as well as ensembles. System shared memory is supported on Jetson. GPU metrics, GCS storage, S3 storage and Azure storage are not supported.

The tar file contains the Triton server executable and shared libraries and also the C++ and Python client libraries and examples.

Installation and Usage

The following dependencies must be installed before running Triton.

apt-get update && \
    apt-get install -y --no-install-recommends \
        software-properties-common \
        autoconf \
        automake \
        build-essential \
        cmake \
        git \
        libb64-dev \
        libre2-dev \
        libssl-dev \
        libtool \
        libboost-dev \
        libcurl4-openssl-dev \
        rapidjson-dev \
        patchelf \
        zlib1g-dev

To run the clients the following dependencies must be installed.

apt-get install -y --no-install-recommends \
        curl \
        libopencv-dev=3.2.0+dfsg-4ubuntu0.1 \
        libopencv-core-dev=3.2.0+dfsg-4ubuntu0.1 \
        pkg-config \
        python3 \
        python3-pip \
        python3-dev

pip3 install --upgrade wheel setuptools cython && \
pip3 install --upgrade grpcio-tools numpy future

The Python wheel for the python client library is present in the tar file and can be installed by running the following command:

python3 -m pip install --upgrade clients/python/tritonclient-2.9.0-py3-none-linux_aarch64.whl[all]

On jetson, the backend directory needs to be explicitly set with the --backend-directory flag. Triton also defaults to using TensorFlow 1.x and a version string is required to specify TensorFlow 2.x.

  tritonserver --model-repository=/path/to/model_repo --backend-directory=/path/to/tritonserver/backends \
         --backend-config=tensorflow,version=2

Don't miss a new server release

NewReleases is sending notifications on new releases.