Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# TensorRT OSS Release Changelog

## 11.4 GA - 2026-10-09
- Parsers
- Added `IRefitterObserver` class and `IParser::setRefitObserver` to better handle refittable weights when parsing.

- Plugins
- Added various C++20 updates to plugin source code.

- Samples
- Moved samples/common files only relevant to trtexec to samples/trtexecCommon.


## 11.3 GA - 2026-09-22
- General
- Updated default CUDA version to 13.4
Expand Down
71 changes: 6 additions & 65 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,6 @@ option(BUILD_PYTHON "Build TensorRT python bindings" OFF)
option(TRT_SAFETY_INFERENCE_ONLY "Build only the safety inference components (no safety builders)" OFF)
option(TRT_BUILD_TESTING "Build gtests for TensorRT components" OFF)
option(TRT_BUILD_ALLOW_CCACHE "Allow ccache to be used for builds" ON)
set(TRT_BUILD_PRODUCT "" CACHE STRING
"TensorRT product package to import: enterprise, automotive, or safe_inference. Empty preserves legacy selection.")
set_property(CACHE TRT_BUILD_PRODUCT PROPERTY STRINGS
"" enterprise automotive safe_inference)

if(TRT_SAFETY_INFERENCE_ONLY AND NOT BUILD_SAFE_SAMPLES)
message(STATUS "TRT_SAFETY_INFERENCE_ONLY is ON, enabling BUILD_SAFE_SAMPLES")
Expand Down Expand Up @@ -106,45 +102,12 @@ message(STATUS "Generating CUDA code for SMs: ${CMAKE_CUDA_ARCHITECTURES}")
# OSS vendors third-party headers under third_party/.
set(TRT_EXTERNALS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party)

set(_TRT_OSS_SUPPORTED_PRODUCTS enterprise automotive safe_inference)
if(NOT TRT_BUILD_PRODUCT STREQUAL "")
if(NOT "${TRT_BUILD_PRODUCT}" IN_LIST _TRT_OSS_SUPPORTED_PRODUCTS)
message(FATAL_ERROR
"Invalid TRT_BUILD_PRODUCT='${TRT_BUILD_PRODUCT}'. Expected one of: "
"enterprise, automotive, safe_inference.")
if(BUILD_SAFE_SAMPLES)
if(TRT_SAFETY_INFERENCE_ONLY)
find_package(TensorRT-SafeInference CONFIG REQUIRED)
else()
find_package(TensorRT-Automotive CONFIG REQUIRED)
endif()
set(_TRT_OSS_SELECTED_PRODUCT "${TRT_BUILD_PRODUCT}")
elseif(TRT_SAFETY_INFERENCE_ONLY)
set(_TRT_OSS_SELECTED_PRODUCT safe_inference)
elseif(BUILD_SAFE_SAMPLES)
set(_TRT_OSS_SELECTED_PRODUCT automotive)
else()
set(_TRT_OSS_SELECTED_PRODUCT enterprise)
endif()

if(TRT_SAFETY_INFERENCE_ONLY
AND NOT _TRT_OSS_SELECTED_PRODUCT STREQUAL "safe_inference")
message(FATAL_ERROR
"TRT_SAFETY_INFERENCE_ONLY=ON requires "
"TRT_BUILD_PRODUCT=safe_inference.")
endif()
if(_TRT_OSS_SELECTED_PRODUCT STREQUAL "safe_inference"
AND NOT TRT_SAFETY_INFERENCE_ONLY)
message(FATAL_ERROR
"TRT_BUILD_PRODUCT=safe_inference requires "
"TRT_SAFETY_INFERENCE_ONLY=ON.")
endif()
if(BUILD_SAFE_SAMPLES AND _TRT_OSS_SELECTED_PRODUCT STREQUAL "enterprise")
message(FATAL_ERROR
"BUILD_SAFE_SAMPLES=ON is not supported with "
"TRT_BUILD_PRODUCT=enterprise.")
endif()

message(STATUS "Importing TensorRT product: ${_TRT_OSS_SELECTED_PRODUCT}")
if(_TRT_OSS_SELECTED_PRODUCT STREQUAL "safe_inference")
find_package(TensorRT-SafeInference CONFIG REQUIRED)
elseif(_TRT_OSS_SELECTED_PRODUCT STREQUAL "automotive")
find_package(TensorRT-Automotive CONFIG REQUIRED)
else()
find_package(TensorRT-Enterprise CONFIG REQUIRED)
endif()
Expand Down Expand Up @@ -207,18 +170,6 @@ if(TRT_SAFETY_INFERENCE_ONLY)
Threads::Threads
)

