Skip to content

Releases: triton-inference-server/server

Release 2.21.0 corresponding to NGC container 22.04

29 Apr 00:31
Compare
Choose a tag to compare

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

  • Users can now specify a customized temp directory with the --tmp-dir argument to build.py during the container build.

  • Users can now send a raw binary request to eliminate the need for the specification of inference header.

  • Ensembles now recognize optional inputs.

  • Users can now add custom metrics to the existing Triton metrics endpoint in their custom backends and applications using the Triton C API. Documentation can be found here.

  • Official support for multiple cloud repositories. This includes the same as well as different cloud storage providers i.e. a single instance of Triton can load models from two S3 buckets, two GCS buckets and two Azure Storage containers.

  • ONNX Runtime backend now uses execution providers when available when autocomplete is enabled. This fixes the old behavior where it would always use the CPU execution provider.

  • The build.py and compose.py now support PyTorch and TensorFlow 1 backends for the CPU-only builds.

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

Known Issues

  • Triton PIP wheels for ARM SBSA are not available from PyPI and pip will install an incorrect Jetson version of Triton for ARM SBSA.

    The correct wheel file can be pulled directly from the ARM SBSA SDK image and manually installed.

  • Traced models in PyTorch seem to create overflows when int8 tensor values are transformed to int32 on the GPU. See pytorch/pytorch#66930.

  • Triton cannot retrieve GPU metrics with MIG-enabled GPU devices (A100 and A30)

  • Triton metrics may not work if the host machine is running a separate DCGM agent, either on bare-metal or in a container

  • Running a PyTorch TorchScript model using the PyTorch backend, where multiple instances of a model are configured can lead to a slowdown in model execution due to the following PyTorch issue: pytorch/pytorch#27902

  • Starting in 22.02, the Triton container (which uses the 22.04 PyTorch container) will report an error during model loading in the PyTorch backend when using scripted models that were exported in the legacy format (using our 19.09 or previous PyTorch NGC containers corresponding to PyTorch 1.2.0 or previous releases). You will need to re-export the model using a recent version of PyTorch to be able to load the model successfully in Triton.

  • To best ensure the security and reliability of our RPM and Debian package repositories, NVIDIA is updating and rotating the signing keys used by the apt, dnf/yum, and zypper package managers beginning April 27, 2022.
    Triton r22.04 and prior release branches have not updated these repository signing keys. Due to this users should expect package management errors when attempting to access or install packages from CUDA repositories.
    Please follow these recommendations to mitigate the issue.
    Please update your branches prior to building to include the updated signing key(s). These changes are captured in this commit.

Client Libraries and Examples

Ubuntu 20.04 builds of the client libraries and examples are included in this release in the attached v2.21.0_ubuntu2004.clients.tar.gz file. The SDK is also available for as an Ubuntu 20.04 based NGC Container. The SDK container includes the client libraries and examples, Performance Analyzer and Model Analyzer. Some components are also available in the tritonclient pip package. See Getting the Client Libraries for more information on each of these options.

For windows, the client libraries and some examples are available in the attached tritonserver2.21.0-sdk-win.zip file.

Windows Support

A beta release of Triton for Windows is provided in the attached file: tritonserver2.21.0-win.zip. This is a beta 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:

  • HTTP/REST and GRPC endpoints are supported.

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

  • OpenVINO models are supported. The OpenVINO version is 2021.4.

  • Prometheus metrics endpoint is not supported.

  • System and CUDA shared memory are not supported.

To use the Windows version of Triton, you must install all the necessary dependencies on your Windows system. These dependencies are available in the Dockerfile.win10.min. The Dockerfile includes the following CUDA-related components:

  • CUDA 11.5.0

  • cuDNN 8.3.2.44

  • TensorRT 8.2.2.1

Jetson Jetpack Support

A release of Triton for JetPack 5.0 Developer Preview is provided in the attached tar file: tritonserver2.21.0-jetpack5.0.tgz.

  • This release supports TensorFlow 2.8.0, TensorFlow 1.15.5, TensorRT 8.4.0.9, Onnx Runtime 1.10.0, PyTorch 1.12.0, Python 3.8 and as well as ensembles.
  • Onnx Runtime backend does not support the OpenVino and TensorRT execution providers. The CUDA execution provider is in Beta.
  • System shared memory is supported on Jetson. CUDA shared memory is not supported.
  • 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. For more information on how to install and use Triton on JetPack refer to jetson.md.

The 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.21.0-py3-none-manylinux2014_aarch64.whl[all]

Release 2.20.0 corresponding to NGC container 22.03

29 Mar 21:27
e8d7325
Compare
Choose a tag to compare

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

