-
Notifications
You must be signed in to change notification settings - Fork 360
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Automatically generate QDP plugins #3370
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
outdated
py/torch_tensorrt/dynamo/conversion/plugins/_generate_plugin.py
Outdated
Show resolved
Hide resolved
py/torch_tensorrt/dynamo/conversion/plugins/_generate_plugin.py
Outdated
Show resolved
Hide resolved
|
||
# Use the helper function to get the required signatures | ||
args_input, kwargs_input, plugin_signature, plugin_impl_signature, register_func_annotation, impl_func_annotation = generate_signature(torch_op) | ||
print(args_input) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Make this debug info
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@narendasan when I use:
_LOGGER.debug(f"Plugin registration function: \n{codegen_plugin}")
It won't print anything. How to resolve this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are some changes that do not conform to Python style guidelines:
--- /home/runner/work/TensorRT/TensorRT/docs/_downloads/0e30a6276601af7e5fc4d5166e2e3d37/torch_compile_advanced_usage.py 2025-02-06 01:03:47.576676+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/_downloads/0e30a6276601af7e5fc4d5166e2e3d37/torch_compile_advanced_usage.py 2025-02-06 01:04:11.130800+00:00
@@ -2,11 +2,12 @@
.. _torch_compile_advanced_usage:
Torch Compile Advanced Usage
======================================================
-This interactive script is intended as an overview of the process by which `torch_tensorrt.compile(..., ir="torch_compile", ...)` works, and how it integrates with the `torch.compile` API."""
+This interactive script is intended as an overview of the process by which `torch_tensorrt.compile(..., ir="torch_compile", ...)` works, and how it integrates with the `torch.compile` API.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/docs/_downloads/2a9ac10f2667047a7f398d1593b7ca33/torch_export_gpt2.py 2025-02-06 01:03:47.576676+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/_downloads/2a9ac10f2667047a7f398d1593b7ca33/torch_export_gpt2.py 2025-02-06 01:04:11.151012+00:00
@@ -2,11 +2,12 @@
.. _torch_export_gpt2:
Compiling GPT2 using the dynamo backend
==========================================================
-This script illustrates Torch-TensorRT workflow with dynamo backend on popular GPT2 model."""
+This script illustrates Torch-TensorRT workflow with dynamo backend on popular GPT2 model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
import torch
--- /home/runner/work/TensorRT/TensorRT/docs/_downloads/418941399c146271a7b7728ba3059960/dynamo_compile_resnet_example.py 2025-02-06 01:03:47.577676+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/_downloads/418941399c146271a7b7728ba3059960/dynamo_compile_resnet_example.py 2025-02-06 01:04:11.192485+00:00
@@ -2,11 +2,12 @@
.. _dynamo_compile_resnet:
Compiling ResNet using the Torch-TensorRT Dyanmo Frontend
==========================================================
-This interactive script is intended as a sample of the `torch_tensorrt.dynamo.compile` workflow on a ResNet model."""
+This interactive script is intended as a sample of the `torch_tensorrt.dynamo.compile` workflow on a ResNet model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/docs/_downloads/3d4d74f6636d986f33167154f6553961/torch_export_cudagraphs.py 2025-02-06 01:03:47.577676+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/_downloads/3d4d74f6636d986f33167154f6553961/torch_export_cudagraphs.py 2025-02-06 01:04:11.197880+00:00
@@ -2,11 +2,12 @@
.. _torch_export_cudagraphs:
Torch Export with Cudagraphs
======================================================
-This interactive script is intended as an overview of the process by which the Torch-TensorRT Cudagraphs integration can be used in the `ir="dynamo"` path. The functionality works similarly in the `torch.compile` path as well."""
+This interactive script is intended as an overview of the process by which the Torch-TensorRT Cudagraphs integration can be used in the `ir="dynamo"` path. The functionality works similarly in the `torch.compile` path as well.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/docs/_downloads/7b7004dc2ea6f839be532665e16e0426/torch_export_llama2.py 2025-02-06 01:03:47.579676+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/_downloads/7b7004dc2ea6f839be532665e16e0426/torch_export_llama2.py 2025-02-06 01:04:11.234447+00:00
@@ -2,11 +2,12 @@
.. _torch_export_llama2:
Compiling Llama2 using the dynamo backend
==========================================================
-This script illustrates Torch-TensorRT workflow with dynamo backend on popular Llama2 model."""
+This script illustrates Torch-TensorRT workflow with dynamo backend on popular Llama2 model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
import torch
--- /home/runner/work/TensorRT/TensorRT/docs/_downloads/dfa60e8f9850fd7761f3e7da81304d32/torch_compile_transformers_example.py 2025-02-06 01:03:47.582676+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/_downloads/dfa60e8f9850fd7761f3e7da81304d32/torch_compile_transformers_example.py 2025-02-06 01:04:11.312338+00:00
@@ -2,11 +2,12 @@
.. _torch_compile_transformer:
Compiling BERT using the `torch.compile` backend
==============================================================
-This interactive script is intended as a sample of the Torch-TensorRT workflow with `torch.compile` on a BERT model."""
+This interactive script is intended as a sample of the Torch-TensorRT workflow with `torch.compile` on a BERT model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/docs/_downloads/e1ef5a42560a98a132f56a79d0b66f79/dynamo_compile_advanced_usage.py 2025-02-06 01:03:47.582676+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/_downloads/e1ef5a42560a98a132f56a79d0b66f79/dynamo_compile_advanced_usage.py 2025-02-06 01:04:11.311354+00:00
@@ -2,11 +2,12 @@
.. _dynamo_compile_advanced_usage:
Dynamo Compile Advanced Usage
======================================================
-This interactive script is intended as an overview of the process by which `torch_tensorrt.dynamo.compile` works, and how it integrates with the new `torch.compile` API."""
+This interactive script is intended as an overview of the process by which `torch_tensorrt.dynamo.compile` works, and how it integrates with the new `torch.compile` API.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/docs/_downloads/d6e1bb6ec5f884994554d9d12e37a0f6/torch_compile_resnet_example.py 2025-02-06 01:03:47.581676+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/_downloads/d6e1bb6ec5f884994554d9d12e37a0f6/torch_compile_resnet_example.py 2025-02-06 01:04:11.317424+00:00
@@ -2,11 +2,12 @@
.. _torch_compile_resnet:
Compiling ResNet with dynamic shapes using the `torch.compile` backend
==========================================================
-This interactive script is intended as a sample of the Torch-TensorRT workflow with `torch.compile` on a ResNet model."""
+This interactive script is intended as a sample of the Torch-TensorRT workflow with `torch.compile` on a ResNet model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/docs/_downloads/e550c5f53cc43e11aa6da8cfb79b54df/dynamo_compile_transformers_example.py 2025-02-06 01:03:47.582676+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/_downloads/e550c5f53cc43e11aa6da8cfb79b54df/dynamo_compile_transformers_example.py 2025-02-06 01:04:11.356035+00:00
@@ -2,11 +2,12 @@
.. _torch_compile_transformer:
Compiling a Transformer using torch.compile and TensorRT
==============================================================
-This interactive script is intended as a sample of the `torch_tensorrt.dynamo.compile` workflow on a transformer-based model."""
+This interactive script is intended as a sample of the `torch_tensorrt.dynamo.compile` workflow on a transformer-based model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/docs/v1.4.0/_downloads/418941399c146271a7b7728ba3059960/dynamo_compile_resnet_example.py 2025-02-06 01:03:48.035678+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/v1.4.0/_downloads/418941399c146271a7b7728ba3059960/dynamo_compile_resnet_example.py 2025-02-06 01:04:11.362782+00:00
@@ -2,11 +2,12 @@
.. _dynamo_compile_resnet:
Compiling ResNet using the Torch-TensorRT Dyanmo Frontend
==========================================================
-This interactive script is intended as a sample of the `torch_tensorrt.dynamo.compile` workflow on a ResNet model."""
+This interactive script is intended as a sample of the `torch_tensorrt.dynamo.compile` workflow on a ResNet model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/docs/v1.4.0/_downloads/e1ef5a42560a98a132f56a79d0b66f79/dynamo_compile_advanced_usage.py 2025-02-06 01:03:48.036678+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/v1.4.0/_downloads/e1ef5a42560a98a132f56a79d0b66f79/dynamo_compile_advanced_usage.py 2025-02-06 01:04:11.375798+00:00
@@ -2,11 +2,12 @@
.. _dynamo_compile_advanced_usage:
Dynamo Compile Advanced Usage
======================================================
-This interactive script is intended as an overview of the process by which `torch_tensorrt.dynamo.compile` works, and how it integrates with the new `torch.compile` API."""
+This interactive script is intended as an overview of the process by which `torch_tensorrt.dynamo.compile` works, and how it integrates with the new `torch.compile` API.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/docs/v1.4.0/_downloads/e550c5f53cc43e11aa6da8cfb79b54df/dynamo_compile_transformers_example.py 2025-02-06 01:03:48.036678+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/v1.4.0/_downloads/e550c5f53cc43e11aa6da8cfb79b54df/dynamo_compile_transformers_example.py 2025-02-06 01:04:11.402103+00:00
@@ -2,11 +2,12 @@
.. _torch_compile_transformer:
Compiling a Transformer using torch.compile and TensorRT
==============================================================
-This interactive script is intended as a sample of the `torch_tensorrt.dynamo.compile` workflow on a transformer-based model."""
+This interactive script is intended as a sample of the `torch_tensorrt.dynamo.compile` workflow on a transformer-based model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_compile_advanced_usage.py 2025-02-06 01:03:48.066679+00:00
+++ /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_compile_advanced_usage.py 2025-02-06 01:04:11.560023+00:00
@@ -2,11 +2,12 @@
.. _torch_compile_advanced_usage:
Torch Compile Advanced Usage
======================================================
-This interactive script is intended as an overview of the process by which `torch_tensorrt.compile(..., ir="torch_compile", ...)` works, and how it integrates with the `torch.compile` API."""
+This interactive script is intended as an overview of the process by which `torch_tensorrt.compile(..., ir="torch_compile", ...)` works, and how it integrates with the `torch.compile` API.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_compile_transformers_example.py 2025-02-06 01:03:48.066679+00:00
+++ /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_compile_transformers_example.py 2025-02-06 01:04:11.592305+00:00
@@ -2,11 +2,12 @@
.. _torch_compile_transformer:
Compiling BERT using the `torch.compile` backend
==============================================================
-This interactive script is intended as a sample of the Torch-TensorRT workflow with `torch.compile` on a BERT model."""
+This interactive script is intended as a sample of the Torch-TensorRT workflow with `torch.compile` on a BERT model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_compile_resnet_example.py 2025-02-06 01:03:48.066679+00:00
+++ /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_compile_resnet_example.py 2025-02-06 01:04:11.610356+00:00
@@ -2,11 +2,12 @@
.. _torch_compile_resnet:
Compiling ResNet with dynamic shapes using the `torch.compile` backend
==========================================================
-This interactive script is intended as a sample of the Torch-TensorRT workflow with `torch.compile` on a ResNet model."""
+This interactive script is intended as a sample of the Torch-TensorRT workflow with `torch.compile` on a ResNet model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_export_cudagraphs.py 2025-02-06 01:03:48.066679+00:00
+++ /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_export_cudagraphs.py 2025-02-06 01:04:11.626222+00:00
@@ -2,11 +2,12 @@
.. _torch_export_cudagraphs:
Torch Export with Cudagraphs
======================================================
-This interactive script is intended as an overview of the process by which the Torch-TensorRT Cudagraphs integration can be used in the `ir="dynamo"` path. The functionality works similarly in the `torch.compile` path as well."""
+This interactive script is intended as an overview of the process by which the Torch-TensorRT Cudagraphs integration can be used in the `ir="dynamo"` path. The functionality works similarly in the `torch.compile` path as well.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_export_llama2.py 2025-02-06 01:03:48.066679+00:00
+++ /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_export_llama2.py 2025-02-06 01:04:11.634011+00:00
@@ -2,11 +2,12 @@
.. _torch_export_llama2:
Compiling Llama2 using the dynamo backend
==========================================================
-This script illustrates Torch-TensorRT workflow with dynamo backend on popular Llama2 model."""
+This script illustrates Torch-TensorRT workflow with dynamo backend on popular Llama2 model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
import torch
--- /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_export_gpt2.py 2025-02-06 01:03:48.066679+00:00
+++ /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_export_gpt2.py 2025-02-06 01:04:11.641696+00:00
@@ -2,11 +2,12 @@
.. _torch_export_gpt2:
Compiling GPT2 using the dynamo backend
==========================================================
-This script illustrates Torch-TensorRT workflow with dynamo backend on popular GPT2 model."""
+This script illustrates Torch-TensorRT workflow with dynamo backend on popular GPT2 model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
import torch
--- /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/_Input.py 2025-02-06 01:03:48.075679+00:00
+++ /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/_Input.py 2025-02-06 01:04:12.177641+00:00
@@ -259,11 +259,11 @@
else:
return False
@staticmethod
def _parse_tensor_domain(
- domain: Optional[Tuple[float, float]]
+ domain: Optional[Tuple[float, float]],
) -> Tuple[float, float]:
"""
Produce a tuple of integers which specifies a tensor domain in the interval format: [lo, hi)
Args:
--- /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/dynamo/conversion/_TRTBuilderMonitor.py 2025-02-06 01:03:48.077679+00:00
+++ /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/dynamo/conversion/_TRTBuilderMonitor.py 2025-02-06 01:04:12.410974+00:00
@@ -51,17 +51,17 @@
def _redraw(self, *, blank_lines: int = 0) -> None:
if self._render:
def clear_line() -> None:
- print("\x1B[2K", end="")
+ print("\x1b[2K", end="")
def move_to_start_of_line() -> None:
- print("\x1B[0G", end="")
+ print("\x1b[0G", end="")
def move_cursor_up(lines: int) -> None:
- print("\x1B[{}A".format(lines), end="")
+ print("\x1b[{}A".format(lines), end="")
def progress_bar(steps: int, num_steps: int) -> str:
INNER_WIDTH = 10
completed_bar_chars = int(INNER_WIDTH * steps / float(num_steps))
return "[{}{}]".format(
--- /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/_enums.py 2025-02-06 01:03:48.075679+00:00
+++ /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/_enums.py 2025-02-06 01:04:12.519862+00:00
@@ -1198,11 +1198,11 @@
"Provided unsupported source type for EngineCapability conversion"
)
@classmethod
def try_from(
- c: Union[trt.EngineCapability, EngineCapability]
+ c: Union[trt.EngineCapability, EngineCapability],
) -> Optional[EngineCapability]:
"""Create a Torch-TensorRT engine capability enum from a TensorRT engine capability enum.
Takes a device type enum from tensorrt and create a ``torch_tensorrt.EngineCapability``.
If the source is not supported or the engine capability level is not supported in Torch-TensorRT,
--- /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/dynamo/conversion/impl/activation/ops.py 2025-02-06 01:03:48.078679+00:00
+++ /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/dynamo/conversion/impl/activation/ops.py 2025-02-06 01:04:12.759923+00:00
@@ -245,11 +245,11 @@
beta: float,
) -> TRTTensor:
operation_type = trt.ActivationType.HARD_SIGMOID
def hard_sigmoid_dyn_range_fn(
- dyn_range: Tuple[float, float]
+ dyn_range: Tuple[float, float],
) -> Tuple[float, float]:
def hard_sigmoid_fn(x: float) -> float:
return max(0, min(1, alpha * x + beta))
return hard_sigmoid_fn(dyn_range[0]), hard_sigmoid_fn(dyn_range[1])
@@ -308,11 +308,11 @@
alpha: float,
) -> TRTTensor:
operation_type = trt.ActivationType.THRESHOLDED_RELU
def thresholded_relu_dyn_range_fn(
- dyn_range: Tuple[float, float]
+ dyn_range: Tuple[float, float],
) -> Tuple[float, float]:
def thresholded_relu_fn(x: float) -> float:
return x if x > alpha else 0
return thresholded_relu_fn(dyn_range[0]), thresholded_relu_fn(dyn_range[1])
--- /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/dynamo/utils.py 2025-02-06 01:03:48.082679+00:00
+++ /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/dynamo/utils.py 2025-02-06 01:04:14.294198+00:00
@@ -463,11 +463,11 @@
else:
return torch.device(device)
def to_torch_tensorrt_device(
- device: Optional[Union[Device, torch.device, str]]
+ device: Optional[Union[Device, torch.device, str]],
) -> Device:
"""Cast a device-type to torch_tensorrt.Device
Returns the corresponding torch_tensorrt.Device
"""
--- /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/fx/test/converters/acc_op/test_where.py 2025-02-06 01:03:48.087679+00:00
+++ /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/fx/test/converters/acc_op/test_where.py 2025-02-06 01:04:15.084401+00:00
@@ -99,11 +99,11 @@
self.y = torch.ones(y_shape)
def forward(self, condition):
return torch.where(condition, self.x, self.y)
- inputs = [(torch.randn(condition_shape) > 0)]
+ inputs = [torch.randn(condition_shape) > 0]
self.run_test(
Where(x_shape, y_shape),
inputs,
expected_ops={acc_ops.where},
test_implicit_batch_dim=False,
--- /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/fx/tracer/acc_tracer/acc_tracer.py 2025-02-06 01:03:48.091679+00:00
+++ /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/fx/tracer/acc_tracer/acc_tracer.py 2025-02-06 01:04:16.301252+00:00
@@ -515,11 +515,11 @@
dim0 = cast(int, transpose_node.args[1])
dim1 = cast(int, transpose_node.args[2])
changed = False
def _calculate_dim(
- transpose_dim: Union[torch.fx.Node, int]
+ transpose_dim: Union[torch.fx.Node, int],
) -> Union[torch.fx.Node, int]:
nonlocal transpose_input_node
nonlocal changed
if isinstance(transpose_dim, torch.fx.Node):
# Transpose dim is sub node
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are some changes that do not conform to Python style guidelines:
--- /home/runner/work/TensorRT/TensorRT/docs/_downloads/0e30a6276601af7e5fc4d5166e2e3d37/torch_compile_advanced_usage.py 2025-02-07 00:52:13.033080+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/_downloads/0e30a6276601af7e5fc4d5166e2e3d37/torch_compile_advanced_usage.py 2025-02-07 00:52:34.063013+00:00
@@ -2,11 +2,12 @@
.. _torch_compile_advanced_usage:
Torch Compile Advanced Usage
======================================================
-This interactive script is intended as an overview of the process by which `torch_tensorrt.compile(..., ir="torch_compile", ...)` works, and how it integrates with the `torch.compile` API."""
+This interactive script is intended as an overview of the process by which `torch_tensorrt.compile(..., ir="torch_compile", ...)` works, and how it integrates with the `torch.compile` API.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/docs/_downloads/2a9ac10f2667047a7f398d1593b7ca33/torch_export_gpt2.py 2025-02-07 00:52:13.033080+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/_downloads/2a9ac10f2667047a7f398d1593b7ca33/torch_export_gpt2.py 2025-02-07 00:52:34.086540+00:00
@@ -2,11 +2,12 @@
.. _torch_export_gpt2:
Compiling GPT2 using the dynamo backend
==========================================================
-This script illustrates Torch-TensorRT workflow with dynamo backend on popular GPT2 model."""
+This script illustrates Torch-TensorRT workflow with dynamo backend on popular GPT2 model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
import torch
--- /home/runner/work/TensorRT/TensorRT/docs/_downloads/418941399c146271a7b7728ba3059960/dynamo_compile_resnet_example.py 2025-02-07 00:52:13.034080+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/_downloads/418941399c146271a7b7728ba3059960/dynamo_compile_resnet_example.py 2025-02-07 00:52:34.120892+00:00
@@ -2,11 +2,12 @@
.. _dynamo_compile_resnet:
Compiling ResNet using the Torch-TensorRT Dyanmo Frontend
==========================================================
-This interactive script is intended as a sample of the `torch_tensorrt.dynamo.compile` workflow on a ResNet model."""
+This interactive script is intended as a sample of the `torch_tensorrt.dynamo.compile` workflow on a ResNet model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/docs/_downloads/3d4d74f6636d986f33167154f6553961/torch_export_cudagraphs.py 2025-02-07 00:52:13.033080+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/_downloads/3d4d74f6636d986f33167154f6553961/torch_export_cudagraphs.py 2025-02-07 00:52:34.136438+00:00
@@ -2,11 +2,12 @@
.. _torch_export_cudagraphs:
Torch Export with Cudagraphs
======================================================
-This interactive script is intended as an overview of the process by which the Torch-TensorRT Cudagraphs integration can be used in the `ir="dynamo"` path. The functionality works similarly in the `torch.compile` path as well."""
+This interactive script is intended as an overview of the process by which the Torch-TensorRT Cudagraphs integration can be used in the `ir="dynamo"` path. The functionality works similarly in the `torch.compile` path as well.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/docs/_downloads/7b7004dc2ea6f839be532665e16e0426/torch_export_llama2.py 2025-02-07 00:52:13.036080+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/_downloads/7b7004dc2ea6f839be532665e16e0426/torch_export_llama2.py 2025-02-07 00:52:34.164579+00:00
@@ -2,11 +2,12 @@
.. _torch_export_llama2:
Compiling Llama2 using the dynamo backend
==========================================================
-This script illustrates Torch-TensorRT workflow with dynamo backend on popular Llama2 model."""
+This script illustrates Torch-TensorRT workflow with dynamo backend on popular Llama2 model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
import torch
--- /home/runner/work/TensorRT/TensorRT/docs/_downloads/e1ef5a42560a98a132f56a79d0b66f79/dynamo_compile_advanced_usage.py 2025-02-07 00:52:13.039080+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/_downloads/e1ef5a42560a98a132f56a79d0b66f79/dynamo_compile_advanced_usage.py 2025-02-07 00:52:34.246754+00:00
@@ -2,11 +2,12 @@
.. _dynamo_compile_advanced_usage:
Dynamo Compile Advanced Usage
======================================================
-This interactive script is intended as an overview of the process by which `torch_tensorrt.dynamo.compile` works, and how it integrates with the new `torch.compile` API."""
+This interactive script is intended as an overview of the process by which `torch_tensorrt.dynamo.compile` works, and how it integrates with the new `torch.compile` API.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/docs/_downloads/d6e1bb6ec5f884994554d9d12e37a0f6/torch_compile_resnet_example.py 2025-02-07 00:52:13.038080+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/_downloads/d6e1bb6ec5f884994554d9d12e37a0f6/torch_compile_resnet_example.py 2025-02-07 00:52:34.255751+00:00
@@ -2,11 +2,12 @@
.. _torch_compile_resnet:
Compiling ResNet with dynamic shapes using the `torch.compile` backend
==========================================================
-This interactive script is intended as a sample of the Torch-TensorRT workflow with `torch.compile` on a ResNet model."""
+This interactive script is intended as a sample of the Torch-TensorRT workflow with `torch.compile` on a ResNet model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/docs/_downloads/dfa60e8f9850fd7761f3e7da81304d32/torch_compile_transformers_example.py 2025-02-07 00:52:13.038080+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/_downloads/dfa60e8f9850fd7761f3e7da81304d32/torch_compile_transformers_example.py 2025-02-07 00:52:34.256079+00:00
@@ -2,11 +2,12 @@
.. _torch_compile_transformer:
Compiling BERT using the `torch.compile` backend
==============================================================
-This interactive script is intended as a sample of the Torch-TensorRT workflow with `torch.compile` on a BERT model."""
+This interactive script is intended as a sample of the Torch-TensorRT workflow with `torch.compile` on a BERT model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/docs/_downloads/e550c5f53cc43e11aa6da8cfb79b54df/dynamo_compile_transformers_example.py 2025-02-07 00:52:13.039080+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/_downloads/e550c5f53cc43e11aa6da8cfb79b54df/dynamo_compile_transformers_example.py 2025-02-07 00:52:34.290842+00:00
@@ -2,11 +2,12 @@
.. _torch_compile_transformer:
Compiling a Transformer using torch.compile and TensorRT
==============================================================
-This interactive script is intended as a sample of the `torch_tensorrt.dynamo.compile` workflow on a transformer-based model."""
+This interactive script is intended as a sample of the `torch_tensorrt.dynamo.compile` workflow on a transformer-based model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/docs/v1.4.0/_downloads/418941399c146271a7b7728ba3059960/dynamo_compile_resnet_example.py 2025-02-07 00:52:13.491078+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/v1.4.0/_downloads/418941399c146271a7b7728ba3059960/dynamo_compile_resnet_example.py 2025-02-07 00:52:34.303459+00:00
@@ -2,11 +2,12 @@
.. _dynamo_compile_resnet:
Compiling ResNet using the Torch-TensorRT Dyanmo Frontend
==========================================================
-This interactive script is intended as a sample of the `torch_tensorrt.dynamo.compile` workflow on a ResNet model."""
+This interactive script is intended as a sample of the `torch_tensorrt.dynamo.compile` workflow on a ResNet model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/docs/v1.4.0/_downloads/e1ef5a42560a98a132f56a79d0b66f79/dynamo_compile_advanced_usage.py 2025-02-07 00:52:13.492078+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/v1.4.0/_downloads/e1ef5a42560a98a132f56a79d0b66f79/dynamo_compile_advanced_usage.py 2025-02-07 00:52:34.322315+00:00
@@ -2,11 +2,12 @@
.. _dynamo_compile_advanced_usage:
Dynamo Compile Advanced Usage
======================================================
-This interactive script is intended as an overview of the process by which `torch_tensorrt.dynamo.compile` works, and how it integrates with the new `torch.compile` API."""
+This interactive script is intended as an overview of the process by which `torch_tensorrt.dynamo.compile` works, and how it integrates with the new `torch.compile` API.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/docs/v1.4.0/_downloads/e550c5f53cc43e11aa6da8cfb79b54df/dynamo_compile_transformers_example.py 2025-02-07 00:52:13.492078+00:00
+++ /home/runner/work/TensorRT/TensorRT/docs/v1.4.0/_downloads/e550c5f53cc43e11aa6da8cfb79b54df/dynamo_compile_transformers_example.py 2025-02-07 00:52:34.336851+00:00
@@ -2,11 +2,12 @@
.. _torch_compile_transformer:
Compiling a Transformer using torch.compile and TensorRT
==============================================================
-This interactive script is intended as a sample of the `torch_tensorrt.dynamo.compile` workflow on a transformer-based model."""
+This interactive script is intended as a sample of the `torch_tensorrt.dynamo.compile` workflow on a transformer-based model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_compile_advanced_usage.py 2025-02-07 00:52:13.522078+00:00
+++ /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_compile_advanced_usage.py 2025-02-07 00:52:34.506845+00:00
@@ -2,11 +2,12 @@
.. _torch_compile_advanced_usage:
Torch Compile Advanced Usage
======================================================
-This interactive script is intended as an overview of the process by which `torch_tensorrt.compile(..., ir="torch_compile", ...)` works, and how it integrates with the `torch.compile` API."""
+This interactive script is intended as an overview of the process by which `torch_tensorrt.compile(..., ir="torch_compile", ...)` works, and how it integrates with the `torch.compile` API.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_compile_resnet_example.py 2025-02-07 00:52:13.522078+00:00
+++ /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_compile_resnet_example.py 2025-02-07 00:52:34.536693+00:00
@@ -2,11 +2,12 @@
.. _torch_compile_resnet:
Compiling ResNet with dynamic shapes using the `torch.compile` backend
==========================================================
-This interactive script is intended as a sample of the Torch-TensorRT workflow with `torch.compile` on a ResNet model."""
+This interactive script is intended as a sample of the Torch-TensorRT workflow with `torch.compile` on a ResNet model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_compile_transformers_example.py 2025-02-07 00:52:13.522078+00:00
+++ /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_compile_transformers_example.py 2025-02-07 00:52:34.551522+00:00
@@ -2,11 +2,12 @@
.. _torch_compile_transformer:
Compiling BERT using the `torch.compile` backend
==============================================================
-This interactive script is intended as a sample of the Torch-TensorRT workflow with `torch.compile` on a BERT model."""
+This interactive script is intended as a sample of the Torch-TensorRT workflow with `torch.compile` on a BERT model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_export_cudagraphs.py 2025-02-07 00:52:13.522078+00:00
+++ /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_export_cudagraphs.py 2025-02-07 00:52:34.558582+00:00
@@ -2,11 +2,12 @@
.. _torch_export_cudagraphs:
Torch Export with Cudagraphs
======================================================
-This interactive script is intended as an overview of the process by which the Torch-TensorRT Cudagraphs integration can be used in the `ir="dynamo"` path. The functionality works similarly in the `torch.compile` path as well."""
+This interactive script is intended as an overview of the process by which the Torch-TensorRT Cudagraphs integration can be used in the `ir="dynamo"` path. The functionality works similarly in the `torch.compile` path as well.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--- /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_export_gpt2.py 2025-02-07 00:52:13.522078+00:00
+++ /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_export_gpt2.py 2025-02-07 00:52:34.561687+00:00
@@ -2,11 +2,12 @@
.. _torch_export_gpt2:
Compiling GPT2 using the dynamo backend
==========================================================
-This script illustrates Torch-TensorRT workflow with dynamo backend on popular GPT2 model."""
+This script illustrates Torch-TensorRT workflow with dynamo backend on popular GPT2 model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
import torch
--- /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_export_llama2.py 2025-02-07 00:52:13.522078+00:00
+++ /home/runner/work/TensorRT/TensorRT/examples/dynamo/torch_export_llama2.py 2025-02-07 00:52:34.578972+00:00
@@ -2,11 +2,12 @@
.. _torch_export_llama2:
Compiling Llama2 using the dynamo backend
==========================================================
-This script illustrates Torch-TensorRT workflow with dynamo backend on popular Llama2 model."""
+This script illustrates Torch-TensorRT workflow with dynamo backend on popular Llama2 model.
+"""
# %%
# Imports and Model Definition
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
import torch
--- /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/_Input.py 2025-02-07 00:52:13.531078+00:00
+++ /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/_Input.py 2025-02-07 00:52:35.059510+00:00
@@ -259,11 +259,11 @@
else:
return False
@staticmethod
def _parse_tensor_domain(
- domain: Optional[Tuple[float, float]]
+ domain: Optional[Tuple[float, float]],
) -> Tuple[float, float]:
"""
Produce a tuple of integers which specifies a tensor domain in the interval format: [lo, hi)
Args:
--- /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/dynamo/conversion/_TRTBuilderMonitor.py 2025-02-07 00:52:13.533077+00:00
+++ /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/dynamo/conversion/_TRTBuilderMonitor.py 2025-02-07 00:52:35.293944+00:00
@@ -51,17 +51,17 @@
def _redraw(self, *, blank_lines: int = 0) -> None:
if self._render:
def clear_line() -> None:
- print("\x1B[2K", end="")
+ print("\x1b[2K", end="")
def move_to_start_of_line() -> None:
- print("\x1B[0G", end="")
+ print("\x1b[0G", end="")
def move_cursor_up(lines: int) -> None:
- print("\x1B[{}A".format(lines), end="")
+ print("\x1b[{}A".format(lines), end="")
def progress_bar(steps: int, num_steps: int) -> str:
INNER_WIDTH = 10
completed_bar_chars = int(INNER_WIDTH * steps / float(num_steps))
return "[{}{}]".format(
--- /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/_enums.py 2025-02-07 00:52:13.532078+00:00
+++ /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/_enums.py 2025-02-07 00:52:35.504709+00:00
@@ -1198,11 +1198,11 @@
"Provided unsupported source type for EngineCapability conversion"
)
@classmethod
def try_from(
- c: Union[trt.EngineCapability, EngineCapability]
+ c: Union[trt.EngineCapability, EngineCapability],
) -> Optional[EngineCapability]:
"""Create a Torch-TensorRT engine capability enum from a TensorRT engine capability enum.
Takes a device type enum from tensorrt and create a ``torch_tensorrt.EngineCapability``.
If the source is not supported or the engine capability level is not supported in Torch-TensorRT,
--- /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/dynamo/conversion/impl/activation/ops.py 2025-02-07 00:52:13.534077+00:00
+++ /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/dynamo/conversion/impl/activation/ops.py 2025-02-07 00:52:35.707000+00:00
@@ -245,11 +245,11 @@
beta: float,
) -> TRTTensor:
operation_type = trt.ActivationType.HARD_SIGMOID
def hard_sigmoid_dyn_range_fn(
- dyn_range: Tuple[float, float]
+ dyn_range: Tuple[float, float],
) -> Tuple[float, float]:
def hard_sigmoid_fn(x: float) -> float:
return max(0, min(1, alpha * x + beta))
return hard_sigmoid_fn(dyn_range[0]), hard_sigmoid_fn(dyn_range[1])
@@ -308,11 +308,11 @@
alpha: float,
) -> TRTTensor:
operation_type = trt.ActivationType.THRESHOLDED_RELU
def thresholded_relu_dyn_range_fn(
- dyn_range: Tuple[float, float]
+ dyn_range: Tuple[float, float],
) -> Tuple[float, float]:
def thresholded_relu_fn(x: float) -> float:
return x if x > alpha else 0
return thresholded_relu_fn(dyn_range[0]), thresholded_relu_fn(dyn_range[1])
--- /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/dynamo/utils.py 2025-02-07 00:52:13.539078+00:00
+++ /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/dynamo/utils.py 2025-02-07 00:52:37.201885+00:00
@@ -463,11 +463,11 @@
else:
return torch.device(device)
def to_torch_tensorrt_device(
- device: Optional[Union[Device, torch.device, str]]
+ device: Optional[Union[Device, torch.device, str]],
) -> Device:
"""Cast a device-type to torch_tensorrt.Device
Returns the corresponding torch_tensorrt.Device
"""
--- /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/fx/test/converters/acc_op/test_where.py 2025-02-07 00:52:13.544077+00:00
+++ /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/fx/test/converters/acc_op/test_where.py 2025-02-07 00:52:38.082843+00:00
@@ -99,11 +99,11 @@
self.y = torch.ones(y_shape)
def forward(self, condition):
return torch.where(condition, self.x, self.y)
- inputs = [(torch.randn(condition_shape) > 0)]
+ inputs = [torch.randn(condition_shape) > 0]
self.run_test(
Where(x_shape, y_shape),
inputs,
expected_ops={acc_ops.where},
test_implicit_batch_dim=False,
--- /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/fx/tracer/acc_tracer/acc_tracer.py 2025-02-07 00:52:13.547077+00:00
+++ /home/runner/work/TensorRT/TensorRT/py/torch_tensorrt/fx/tracer/acc_tracer/acc_tracer.py 2025-02-07 00:52:39.311891+00:00
@@ -515,11 +515,11 @@
dim0 = cast(int, transpose_node.args[1])
dim1 = cast(int, transpose_node.args[2])
changed = False
def _calculate_dim(
- transpose_dim: Union[torch.fx.Node, int]
+ transpose_dim: Union[torch.fx.Node, int],
) -> Union[torch.fx.Node, int]:
nonlocal transpose_input_node
nonlocal changed
if isinstance(transpose_dim, torch.fx.Node):
# Transpose dim is sub node
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Figure out if QDP will hold the reference to the plugin for us
- Add test cases for 1. (Tensor, Tensor) -> (Tensor) 2. (Tensor, int, float) -> (Tensor) 3. (Tensor, Tensor) -> (Tensor, Tensor)
Rebase as well |
Description
This PR introduces a new feature which enables generating automatic plugin generation using TensorRT QDP feature.
Checklist: