NVIDIA Triton Inference Server

NVIDIA Triton Inference Server (formerly TensorRT Inference Server) provides a cloud inferencing solution optimized for NVIDIA 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 1.12.0

  • Add queuing policies for dynamic batching scheduler. These policies are specified in the model configuration and allow each model to set maximum queue size, time outs, and priority levels for inference requests.

  • Support for large ONNX models where weights are stored in separate files.

  • Allow ONNX Runtime optimization level to be configured via the model configuration optimization setting.

  • Experimental Python client and server support for community standard GRPC inferencing API.

  • Add --min-supported-compute-capability flag to allow Triton Server to use older, unsupported GPUs.

  • Fix perf_client shared memory support. In some cases shared-memory option did not work correctly due to the input and output tensor names. This issue is now resolved.

Features

  • Multiple framework support. The server can manage any number and mix of models (limited by system disk and memory resources). Supports TensorRT, TensorFlow GraphDef, TensorFlow SavedModel, ONNX, PyTorch, and Caffe2 NetDef model formats. Also supports TensorFlow-TensorRT and ONNX-TensorRT integrated models. Variable-size input and output tensors are allowed if supported by the framework. See Capabilities for detailed support information for each framework.

  • Concurrent model execution support. Multiple models (or multiple instances of the same model) can run simultaneously on the same GPU.

  • Batching support. For models that support batching, Triton Server can accept requests for a batch of inputs and respond with the corresponding batch of outputs. Triton Server also supports multiple scheduling and batching algorithms that combine individual inference requests together to improve inference throughput. These scheduling and batching decisions are transparent to the client requesting inference.

  • Custom backend support. Triton Server allows individual models to be implemented with custom backends instead of by a deep-learning framework. With a custom backend a model can implement any logic desired, while still benefiting from the GPU support, concurrent execution, dynamic batching and other features provided by the server.

  • Ensemble support. An ensemble represents a pipeline of one or more models and the connection of input and output tensors between those models. A single inference request to an ensemble will trigger the execution of the entire pipeline.

  • Multi-GPU support. Triton Server can distribute inferencing across all system GPUs.

  • Triton Server provides multiple modes for model management. These model management modes allow for both implicit and explicit loading and unloading of models without requiring a server restart.

  • Model repositories may reside on a locally accessible file system (e.g. NFS), in Google Cloud Storage or in Amazon S3.

  • Readiness and liveness health endpoints suitable for any orchestration or deployment framework, such as Kubernetes.

  • Metrics indicating GPU utilization, server throughput, and server latency.

  • C library inferface allows the full functionality of Triton Server to be included directly in an application.

Indices and tables