Known Issues

  • Triton PIP wheels for ARM SBSA are not available from PyPI and pip will install an incorrect Jetson version of Triton for ARM SBSA. The correct wheel file can be pulled directly from the ARM SBSA SDK image and manually installed.

  • Traced models in PyTorch seem to create overflows when int8 tensor values are transformed to int32 on the GPU. See pytorch/pytorch#66930.

  • Triton cannot retrieve GPU metrics with MIG-enabled GPU devices (A100 and A30)

  • Triton metrics may not work if the host machine is running a separate DCGM agent, either on bare-metal or in a container

  • Running a PyTorch TorchScript model using the PyTorch backend, where multiple instances of a model are configured can lead to a slowdown in model execution due to the following PyTorch issue: pytorch/pytorch#27902

  • Starting in 22.03, the Triton container (which uses the 22.03 PyTorch container) will report an error during model loading in the PyTorch backend when using scripted models that were exported in the legacy format (using our 19.09 or previous PyTorch NGC containers corresponding to PyTorch 1.2.0 or previous releases). You will need to re-export the model using a recent version of PyTorch to be able to load the model successfully in Triton.

Client Libraries and Examples

Ubuntu 20.04 builds of the client libraries and examples are included in this release in the attached v2.20.0_ubuntu2004.clients.tar.gz file. The SDK is also available for as an Ubuntu 20.04 based NGC Container. The SDK container includes the client libraries and examples, Performance Analyzer and Model Analyzer. Some components are also available in the tritonclient pip package. See Getting the Client Libraries for more information on each of these options.

For windows, the client libraries and some examples are available in the attached tritonserver2.20.0-sdk-win.zip file.

Windows Support

A beta release of Triton for Windows is provided in the attached file: tritonserver2.20.0-win.zip. This is a beta 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:

  • HTTP/REST and GRPC endpoints are supported.

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

  • OpenVINO models are supported. The OpenVINO version is 2021.4.

  • Prometheus metrics endpoint is not supported.

  • System and CUDA shared memory are not supported.

To use the Windows version of Triton, you must install all the necessary dependencies on your Windows system. These dependencies are available in the Dockerfile.win10.min. The Dockerfile includes the following CUDA-related components:

  • CUDA 11.5.0

  • cuDNN 8.3.2.44

  • TensorRT 8.2.2.1

Jetson Jetpack Support

NOTE: The Jetson tritonserver2.20.0-jetpack5.0.tgz file will be added at a later date.

A release of Triton for JetPack 5.0 EA will be provided in the attached tar file: tritonserver2.20.0-jetpack5.0.tgz. It will be uploaded once JetPack 5.0 is released publicly.

  • This release supports TensorFlow 2.8.0, TensorFlow 1.15.5, TensorRT 8.4.0.6, Onnx Runtime 1.10.0, PyTorch 1.12.0, Python 3.8 and as well as ensembles.
  • Onnx Runtime backend does not support the OpenVino and TensorRT execution providers. The CUDA execution provider is in Beta.
  • System shared memory is supported on Jetson. CUDA shared memory is not supported.
  • 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. For more information on how to install and use Triton on JetPack refer to jetson.md.

The 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.20.0-py3-none-manylinux2014_aarch64.whl[all]

Release 2.19.0 corresponding to NGC container 22.02

25 Feb 17:19
Compare
Choose a tag to compare

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

Known Issues

  • Starting in 22.02, the Triton container (which uses the 22.02 PyTorch container) will report an error in the PyTorch backend when using scripted models that were exported in the legacy format (using our 19.09 or previous PyTorch NGC containers corresponding to PyTorch 1.2.0 or previous releases). To avoid this error, you will need to re-export the model using a recent version of PyTorch to be able to load the model successfully in Triton.

  • Addition of cache metrics may affect 3rd party tools/calculations for inference/compute latencies in models with caching enabled not accounting for cache hit requests that don't require inference.

  • Triton PIP wheels for ARM SBSA are not available from PyPI and pip will install an incorrect Jetson version of Triton for ARM SBSA. The correct wheel file can be pulled directly from the ARM SBSA SDK image and manually installed.

  • Traced models in PyTorch seem to create overflows when int8 tensor values are transformed to int32 on the GPU. See pytorch/pytorch#66930.

  • Triton cannot retrieve GPU metrics with MIG-enabled GPU devices (A100 and A30)

  • Triton metrics may not work if the host machine is running a separate DCGM agent, either on bare-metal or in a container

  • Running a PyTorch TorchScript model using the PyTorch backend, where multiple instances of a model are configured can lead to a slowdown in model execution due to the following PyTorch issue: pytorch/pytorch#27902

  • Starting in 22.02, the Triton container (which uses the 22.02 PyTorch container) will report an error during model loading in the PyTorch backend when using scripted models that were exported in the legacy format (using our 19.09 or previous PyTorch NGC containers corresponding to PyTorch 1.2.0 or previous releases). You will need to re-export the model using a recent version of PyTorch to be able to load the model successfully in Triton.

Client Libraries and Examples

Ubuntu 20.04 builds of the client libraries and examples are included in this release in the attached v2.19.0_ubuntu2004.clients.tar.gz file. The SDK is also available for as an Ubuntu 20.04 based NGC Container. The SDK container includes the client libraries and examples, Performance Analyzer and Model Analyzer. Some components are also available in the tritonclient pip package. See Getting the Client Libraries for more information on each of these options.

