github triton-inference-server/server v2.7.0
Release 2.7.0 corresponding to NGC container 21.02

latest releases: v2.45.0, v2.44.0, v2.43.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.7.0

  • Fix bug in TensorRT backend that could, in rare cases, lead to corruption of output tensors.

  • Fix performance issue in the HTTP/REST client that occurred when the client does not explicitly request specific outputs.

  • In this case all outputs are now returned as binary data where previously they were returned as JSON.

  • Add an example Java and Scala client based on GRPC-generated API.

  • Extend perf_analyzer to be able to work with TFServing and TorchServe.

  • The legacy custom backend API is deprecated and will be removed in a future release. The Triton Backend API should be used as the API for custom backends. The Triton Backend API remains fully supported and that support will continue indefinitely.

  • Model Analyzer parameters and test model configurations can be specified with YAML configuration file.

  • Model Analyzer will report performance metrics for end-to-end latency and CPU memory usage.

  • Refer to the 21.02 column of the Frameworks Support Matrix
    for container image versions that the 21.02 inference server container is based on.

  • Ubuntu 20.04 with January 2021 updates.

Known Issues

  • TensorRT reformat-free I/O is not supported.

  • 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.

  • Observed memory leak in gRPC client library. Suggested workaround: restart client processes periodically or minimize creation of new InferenceServerGrpcClient objects. For more details on the issue in gRPC, please reference: #2517. The memory leak is fixed on master branch by #2533 and the fix will be included in the 21.03 release. If required, the change can be applied to the 21.02 branch and the client library can be rebuilt: https://github.com/triton-inference-server/server/blob/master/docs/client_libraries.md.

Client Libraries and Examples

Ubuntu 20.04 builds of the client libraries and examples are included in this release in the attached v2.7.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.7.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:

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

  • 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.7.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.7.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.