Skip to content

Commit d369fa4

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

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

@@ -17,6 +17,9 @@
1717
WORKSPACE_SIZE,
1818
MIN_BLOCK_SIZE,
1919
PASS_THROUGH_BUILD_FAILURES,
20+
MAX_AUX_STREAMS,
21+
VERSION_COMPATIBLE,
22+
OPTIMIZATION_LEVEL,
2023
USE_EXPERIMENTAL_RT,
2124
)
2225

@@ -46,6 +49,9 @@ def compile(
4649
min_block_size=MIN_BLOCK_SIZE,
4750
torch_executed_ops=[],
4851
torch_executed_modules=[],
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
):
@@ -93,6 +99,9 @@ def compile(
9399
workspace_size=workspace_size,
94100
min_block_size=min_block_size,
95101
torch_executed_ops=torch_executed_ops,
102+
max_aux_streams=max_aux_streams,
103+
version_compatible=version_compatible,
104+
optimization_level=optimization_level,
96105
use_experimental_rt=use_experimental_rt,
97106
**kwargs,
98107
)
@@ -117,6 +126,9 @@ def create_backend(
117126
min_block_size: int = MIN_BLOCK_SIZE,
118127
torch_executed_ops: Sequence[str] = set(),
119128
pass_through_build_failures: bool = PASS_THROUGH_BUILD_FAILURES,
129+
max_aux_streams: Optional[int] = MAX_AUX_STREAMS,
130+
version_compatible: bool = VERSION_COMPATIBLE,
131+
optimization_level: Optional[int] = OPTIMIZATION_LEVEL,
120132
use_experimental_rt: bool = USE_EXPERIMENTAL_RT,
121133
**kwargs,
122134
):
@@ -129,6 +141,10 @@ def create_backend(
129141
min_block_size: Minimum number of operators per TRT-Engine Block
130142
torch_executed_ops: Sequence of operations to run in Torch, regardless of converter coverage
131143
pass_through_build_failures: Whether to fail on TRT engine build errors (True) or not (False)
144+
max_aux_streams: Maximum number of allowed auxiliary TRT streams for each engine
145+
version_compatible: Provide version forward-compatibility for engine plan files
146+
optimization_level: Builder optimization 0-5, higher levels imply longer build time,
147+
searching for more optimization options. TRT defaults to 3
132148
use_experimental_rt: Whether to use the new experimental TRTModuleNext for TRT engines
133149
Returns:
134150
Backend for torch.compile
@@ -143,6 +159,9 @@ def create_backend(
143159
min_block_size=min_block_size,
144160
torch_executed_ops=torch_executed_ops,
145161
pass_through_build_failures=pass_through_build_failures,
162+
max_aux_streams=max_aux_streams,
163+
version_compatible=version_compatible,
164+
optimization_level=optimization_level,
146165
use_experimental_rt=use_experimental_rt,
147166
)
148167

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
@@ -42,6 +42,9 @@ def convert_module(
4242
if settings.debug
4343
else trt.ProfilingVerbosity.LAYER_NAMES_ONLY
4444
),
45+
max_aux_streams=settings.max_aux_streams,
46+
version_compatible=settings.version_compatible,
47+
optimization_level=settings.optimization_level,
4548
)
4649

4750
if settings.use_experimental_rt:

0 commit comments

Comments
 (0)