For windows, the client libraries and some examples are available in the attached tritonserver2.19.0-sdk-win.zip file.

Windows Support

A beta release of Triton for Windows is provided in the attached file: tritonserver2.19.0-win.zip. This is a beta 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:

  • HTTP/REST and GRPC endpoints are supported.

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

  • OpenVINO models are supported. The OpenVINO version is 2021.2.

  • Prometheus metrics endpoint is not supported.

  • System and CUDA shared memory are not supported.

To use the Windows version of Triton, you must install all the necessary dependencies on your Windows system. These dependencies are available in the Dockerfile.win10.min. The Dockerfile includes the following CUDA-related components:

  • CUDA 11.5.0

  • cuDNN 8.3.2.44

  • TensorRT 8.2.2.1

Jetson Jetpack Support

A release of Triton for JetPack 4.6.1 is provided in the attached tar file: tritonserver2.19.0-jetpack4.6.1.tgz.

  • This release supports TensorFlow 2.7.0, TensorFlow 1.15.5, TensorRT 8.2.1.8, Onnx Runtime 1.10.0, PyTorch 1.11.0, Python 3.6 and as well as ensembles.
  • Onnx Runtime backend does not support the OpenVino execution provider. The TensorRT execution provider however is supported.
  • System shared memory is supported on Jetson. CUDA shared memory is not supported.
  • 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. For more information on how to install and use Triton on JetPack refer to jetson.md.

The 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.19.0-py3-none-manylinux2014_aarch64.whl[all]

Release 2.18.0 corresponding to NGC container 22.01

31 Jan 21:03
Compare
Choose a tag to compare

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

  • Triton CPU-only build now supports TensorFlow2 backend for Linux x86.

  • Implicit state management can be used for ONNX Runtime and TensorRT backends.

  • State initialization from a constant is now supported in Implicit State management.

  • PyTorch and TensorFlow models now support batching on Inferentia.

  • PyTorch and Python backends are now supported on Jetson.

  • ARM Support has been added for the Performance Analyzer and Model Analyzer.

Known Issues

  • Triton PIP wheels for ARM SBSA are not available from PyPI and pip will install an incorrect Jetson version of Triton for ARM SBSA. The correct wheel file can be pulled directly from the ARM SBSA SDK image and manually installed.

  • Traced models in PyTorch seem to create overflows when int8 tensor values are transformed to int32 on the GPU. See pytorch/pytorch#66930.

  • Triton cannot retrieve GPU metrics with MIG-enabled GPU devices (A100 and A30)

  • Triton metrics may not work if the host machine is running a separate DCGM agent, either on bare-metal or in a container

  • Running a PyTorch TorchScript model using the PyTorch backend, where multiple instances of a model are configured can lead to a slowdown in model execution due to the following PyTorch issue: pytorch/pytorch#27902

Client Libraries and Examples

Ubuntu 20.04 builds of the client libraries and examples are included in this release in the attached v2.18.0_ubuntu2004.clients.tar.gz file. The SDK is also available for as an Ubuntu 20.04 based NGC Container. The SDK container includes the client libraries and examples, Performance Analyzer and Model Analyzer. Some components are also available in the tritonclient pip package. See Getting the Client Libraries for more information on each of these options.

For windows, the client libraries and some examples are available in the attached tritonserver2.18.0-sdk-win.zip file.

Windows Support

A beta release of Triton for Windows is provided in the attached file: tritonserver2.18.0-win.zip. This is a beta 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:

  • HTTP/REST and GRPC endpoints are supported.

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

  • OpenVINO models are supported. The OpenVINO version is 2021.2.

  • Prometheus metrics endpoint is not supported.

  • System and CUDA shared memory are not supported.

To use the Windows version of Triton, you must install all the necessary dependencies on your Windows system. These dependencies are available in the Dockerfile.win10.min. The Dockerfile includes the following CUDA-related components:

  • CUDA 11.5.0

  • cuDNN 8.3.2.44

  • TensorRT 8.2.2.1

Jetson Jetpack Support

NOTE: Jetson release of Triton is skipped for 2.18.0 (22.01) and the next release will be 2.19.0 (22.02).

Release 2.17.0 corresponding to NGC container 21.12

21 Dec 06:34
Compare
Choose a tag to compare

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

  • Improved Inferentia support to use Neuron Runtime 2.x and multiple instances.

  • Models from MLflow can now be deployed to Triton with the MLflow plugin.

  • The preview release of TorchTRT models is now supported. PyTorch models optimized using TensorRT can now be loaded into Triton in the same way as regular PyTorch (TorchScript) models.

  • At the end of each Model Analyzer phase, an example command line will be
    printed to run the next phase.

  • ONNX Runtime backend updated to ONNX Runtime version 1.10.0 in both Ubuntu and Window versions of Triton.

