Triton Inference Server Release 24.04
The Triton Inference Server container image, release 24.04, is available on NGC and is open source on GitHub.
Contents of the Triton Inference Server container
The Triton Inference Server Docker image contains the inference server executable and related shared libraries in /opt/tritonserver.
For a complete list of what the container includes, refer to Deep Learning Frameworks Support Matrix.
- Ubuntu 22.04 including Python 3.10
- NVIDIA CUDA 12.4
- NVIDIA cuBLAS 12.4.5.8
- cuDNN 9.1.0.70
- NVIDIA NCCL 2.21.5 (optimized for NVIDIA NVLink®)
- NVIDIA TensorRT™ 8.6.3
- OpenUCX 1.15.0
- GDRCopy 2.3
- NVIDIA HPC-X 2.18
- OpenMPI 4.1.4+
- FIL
- NVIDIA DALI® 1.36
- ONNX Runtime 1.17.3
- Intel OpenVINO 2023.3.0
- DCGM 3.2.6
- TensorRT-LLM version release/0.9
- vLLM version 0.4.0 post1
- nvImageCodec 0.2.0.7
Driver Requirements
Release 24.04 is based on NVIDIA CUDA 12.4, which requires NVIDIA Driver release 545 or later. However, if you are running on a data center GPU (for example, T4 or any other data center GPU), you can use NVIDIA driver release 470.57 (or later R470), 525.85 (or later R525), 535.86 (or later R535), or 545.23 (or later R545).
The CUDA driver's compatibility package only supports particular drivers. Thus, users should upgrade from all R418, R440, R450, R460, R510, and R520 drivers, which are not forward-compatible with CUDA 12.3. For a complete list of supported drivers, see the CUDA Application Compatibility topic. For more information, see CUDA Compatibility and Upgrades.
GPU Requirements
Release 24.04 supports CUDA compute capability 6.0 and later. This corresponds to GPUs in the NVIDIA Pascal, NVIDIA Volta™, NVIDIA Turing™, NVIDIA Ampere architecture, NVIDIA Hopper™, and NVIDIA Ada Lovelace architecture families. For a list of GPUs to which this compute capability corresponds, see CUDA GPUs. For additional support details, see Deep Learning Frameworks Support Matrix.
Key Features and Enhancements
This Inference Server release includes the following key features and enhancements.
- Beta support for asyncio in decoupled mode in Python backend.
- Enhancements to server shutdown to take into account both HTTP live connections and inflight inferences.
- Python backend shared memory region naming has been updated to use UUIDs. This allows multiple servers to run on the machine without requiring different shared memory region prefixes.
- Support retrieving OpenTelemetry trace settings from the gRPC/HTTP endpoints.
- Log file and trace file locations can no longer be updated using the gRPC/HTTP endpoints.
- Added an iterative scheduling tutorial to demonstrate how to use iterative scheduling with a GPT2 model.
- Trace settings API now returns trace_mode and trace_config information.
- The TensorRT-LLM container now includes the tensorrt_llm Python package for creating engines.
- Added Python Client API docs to the documentation website.
- Added metric visualizations to GenAI-Perf.
- Added support to Model Analyzer for profiling LLMs with GenAI-Perf.
- Added the ability to select an output token distribution in GenAI-Perf.
- Some arguments have been renamed in the latest version of GenAI-Perf.
NVIDIA Triton Inference Server Container Versions
The following table shows what versions of Ubuntu, CUDA, Triton Inference Server, and NVIDIA TensorRT™ are supported in each of the NVIDIA containers for Triton Inference Server. For older container versions, refer to the Frameworks Support Matrix.
Known Issues
- The TensorRT-LLM container uses nvcr.io/nvidia/pytorch:24.02-py3 as the base image.
- Perf Analyzer no longer supports --trace-file option.
- TensorRT-LLM backend provides limited support of Triton extensions and features.
- The TensorRT-LLM backend may core dump on server shutdown. This impacts server teardown only and will not impact inferencing.
- When using decoupled models, there is a possibility that response order as sent from the backend may not match with the order in which these responses are received by the streaming gRPC client. Note that this only applies to responses from different requests. Any responses corresponding to the same request will still be received in their expected order, relative to each other.
- The Java CAPI is known to have intermittent segfaults we’re looking for a root cause.
- Some systems which implement malloc() may not release memory back to the operating system right away causing a false memory leak. This can be mitigated by using a different malloc implementation. Tcmalloc and jemalloc are installed in the Triton container and can be used by specifying the library in LD_PRELOAD. We recommend experimenting with both tcmalloc and jemalloc to determine which one works better for your use case.
- Auto-complete may cause an increase in server start time. To avoid a start time increase, users can provide the full model configuration and launch the server with --disable-auto-complete-config.
- Auto-complete does not support PyTorch models due to lack of metadata in the model. It can only verify that the number of inputs and the input names matches what is specified in the model configuration. There is no model metadata about the number of outputs and datatypes. Related PyTorch bug:https://github.com/pytorch/pytorch/issues/38273.
- Triton Client PIP wheels for ARM SBSA are not available from PyPI and pip will install an incorrect Jetson version of Triton Client library for Arm SBSA. The correct client 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. Refer to pytorch/pytorch#66930 for more information.
- Triton cannot retrieve GPU metrics with MIG-enabled GPU devices.
- Triton metrics might not work if the host machine is running a separate DCGM agent on bare-metal or in a container.
- When cloud storage (AWS, GCS, AZURE) is used as a model repository and a model has multiple versions, Triton creates an extra local copy of the cloud model’s folder in the temporary directory, which is deleted upon server’s shutdown.
- Python backend support for Windows is limited and does
not currently support the following features:
- GPU tensors
- CPU and GPU-related metrics
- Custom execution environments
- The model load/unload APIs