# CUDA compiler identification receives these PDK dependencies through the
# QNX Safety toolchain. Add them here only for CXX-linked sample targets;
# CUDA-linked targets already inherit the toolchain flags.
if(CMAKE_SYSTEM_NAME STREQUAL "QNX" AND TRT_QNX_SAFE_PDK_LIBRARIES)
foreach(TRT_QNX_SAFE_PDK_LIBRARY IN LISTS TRT_QNX_SAFE_PDK_LIBRARIES)
target_link_libraries(trt_global_definitions INTERFACE
"$<$<LINK_LANGUAGE:CXX>:${TRT_QNX_SAFE_PDK_LIBRARY}>")
endforeach()
target_link_options(trt_global_definitions INTERFACE
"$<$<LINK_LANGUAGE:CXX>:-lslog2>")
endif()

if(NOT WIN32 AND NOT CMAKE_SYSTEM_NAME STREQUAL "QNX")
target_link_libraries(trt_global_definitions INTERFACE dl rt)
endif()
Expand Down Expand Up @@ -314,7 +265,6 @@ if(BUILD_SAMPLES OR BUILD_SAFE_SAMPLES)

# Map OSS option names to the internal names used by samples/CMakeLists.txt.
set(TRT_BUILD_SAMPLES ${BUILD_SAMPLES})
set(TRT_BUILD_TRTEXEC ${BUILD_SAMPLES})
# nvonnxparser is always available, either built from source or imported
# from the TensorRT package.
set(TRT_BUILD_ONNX_PARSER ON)
Expand All @@ -325,19 +275,10 @@ if(BUILD_SAMPLES OR BUILD_SAFE_SAMPLES)
option(TRT_BUILD_ENABLE_DLA "Build TensorRT with DLA features enabled." OFF)
option(TRT_BUILD_ENABLE_UNIFIED_BUILDER "Build TensorRT with unified builder (safety) features enabled." ${BUILD_SAFE_SAMPLES})

# The companion library a safety engine pairs with only exists in a TensorRT built with the unified
# builder, so the sample code that saves and loads one compiles only there. TensorRT forwards the same
# flag under the same name when it builds these samples itself.
target_compile_definitions(trt_global_definitions INTERFACE
ENABLE_UNIFIED_BUILDER=$<BOOL:${TRT_BUILD_ENABLE_UNIFIED_BUILDER}>
)

option(TRT_BUILD_ENABLE_MULTIDEVICE "Build TensorRT with multi-device support." OFF)
set(TRT_BUILD_SAMPLES_LINK_STATIC_TRT OFF CACHE INTERNAL "")

if(NOT (TRT_SAFETY_INFERENCE_ONLY AND CMAKE_SYSTEM_NAME STREQUAL "QNX"))
add_subdirectory(shared)
endif()
add_subdirectory(shared)

include(InstallUtils)

Expand Down
64 changes: 12 additions & 52 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ To build the TensorRT-OSS components, you will first need the following software

**TensorRT GA build**

- TensorRT v11.3.0.99
- TensorRT v11.4.0.106
- Available from direct download links listed below

**System Packages**
Expand Down Expand Up @@ -103,24 +103,24 @@ To build the TensorRT-OSS components, you will first need the following software

