Skip to content

Commit f2f40a2

Browse files
committed
fix: Add new TRT 8.6 features to Dynamo compile [3 / x] (#1973)
1 parent 926723e commit f2f40a2

File tree

4 files changed

+33
-2
lines changed

4 files changed

+33
-2
lines changed

py/torch_tensorrt/dynamo/backend/__init__.py

+20-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import torch_tensorrt
55
from functools import partial
66

7-
from typing import Any, Sequence
7+
from typing import Any, Optional, Sequence
88
from torch_tensorrt import EngineCapability, Device
99
from torch_tensorrt.fx.utils import LowerPrecision
1010

@@ -16,6 +16,9 @@
1616
WORKSPACE_SIZE,
1717
MIN_BLOCK_SIZE,
1818
PASS_THROUGH_BUILD_FAILURES,
19+
MAX_AUX_STREAMS,
20+
VERSION_COMPATIBLE,
21+
OPTIMIZATION_LEVEL,
1922
USE_EXPERIMENTAL_RT,
2023
)
2124

@@ -46,6 +49,9 @@ def compile(
4649
torch_executed_ops=[],
4750
torch_executed_modules=[],
4851
pass_through_build_failures=PASS_THROUGH_BUILD_FAILURES,
52+
max_aux_streams=MAX_AUX_STREAMS,
53+
version_compatible=VERSION_COMPATIBLE,
54+
optimization_level=OPTIMIZATION_LEVEL,
4955
use_experimental_rt=USE_EXPERIMENTAL_RT,
5056
**kwargs,
5157
):
@@ -98,6 +104,9 @@ def compile(
98104
min_block_size=min_block_size,
99105
torch_executed_ops=torch_executed_ops,
100106
pass_through_build_failures=pass_through_build_failures,
107+
max_aux_streams=max_aux_streams,
108+
version_compatible=version_compatible,
109+
optimization_level=optimization_level,
101110
use_experimental_rt=use_experimental_rt,
102111
**kwargs,
103112
)
@@ -122,6 +131,9 @@ def create_backend(
122131
min_block_size: int = MIN_BLOCK_SIZE,
123132
torch_executed_ops: Sequence[str] = set(),
124133
pass_through_build_failures: bool = PASS_THROUGH_BUILD_FAILURES,
134+
max_aux_streams: Optional[int] = MAX_AUX_STREAMS,
135+
version_compatible: bool = VERSION_COMPATIBLE,
136+
optimization_level: Optional[int] = OPTIMIZATION_LEVEL,
125137
use_experimental_rt: bool = USE_EXPERIMENTAL_RT,
126138
**kwargs,
127139
):
@@ -134,6 +146,10 @@ def create_backend(
134146
min_block_size: Minimum number of operators per TRT-Engine Block
135147
torch_executed_ops: Sequence of operations to run in Torch, regardless of converter coverage
136148
pass_through_build_failures: Whether to fail on TRT engine build errors (True) or not (False)
149+
max_aux_streams: Maximum number of allowed auxiliary TRT streams for each engine
150+
version_compatible: Provide version forward-compatibility for engine plan files
151+
optimization_level: Builder optimization 0-5, higher levels imply longer build time,
152+
searching for more optimization options. TRT defaults to 3
137153
use_experimental_rt: Whether to use the new experimental TRTModuleNext for TRT engines
138154
Returns:
139155
Backend for torch.compile
@@ -146,5 +162,8 @@ def create_backend(
146162
min_block_size=min_block_size,
147163
torch_executed_ops=torch_executed_ops,
148164
pass_through_build_failures=pass_through_build_failures,
165+
max_aux_streams=max_aux_streams,
166+
version_compatible=version_compatible,
167+
optimization_level=optimization_level,
149168
use_experimental_rt=use_experimental_rt,
150169
)

py/torch_tensorrt/dynamo/backend/_defaults.py

+3
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,7 @@
66
WORKSPACE_SIZE = 0
77
MIN_BLOCK_SIZE = 5
88
PASS_THROUGH_BUILD_FAILURES = False
9+
MAX_AUX_STREAMS = None
10+
VERSION_COMPATIBLE = False
11+
OPTIMIZATION_LEVEL = None
912
USE_EXPERIMENTAL_RT = False

py/torch_tensorrt/dynamo/backend/_settings.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from dataclasses import dataclass, field
2-
from typing import Sequence
2+
from typing import Optional, Sequence
33

44
from torch_tensorrt.fx.utils import LowerPrecision
55
from torch_tensorrt.dynamo.backend._defaults import (
@@ -8,6 +8,9 @@
88
WORKSPACE_SIZE,
99
MIN_BLOCK_SIZE,
1010
PASS_THROUGH_BUILD_FAILURES,
11+
MAX_AUX_STREAMS,
12+
VERSION_COMPATIBLE,
13+
OPTIMIZATION_LEVEL,
1114
USE_EXPERIMENTAL_RT,
1215
)
1316

@@ -20,4 +23,7 @@ class CompilationSettings:
2023
min_block_size: int = MIN_BLOCK_SIZE
2124
torch_executed_ops: Sequence[str] = field(default_factory=set)
2225
pass_through_build_failures: bool = PASS_THROUGH_BUILD_FAILURES
26+
max_aux_streams: Optional[int] = MAX_AUX_STREAMS
27+
version_compatible: bool = VERSION_COMPATIBLE
28+
optimization_level: Optional[int] = OPTIMIZATION_LEVEL
2329
use_experimental_rt: bool = USE_EXPERIMENTAL_RT

py/torch_tensorrt/dynamo/backend/conversion.py

+3
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ def convert_module(
5050
if settings.debug
5151
else trt.ProfilingVerbosity.LAYER_NAMES_ONLY
5252
),
53+
max_aux_streams=settings.max_aux_streams,
54+
version_compatible=settings.version_compatible,
55+
optimization_level=settings.optimization_level,
5356
)
5457

5558
if settings.use_experimental_rt:

0 commit comments

Comments
 (0)