Known Issues

  • There was a bug in the GRPC protobuf implementation that was resolved by triton-inference-server/common#34. If the client code uses the 'byte_contents' field, the code must be updated to instead use 'bytes_contents'.

  • Triton PIP wheels for ARM SBSA are not available from PyPI and pip will install an incorrect Jetson version of Triton for ARM SBSA. The correct wheel file can be pulled directly from the ARM SBSA SDK image and manually installed.

  • Traced models in PyTorch seem to create overflows when int8 tensor values are transformed to int32 on the GPU. See pytorch/pytorch#66930.

  • Triton’s TensorRT support depends on the input-consumed feature of TensorRT. In some rare cases using TensorRT 8.0 and earlier versions, the input-consumed event fires earlier than expected, causing Triton to overwrite input tensors while they are still in use and leading to corrupt input data being used for inference. This situation occurs when the inputs feed directly into a TensorRT layer that is optimized into a ForeignNode in the builder log. If you encounter accuracy issues with your TensorRT model, you can work-around the issue by enabling the output_copy_stream option in your model’s configuration (https://github.com/triton-inference-server/common/blob/main/protobuf/model_config.proto#L816)

  • Triton cannot retrieve GPU metrics with MIG-enabled GPU devices (A100 and A30)

  • Triton metrics may not work if the host machine is running a separate DCGM agent, either on bare-metal or in a container

  • Running a PyTorch TorchScript model using the PyTorch backend, where multiple instances of a model are configured can lead to a slowdown in model execution due to the following PyTorch issue: pytorch/pytorch#27902

Client Libraries and Examples

Ubuntu 20.04 builds of the client libraries and examples are included in this release in the attached v2.17.0_ubuntu2004.clients.tar.gz file. The SDK is also available for as an Ubuntu 20.04 based NGC Container. The SDK container includes the client libraries and examples, Performance Analyzer and Model Analyzer. Some components are also available in the tritonclient pip package. See Getting the Client Libraries for more information on each of these options.

For windows, the client libraries and some examples are available in the attached tritonserver2.17.0-sdk-win.zip file.

Windows Support

An alpha release of Triton for Windows is provided in the attached file: tritonserver2.17.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:

  • HTTP/REST and GRPC endpoints are now supported.

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

  • OpenVINO models are supported. The OpenVINO version is 2021.2.

  • Prometheus metrics endpoint is not supported.

  • System and CUDA shared memory are not supported.

To use the Windows version of Triton, you must install all the necessary dependencies on your Windows system. These dependencies are available in the Dockerfile.win10.min. The Dockerfile includes the following CUDA-related components:

  • NVIDIA Driver release 470 or later.

  • CUDA 11.4.2

  • cuDNN 8.2.4.15

  • TensorRT 8.0.3.4

Jetson Jetpack Support

A release of Triton for JetPack 4.6 (https://developer.nvidia.com/embedded/jetpack) is provided in the attached tar file: tritonserver2.17.0-jetpack4.6.tgz.

  • This release supports TensorFlow 2.6.0, TensorFlow 1.15.5, TensorRT 8.0.1.6, Onnx Runtime 1.10.0 and as well as ensembles.
  • For the Onnx Runtime backend the OpenVino execution provider is not supported but the TensorRT execution provider is supported.
  • 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 building / 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 \
        libopenblas-dev \
        rapidjson-dev \
        patchelf \
        zlib1g-dev

Note: When building Triton on Jetson, you will require a newer version of cmake. We recommend using cmake 3.21.0. Below is a script to upgrade your cmake version to 3.21.0. You can use cmake 3.18.4 if you are not enabling OnnxRuntime support.

apt remove cmake
wget https://cmake.org/files/v3.21/cmake-3.21.0.tar.gz
tar -xf cmake-3.21.0.tar.gz
(cd cmake-3.21.0 && ./configure && make install)

Note: Seeing a core dump when using numpy 1.19.5 on Jetson is a known issue. We recommend using numpy version 1.19.4 or earlier to work around this issue.

To build / run the Triton client libraries and examples on Jetson, the following dependencies must be installed.

apt-get install -y --no-install-recommends \
        curl \
        pkg-config \
        python3 \
        python3-pip \
        python3-dev

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

Note: OpenCV 4.1.1 is installed as a part of JetPack 4.6. It is one of the dependencies for the client build.

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.17.0-py3-none-manylinux2014_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

Release 2.16.0 corresponding to NGC container 21.11

19 Nov 23:09
Compare
Choose a tag to compare

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

Known Issues

  • Traced models in PyTorch seem to create overflows when int8 tensor values are transformed to int32 on the GPU. See pytorch/pytorch#66930.

  • Triton’s TensorRT support depends on the input-consumed feature of TensorRT. In some rare cases using TensorRT 8.0 and earlier versions, the input-consumed event fires earlier than expected, causing Triton to overwrite input tensors while they are still in use and leading to corrupt input data being used for inference. This situation occurs when the inputs feed directly into a TensorRT layer that is optimized into a ForeignNode in the builder log. If you encounter accuracy issues with your TensorRT model, you can work-around the issue by enabling the output_copy_stream option in your model’s configuration (https://github.com/triton-inference-server/common/blob/main/protobuf/model_config.proto#L816)

  • Triton cannot retrieve GPU metrics with MIG-enabled GPU devices (A100 and A30)

  • Triton metrics may not work if the host machine is running a separate DCGM agent, either on bare-metal or in a container

  • There is a known issue in TensorRT 8.0 regarding accuracy for a certain case of int8 inferencing on A40 and similar GPUs. The version of TF-TRT in TF2 21.09 includes a feature that works around this issue, but TF1 21.08 does not include that feature and therefore Triton users may experience the accuracy drop for a small subset of model/data type/batch size combinations on A40 when TF-TRT is used through the TF1 backend. This will be fixed in the next version of TensorRT.

  • Running a PyTorch TorchScript model using the PyTorch backend, where multiple instances of a model are configured can lead to a slowdown in model execution due to the following PyTorch issue: pytorch/pytorch#27902

Client Libraries and Examples

Ubuntu 20.04 builds of the client libraries and examples are included in this release in the attached v2.16.0_ubuntu2004.clients.tar.gz file. The SDK is also available for as an Ubuntu 20.04 based NGC Container. The SDK container includes the client libraries and examples, Performance Analyzer and Model Analyzer. Some components are also available in the tritonclient pip package. See Getting the Client Libraries for more information on each of these options.

For windows, the client libraries and some examples are available in the attached tritonserver2.16.0-sdk-win.zip file.

Windows Support

An alpha release of Triton for Windows is provided in the attached file: tritonserver2.16.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:

  • HTTP/REST and GRPC endpoints are now supported.

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

  • OpenVINO models are supported. The OpenVINO version is 2021.2.

  • 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 470 or later.

  • CUDA 11.4.2

  • cuDNN 8.2.4.15

  • TensorRT 8.0.3.4

Jetson Jetpack Support

A release of Triton for JetPack 4.6 (https://developer.nvidia.com/embedded/jetpack) is provided in the attached tar file: tritonserver2.16.0-jetpack4.6.tgz.

  • This release supports the TensorFlow 2.6.0, TensorFlow 1.15.5, TensorRT 8.0.1.6, OnnxRuntime 1.8.1 and as well as ensembles.
  • For the OnnxRuntime backend the OpenVino execution provider is not supported but the TensorRT execution provider is supported.
  • 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 building / 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 \
        libopenblas-dev \
        rapidjson-dev \
        patchelf \
        zlib1g-dev

Note: When building Triton on Jetson, you will require a newer version of cmake. We recommend using cmake 3.21.0. Below is a script to upgrade your cmake version to 3.21.0. You can use cmake 3.18.4 if you are not enabling OnnxRuntime support.

apt remove cmake
wget https://cmake.org/files/v3.21/cmake-3.21.0.tar.gz
tar -xf cmake-3.21.0.tar.gz
(cd cmake-3.21.0 && ./configure && make install)

Note: Seeing a core dump when using numpy 1.19.5 on Jetson is a known issue. We recommend using numpy version 1.19.4 or earlier to work around this issue.

To build / run the Triton client libraries and examples on Jetson, the following dependencies must be installed.

apt-get install -y --no-install-recommends \
        curl \
        pkg-config \
        python3 \
        python3-pip \
        python3-dev

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

Note: OpenCV 4.1.1 is installed as a part of JetPack 4.6. It is one of the dependencies for the client build.

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.16.0-py3-none-manylinux2014_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

Release 2.15.0 corresponding to NGC container 21.10

28 Oct 00:17
Compare
Choose a tag to compare

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

  • Rate limiter is now available and manages the rate at which requests are scheduled on model instances by Triton.

  • A beta version of Triton is available for ARM SBSA.

  • Windows Triton build now supports HTTP protocol.

  • Triton added support for caching responses to inference requests.

  • Sequence IDs can now accept strings.

  • Container composer tool can generate CPU-only Triton containers.

Known Issues

  • Traced models in PyTorch seem to create overflows when int8 tensor values are transformed to int32 on the GPU. See pytorch/pytorch#66930.

  • Triton’s TensorRT support depends on the input-consumed feature of TensorRT. In some rare cases using TensorRT 8.0 and earlier versions, the input-consumed event fires earlier than expected, causing Triton to overwrite input tensors while they are still in use and leading to corrupt input data being used for inference. This situation occurs when the inputs feed directly into a TensorRT layer that is optimized into a ForeignNode in the builder log. If you encounter accuracy issues with your TensorRT model, you can work-around the issue by enabling the output_copy_stream option in your model’s configuration (https://github.com/triton-inference-server/common/blob/main/protobuf/model_config.proto#L816)

  • Triton cannot retrieve GPU metrics with MIG-enabled GPU devices (A100 and A30)

  • Triton metrics may not work if the host machine is running a separate DCGM agent, either on bare-metal or in a container

  • There is a known issue in TensorRT 8.0 regarding accuracy for a certain case of int8 inferencing on A40 and similar GPUs. The version of TF-TRT in TF2 21.09 includes a feature that works around this issue, but TF1 21.08 does not include that feature and therefore Triton users may experience the accuracy drop for a small subset of model/data type/batch size combinations on A40 when TF-TRT is used through the TF1 backend. This will be fixed in the next version of TensorRT.

  • Running a PyTorch TorchScript model using the PyTorch backend, where multiple instances of a model are configured can lead to a slowdown in model execution due to the following PyTorch issue: pytorch/pytorch#27902

Client Libraries and Examples

Ubuntu 20.04 builds of the client libraries and examples are included in this release in the attached v2.15.0_ubuntu2004.clients.tar.gz file. The SDK is also available for as an Ubuntu 20.04 based NGC Container. The SDK container includes the client libraries and examples, Performance Analyzer and Model Analyzer. Some components are also available in the tritonclient pip package. See Getting the Client Libraries for more information on each of these options.

For windows, the client libraries and some examples are available in the attached tritonserver2.15.0-sdk-win.zip file.

Windows Support

An alpha release of Triton for Windows is provided in the attached file: tritonserver2.15.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:

  • HTTP/REST and GRPC endpoints are now supported.

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

  • OpenVINO models are supported. The OpenVINO version is 2021.2.

  • 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 470 or later.

  • CUDA 11.4.2

  • cuDNN 8.2.4.15

  • TensorRT 8.0.3.4

Jetson Jetpack Support

A release of Triton for JetPack 4.6 (https://developer.nvidia.com/embedded/jetpack) is provided in the attached tar file: tritonserver2.15.0-jetpack4.6.tgz.

  • This release supports the TensorFlow 2.6.0, TensorFlow 1.15.5, TensorRT 8.0.1.6, OnnxRuntime 1.8.1 and as well as ensembles.
  • For the OnnxRuntime backend the OpenVino execution provider is not supported but the TensorRT execution provider is supported.
  • System shared memory is supported on Jetson.
  • GPU metrics, GCS storage, S3 storage and Azure storage are not supported.
  • For this release the TF1 corresponds to the version from the 21.10 NGC TF container but TF2 corresponds to the version from the 21.09 NGC container.

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 building / 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 \
        libopenblas-dev \
        rapidjson-dev \
        patchelf \
        zlib1g-dev

Note: When building Triton on Jetson, you will require a newer version of cmake. We recommend using cmake 3.21.0. Below is a script to upgrade your cmake version to 3.21.0. You can use cmake 3.18.4 if you are not enabling OnnxRuntime support.

apt remove cmake
wget https://cmake.org/files/v3.21/cmake-3.21.0.tar.gz
tar -xf cmake-3.21.0.tar.gz
(cd cmake-3.21.0 && ./configure && make install)

Note: Seeing a core dump when using numpy 1.19.5 on Jetson is a known issue. We recommend using numpy version 1.19.4 or earlier to work around this issue.

To build / run the Triton client libraries and examples on Jetson, the following dependencies must be installed.

apt-get install -y --no-install-recommends \
        curl \
        pkg-config \
        python3 \
        python3-pip \
        python3-dev

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

Note: OpenCV 4.1.1 is installed as a part of JetPack 4.6. It is one of the dependencies for the client build.

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.15.0-py3-none-manylinux2014_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

Release 2.14.0 corresponding to NGC container 21.09

29 Sep 21:27
Compare
Choose a tag to compare

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

  • Full-featured, Beta version of Business Logic Scripting (BLS) released.

  • Beta version for basic JAVA Client released. See https://github.com/triton-inference-server/client/tree/r21.09/src/java for a list of supported features.

  • A stack trace is now printed when Triton crashes to aid in debugging.

  • The Triton Client SDK wheel file is now available directly from PyPI for both Ubuntu and Windows.

  • The TensorRT backend is now an optional part of Triton just like all the other backends. The compose utility can be used to create a Triton container that does not contain the TensorRT backend.

  • Model Analyzer can profile with perf_analyzer's C-API.

  • Model Analyzer can use the CUDA Device Index in addition to the GPU UUID in the --gpus flag.

Known Issues

  • Triton’s TensorRT support depends on the input-consumed feature of TensorRT. In some rare cases using TensorRT 8.0 and earlier versions, the input-consumed event fires earlier than expected, causing Triton to overwrite input tensors while they are still in use and leading to corrupt input data being used for inference. This situation occurs when the inputs feed directly into a TensorRT layer that is optimized into a ForeignNode in the builder log. If you encounter accuracy issues with your TensorRT model, you can work-around the issue by enabling the output_copy_stream option in your model’s configuration (https://github.com/triton-inference-server/common/blob/main/protobuf/model_config.proto#L816)

  • Triton cannot retrieve GPU metrics with MIG-enabled GPU devices (A100 and A30)

  • Triton metrics may not work if the host machine is running a separate DCGM agent, either on bare-metal or in a container

  • There is a known issue in TensorRT 8.0 regarding accuracy for a certain case of int8 inferencing on A40 and similar GPUs. The version of TF-TRT in TF2 21.09 includes a feature that works around this issue, but TF1 21.08 does not include that feature and therefore Triton users may experience the accuracy drop for a small subset of model/data type/batch size combinations on A40 when TF-TRT is used through the TF1 backend. This will be fixed in the next version of TensorRT.

  • Running a PyTorch TorchScript model using the PyTorch backend, where multiple instances of a model are configured can lead to a slowdown in model execution due to the following PyTorch issue: pytorch/pytorch#27902

Client Libraries and Examples

Ubuntu 20.04 builds of the client libraries and examples are included in this release in the attached v2.14.0_ubuntu2004.clients.tar.gz file. The SDK is also available for as an Ubuntu 20.04 based NGC Container. The SDK container includes the client libraries and examples, Performance Analyzer and Model Analyzer. Some components are also available in the tritonclient pip package. See Getting the Client Libraries for more information on each of these options.

For windows, the client libraries and some examples are available in the attached tritonserver2.14.0-sdk-win.zip file.

Windows Support

An alpha release of Triton for Windows is provided in the attached file: tritonserver2.14.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 8.0.1.6.

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

  • OpenVINO models are supported. The OpenVINO version is 2021.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 470 or later.

  • CUDA 11.4.1

  • cuDNN 8.2.2.26

  • TensorRT 8.0.1.6

Jetson Jetpack Support

A release of Triton for JetPack 4.6 (https://developer.nvidia.com/embedded/jetpack) is provided in the attached tar file: tritonserver2.14.0-jetpack4.6.tgz.

  • This release supports the TensorFlow 2.6.0, TensorFlow 1.15.5, TensorRT 8.0.1.6, OnnxRuntime 1.8.1 and as well as ensembles.
  • For the OnnxRuntime backend the OpenVino execution provider is not supported but the TensorRT execution provider is supported.
  • 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 building / 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 \
        libopenblas-dev \
        rapidjson-dev \
        patchelf \
        zlib1g-dev

Note: When building Triton on Jetson, you will require a newer version of cmake. We recommend using cmake 3.21.0. Below is a script to upgrade your cmake version to 3.21.0. You can use cmake 3.18.4 if you are not enabling OnnxRuntime support.

apt remove cmake
wget https://cmake.org/files/v3.21/cmake-3.21.0.tar.gz
tar -xf cmake-3.21.0.tar.gz
(cd cmake-3.21.0 && ./configure && make install)

Note: Seeing a core dump when using numpy 1.19.5 on Jetson is a known issue. We recommend using numpy version 1.19.4 or earlier to work around this issue.

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==1.19.4 future attrdict

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

Release 2.13.0 corresponding to NGC container 21.08

28 Aug 03:42
48cc33c
Compare
Choose a tag to compare

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

  • Initial Beta release for Business Logic Scripting, a new set of utility functions that allow the execution of inference requests on other models being served by Triton as part of executing a Python model.

  • Release new Container Composition Utility which can be used to create custom Triton containers with specific backends and repository agents.

  • Starting in 21.08, Triton will release two new containers on NGC.

    • nvcr.io/nvidia/tritonserver:21.08-tf-python-py3 - GPU enabled Triton server with only the TensorFlow 2.x and Python backends.
    • nvcr.io/nvidia/tritonserver:21.08-pyt-python-py3 - GPU enabled Triton server with only the PyTorch and Python backends.
  • Added Model Analyzer support for models with custom operations.

Known Issues

  • Loading models in ONNX Runtime on the Windows build of Triton may be slow due to the JIT compiler being invoked for newer CUDA architectures. For more information, refer to triton-inference-server/onnxruntime_backend#58

  • There is a known issue in TensorRT 8.0 regarding accuracy for a certain case of int8 inferencing on A40 and similar GPUs. The version of TF-TRT in TF2 21.08 includes a feature that works around this issue, but TF1 21.08 does not include that feature and therefore Triton users may experience the accuracy drop for a small subset of model/data type/batch size combinations on A40 when TF-TRT is used through the TF1 backend. This will be fixed in the next version of TensorRT.

  • Running a PyTorch TorchScript model using the PyTorch backend, where multiple instances of a model are configured can lead to a slowdown in model execution due to the following PyTorch issue: pytorch/pytorch#27902

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

Client Libraries and Examples

Ubuntu 20.04 builds of the client libraries and examples are included in this release in the attached v2.13.0_ubuntu2004.clients.tar.gz file. The SDK is also available for as an Ubuntu 20.04 based NGC Container. The SDK container includes the client libraries and examples, Performance Analyzer and Model Analyzer. Some components are also available in the tritonclient pip package. See Getting the Client Libraries for more information on each of these options.

For windows, the client libraries and some examples are available in the attached tritonserver2.13.0-sdk-win.zip file.

Windows Support

An alpha release of Triton for Windows is provided in the attached file: tritonserver2.13.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 8.0.1.6.

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

  • OpenVINO models are supported. The OpenVINO version is 2021.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 470 or later.

  • CUDA 11.4.0

  • cuDNN 8.2.2.26

  • TensorRT 8.0.1.6

Jetson Jetpack Support

A release of Triton for JetPack 4.6 (https://developer.nvidia.com/embedded/jetpack) is provided in the attached file: tritonserver2.13.0-jetpack4.6.tgz. This release supports the TensorFlow 2.5.0, TensorFlow 1.15.5, TensorRT 8.0.1, OnnxRuntime 1.8.1 and as well as ensembles. For the OnnxRuntime backend the OpenVino execution provider is not supported but the TensorRT execution provider is supported. 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 \
        libopenblas-dev \
        rapidjson-dev \
        patchelf \
        zlib1g-dev

Note: When building Triton on Jetson, you will require a newer version of cmake. We recommend using cmake 3.18.4. Below is a script to upgrade your cmake version to 3.18.4.

apt remove cmake
wget https://cmake.org/files/v3.18/cmake-3.18.4.tar.gz
tar -xf cmake-3.18.4.tar.gz
(cd cmake-3.18.4 && ./configure && sudo make install)

Note: Seeing a core dump when using numpy 1.19.5 on Jetson is a known issue. We recommend using numpy version 1.19.4 or earlier to work around this issue.

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==1.19.4 future attrdict

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

Release 2.12.0 corresponding to NGC container 21.07

27 Jul 19:00
Compare
Choose a tag to compare

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

  • Added support for CPU in RAPIDS FIL Backend.

  • Inference requests using the C API are now allowed to provide multiple copies of an input tensor in different memories. Triton will choose the most performant copy to use depending on where the inference request is executed.

  • For ONNX models using TensorRT acceleration, the tensorrt_accelerator option in the model configuration can now specify precision and workspace size. https://github.com/triton-inference-server/server/blob/main/docs/optimization.md#onnx-with-tensorrt-optimization

  • Model Analyzer added an offline mode, which prioritizes throughput over latency for offline inferencing scenarios. A new set of reports and graphs are created to better analyze the offline use case.

Known Issues

  • The 21.07 release includes libsystemd and libudev versions that have a known vulnerability that was discovered late in our QA process. See CVE-2021-33910 for details. This will be fixed in the next release.

  • ONNX Runtime TRT support was removed due to incompatibility with TensorRT 8.0.

  • There is a known issue in TensorRT 8.0 regarding accuracy for a certain case of int8 inferencing on A40 and similar GPUs. The version of TF-TRT in TF2 21.07 includes a feature that works around this issue, but TF1 21.07 does not include that feature and therefore Triton users may experience the accuracy drop for a small subset of model/data type/batch size combinations on A40 when TF-TRT is used through the TF1 backend. This will be fixed in the next version of TensorRT.

  • Running a PyTorch TorchScript model using the PyTorch backend, where multiple instances of a model are configured can lead to a slowdown in model execution due to the following PyTorch issue: pytorch/pytorch#27902

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

Client Libraries and Examples

Ubuntu 20.04 builds of the client libraries and examples are included in this release in the attached v2.12.0_ubuntu2004.clients.tar.gz file. The SDK is also available for as an Ubuntu 20.04 based NGC Container. The SDK container includes the client libraries and examples, Performance Analyzer and Model Analyzer. Some components are also available in the tritonclient pip package. See Getting the Client Libraries for more information on each of these options.

For windows, the client libraries and some examples are available in the attached tritonserver2.12.0-sdk-win.zip file.

Windows Support

An alpha release of Triton for Windows is provided in the attached file: tritonserver2.12.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.8.0. The CPU, CUDA, and TensorRT execution providers are supported. The OpenVINO execution provider is not supported.

  • OpenVINO models are supported. The OpenVINO version is 2021.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.6 (https://developer.nvidia.com/embedded/jetpack) is provided in the attached file: tritonserver2.12.0-jetpack4.6.tgz. This release supports the TensorFlow 2.5.0, TensorFlow 1.15.5, TensorRT 8.0.1, OnnxRuntime 1.8.0 and as well as ensembles. For the OnnxRuntime backend the TensorRT and OpenVino execution providers are not supported. 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 \
        libopenblas-dev \
        rapidjson-dev \
        patchelf \
        zlib1g-dev

Note: When building Triton on Jetson, you will require a newer version of cmake. We recommend using cmake 3.18.4. Below is a script to upgrade your cmake version to 3.18.4.

apt remove cmake
wget https://cmake.org/files/v3.18/cmake-3.18.4.tar.gz
tar -xf cmake-3.18.4.tar.gz
(cd cmake-3.18.4 && ./configure && sudo make install)

Note: Seeing a core dump when using numpy 1.19.5 on Jetson is a known issue. We recommend using numpy version 1.19.4 or earlier to work around this issue.

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==1.19.4 future attrdict

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