Else download and extract the TensorRT GA build from [NVIDIA Developer Zone](https://developer.nvidia.com) with the direct links below:

- [TensorRT 11.3.0.99 for CUDA 13.4, Linux x86_64](https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/11.3.0/tars/TensorRT-Enterprise-11.3.0.99-Linux-x86_64-cuda-13.4-Release-external.tar.zst)
- [TensorRT 11.3.0.99 for CUDA 12.9, Linux x86_64](https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/11.3.0/tars/TensorRT-Enterprise-11.3.0.99-Linux-x86_64-cuda-12.9-Release-external.tar.zst)
- [TensorRT 11.3.0.99 for CUDA 13.4, Windows x86_64](https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/11.3.0/zip/TensorRT-Enterprise-11.3.0.99-Windows-amd64-cuda-13.4-Release-external.zip)
- [TensorRT 11.3.0.99 for CUDA 12.9, Windows x86_64](https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/11.3.0/zip/TensorRT-Enterprise-11.3.0.99-Windows-amd64-cuda-12.9-Release-external.zip)
- [TensorRT 11.4.0.106 for CUDA 13.4, Linux x86_64](https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/11.4.0/tars/TensorRT-Enterprise-11.4.0.106-Linux-x86_64-cuda-13.4-Release-external.tar.zst)
- [TensorRT 11.4.0.106 for CUDA 12.9, Linux x86_64](https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/11.4.0/tars/TensorRT-Enterprise-11.4.0.106-Linux-x86_64-cuda-12.9-Release-external.tar.zst)
- [TensorRT 11.4.0.106 for CUDA 13.4, Windows x86_64](https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/11.4.0/zip/TensorRT-Enterprise-11.4.0.106-Windows-amd64-cuda-13.4-Release-external.zip)
- [TensorRT 11.4.0.106 for CUDA 12.9, Windows x86_64](https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/11.4.0/zip/TensorRT-Enterprise-11.4.0.106-Windows-amd64-cuda-12.9-Release-external.zip)

**Example: Ubuntu 22.04 on x86-64 with cuda-13.4**

```bash
cd ~/Downloads
tar --zstd -xvf TensorRT-Enterprise-11.3.0.99-Linux-x86_64-cuda-13.4-Release-external.tar.zst
export TRT_LIBPATH=`pwd`/TensorRT-11.3.0.99/lib
tar --zstd -xvf TensorRT-Enterprise-11.4.0.106-Linux-x86_64-cuda-13.4-Release-external.tar.zst
export TRT_LIBPATH=`pwd`/TensorRT-11.4.0.106/lib
```

**Example: Windows on x86-64 with cuda-12.9**

```powershell
Expand-Archive -Path TensorRT-Enterprise-11.3.0.99-Windows-amd64-cuda-12.9-Release-external.zip
$env:TRT_LIBPATH="$pwd\TensorRT-11.3.0.99\lib"
Expand-Archive -Path TensorRT-Enterprise-11.4.0.106-Windows-amd64-cuda-12.9-Release-external.zip
$env:TRT_LIBPATH="$pwd\TensorRT-11.4.0.106\lib"
```

## Setting Up The Build Environment
Expand Down Expand Up @@ -222,8 +222,7 @@ For Linux platforms, we recommend that you generate a docker container for build
```bash
cd $TRT_OSSPATH
mkdir -p build && cd build
cmake .. -DTRT_BUILD_PRODUCT=automotive -DCMAKE_PREFIX_PATH=$TRT_ROOT \
-DCMAKE_TOOLCHAIN_FILE=$TRT_OSSPATH/cmake/toolchains/cmake_aarch64_cross.toolchain
cmake .. -DCMAKE_PREFIX_PATH=$TRT_ROOT -DCMAKE_TOOLCHAIN_FILE=$TRT_OSSPATH/cmake/toolchains/cmake_aarch64_cross.toolchain
make -j$(nproc)
```

Expand Down Expand Up @@ -256,7 +255,6 @@ For Linux platforms, we recommend that you generate a docker container for build
- `BUILD_SAMPLES`: Specify if the samples should be built, for example [`ON`] | `OFF`.
- `BUILD_SAFE_SAMPLES`: Specify if safety samples should be built, for example [`ON`] | `OFF`.
- `TRT_SAFETY_INFERENCE_ONLY`: Specify if only build the safety inference components, for example [`ON`] | `OFF`. If turned ON, all other components will be turned OFF except `BUILD_SAFE_SAMPLES`.
- `TRT_BUILD_PRODUCT`: Select the TensorRT product package to import: `enterprise`, `automotive`, or `safe_inference`. If omitted, the build will infer the product based on the values of `BUILD_SAFE_SAMPLES` and `TRT_SAFETY_INFERENCE_ONLY`.
- `TRT_BUILD_ENABLE_MULTIDEVICE`: Enable the multi-device sample (`sampleDistCollective`). Use `-DTRT_BUILD_ENABLE_MULTIDEVICE=ON` to build it; requires [NCCL](https://developer.nvidia.com/nccl/nccl-download) >= v2.19, < v3.0.
- `TRT_BUILD_TESTING` : Build gTests for samples. Requires [gtest](https://github.com/google/googletest) if available; otherwise fetches googletest at configure time.

Expand All @@ -270,7 +268,6 @@ For Linux platforms, we recommend that you generate a docker container for build
cd $TRT_OSSPATH
mkdir -p build && cd build
cmake .. -DBUILD_SAMPLES=ON -DBUILD_PLUGINS=OFF -DBUILD_PARSERS=OFF \
-DTRT_BUILD_PRODUCT=automotive \
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=`pwd`/bin_dynamic_cross \
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=`pwd`/bin_dynamic_cross \
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY=`pwd`/bin_dynamic_cross \
Expand Down Expand Up @@ -304,8 +301,7 @@ For Linux platforms, we recommend that you generate a docker container for build
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=`pwd`/out \
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY=`pwd`/out \
-DCMAKE_TOOLCHAIN_FILE=$TRT_OSSPATH/cmake/toolchains/cmake_aarch64-native.toolchain \
-DBUILD_SAMPLES=ON -DBUILD_PLUGINS=OFF -DBUILD_PARSERS=OFF \
-DTRT_BUILD_PRODUCT=automotive
-DBUILD_SAMPLES=ON -DBUILD_PLUGINS=OFF -DBUILD_PARSERS=OFF
make -j$(nproc)
```

Expand Down Expand Up @@ -369,13 +365,12 @@ For Linux platforms, we recommend that you generate a docker container for build
mkdir -p build && cd build
export CUDA_VERSION=13.4
export CUDA=cuda-$CUDA_VERSION
export CUDA_ROOT=/usr/local/cuda-$CUDA_VERSION
export CUDA_ROOT=/usr/local/cuda-safe-$CUDA_VERSION
export QNX_BASE=/drive/toolchains/qnx_toolchain # Set to your QNX toolchain installation path
export QNX_HOST=$QNX_BASE/host/linux/x86_64/
export QNX_TARGET=$QNX_BASE/target/qnx/
export PATH=$PATH:$QNX_HOST/usr/bin
cmake .. -DBUILD_SAMPLES=ON -DBUILD_PLUGINS=OFF -DBUILD_PARSERS=OFF -DBUILD_SAFE_SAMPLES=OFF \
-DTRT_BUILD_PRODUCT=automotive \
-DCMAKE_CUDA_COMPILER=$CUDA_ROOT/bin/nvcc \
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=`pwd`/bin_dynamic_cross \
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=`pwd`/bin_dynamic_cross \
Expand All @@ -389,41 +384,6 @@ For Linux platforms, we recommend that you generate a docker container for build
> NOTE: Set `QNX_BASE` to your QNX toolchain installation path.
> If your CUDA version is not the same as in the example, set `CUDA_VERSION` (for examples that use it in multiple places) or add `-DCUDA_VERSION=<version>` to the cmake command.

**Example: Cross-Compile for DOS7 QNX Safety (aarch64)**

DOS7 QNX and QNX Safety use the same QNX 8 SDK through `QNX_HOST` and
`QNX_TARGET`. The QNX Safety build additionally uses SafeCUDA, the matching
TensorRT SafeInference package, and `cmake_qnx_safe.toolchain`. The standard
DriveOS QNX Safety build environment provides `PDK_TOP`; the toolchain uses
the libraries under `$PDK_TOP/drive-qnx-safety/lib-target`.

```bash
cd $TRT_OSSPATH
mkdir -p build && cd build
export CUDA_VERSION=13.4
export CUDA=cuda-$CUDA_VERSION
export CUDA_ROOT=/usr/local/cuda-$CUDA_VERSION-safe
export QNX_BASE=/drive/toolchains/qnx_toolchain # Set to your QNX 8 toolchain installation path
export QNX_HOST=$QNX_BASE/host/linux/x86_64/
export QNX_TARGET=$QNX_BASE/target/qnx/
export PATH=$PATH:$QNX_HOST/usr/bin
cmake .. -DBUILD_SAMPLES=OFF -DBUILD_SAFE_SAMPLES=ON -DBUILD_PLUGINS=OFF -DBUILD_PARSERS=OFF \
-DTRT_BUILD_PRODUCT=safe_inference \
-DTRT_SAFETY_INFERENCE_ONLY=ON -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=`pwd`/bin_dynamic_cross \
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=`pwd`/bin_dynamic_cross \
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY=`pwd`/bin_dynamic_cross \
-DCMAKE_PREFIX_PATH=$TRT_ROOT \
-DTensorRT-SafeInference_DIR=$TRT_ROOT/cmake/TensorRT-SafeInference \
-DCMAKE_TOOLCHAIN_FILE=$TRT_OSSPATH/cmake/toolchains/cmake_qnx_safe.toolchain \
-DCUDA_VERSION=$CUDA_VERSION -DCMAKE_CUDA_COMPILER=$CUDA_ROOT/bin/nvcc \
-DCMAKE_CUDA_ARCHITECTURES=110
make -j$(nproc)
```

> NOTE: Set `QNX_BASE` to the same QNX 8 SDK used for DOS7 QNX builds. The
> generated QNX Safety binaries are placed in `build/bin_dynamic_cross`.

# References

## TensorRT Resources
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
11.3.0.99
11.4.0.106
Loading
Loading