From 95fc0a0c2cd798f0fbfee85feba19721c49050fe Mon Sep 17 00:00:00 2001 From: Evan Li Date: Mon, 29 Jan 2024 18:15:17 -0800 Subject: [PATCH 1/7] test embedding bag on TRT 9 --- .../dynamo/conversion/aten_ops_converters.py | 16 +- .../dynamo/conversion/impl/embedding.py | 208 ++++++++++++++---- .../conversion/test_embedding_bag_aten.py | 63 +++--- 3 files changed, 213 insertions(+), 74 deletions(-) diff --git a/py/torch_tensorrt/dynamo/conversion/aten_ops_converters.py b/py/torch_tensorrt/dynamo/conversion/aten_ops_converters.py index 45949a1c8d..55f21f4d28 100644 --- a/py/torch_tensorrt/dynamo/conversion/aten_ops_converters.py +++ b/py/torch_tensorrt/dynamo/conversion/aten_ops_converters.py @@ -281,17 +281,19 @@ def embedding_bag_validator(node: Node) -> bool: ) -@dynamo_tensorrt_converter( - torch.ops.aten.embedding_bag.default, capability_validator=embedding_bag_validator -) -@dynamo_tensorrt_converter( - torch.ops.aten._embedding_bag.default, capability_validator=embedding_bag_validator -) +# @dynamo_tensorrt_converter( +# torch.ops.aten.embedding_bag.default, capability_validator=embedding_bag_validator +# ) +# @dynamo_tensorrt_converter( +# torch.ops.aten._embedding_bag.default, capability_validator=embedding_bag_validator +# ) +@dynamo_tensorrt_converter(torch.ops.aten.embedding_bag.default) +@dynamo_tensorrt_converter(torch.ops.aten._embedding_bag.default) @enforce_tensor_types( { 0: (TRTTensor,), 1: (TRTTensor,), - 2: (np.ndarray, torch.Tensor), + # 2: (np.ndarray, torch.Tensor), } ) def aten_ops_embedding_bag( diff --git a/py/torch_tensorrt/dynamo/conversion/impl/embedding.py b/py/torch_tensorrt/dynamo/conversion/impl/embedding.py index ac9faf9f4d..899dce73c4 100644 --- a/py/torch_tensorrt/dynamo/conversion/impl/embedding.py +++ b/py/torch_tensorrt/dynamo/conversion/impl/embedding.py @@ -1,5 +1,5 @@ import functools -from typing import Optional, Sequence, Tuple, Union +from typing import Optional, Tuple import numpy as np import torch @@ -7,7 +7,7 @@ from torch.fx.node import Target from torch_tensorrt.dynamo._SourceIR import SourceIR from torch_tensorrt.dynamo.conversion._ConversionContext import ConversionContext -from torch_tensorrt.dynamo.conversion.converter_utils import get_trt_tensor, to_numpy +from torch_tensorrt.dynamo.conversion.converter_utils import get_trt_tensor from torch_tensorrt.fx.converters.converter_utils import set_layer_name from torch_tensorrt.fx.types import TRTTensor @@ -47,6 +47,134 @@ def embedding( return gather_layer.get_output(0) +# def embedding_bag( +# ctx: ConversionContext, +# target: Target, +# source_ir: Optional[SourceIR], +# name: str, +# weight: TRTTensor, +# indices: TRTTensor, +# offsets: Union[torch.Tensor, np.ndarray, Sequence[int]], +# scale_grad_by_freq: bool, +# mode: int, +# sparse: bool, +# per_sample_weights: Optional[TRTTensor], +# include_last_offset: bool, +# ) -> Tuple[TRTTensor, TRTTensor, TRTTensor, TRTTensor]: +# """ +# This function is for calculating embedding bags. + +# In PyTorch, `offsets` is only used when input is 1D. If input is 2D of shape (B, N), +# it will be treated as B bags (sequences) each of fixed length N, and this will return +# B values aggregated in a way depending on the mode. `offsets` is ignored and required +# to be None in this case. + +# However, according to the schema, `offsets` is required for input with any dimensions. +# Accordingly, this function flattens N-D input to 1D and then to calculate embedding bags. +# """ + +# # TODO: support 2D inputs +# # indices = impl.shuffle.reshape(ctx, target, source_ir, f"{name}_reshape_indices", indices, (-1,)) +# reduce_name = "" +# if mode == 0: # sum +# reduce_op = functools.partial( +# impl.reduce.sum, ctx=ctx, target=target, source_ir=source_ir +# ) +# reduce_name = "sum" +# elif mode == 1: # mean +# reduce_op = functools.partial( +# impl.reduce.mean, ctx=ctx, target=target, source_ir=source_ir +# ) +# reduce_name = "mean" +# elif mode == 2: # max +# reduce_op = functools.partial( +# impl.reduce.max, +# ctx=ctx, +# target=target, +# source_ir=source_ir, +# return_indices=False, +# ) +# reduce_name = "max" + +# # calculate embedding +# embed = embedding( +# ctx, +# target, +# source_ir, +# f"{name}_embedding", +# indices, +# weight, +# scale_grad_by_freq, +# sparse, +# ) + +# # give weights to embedding +# if per_sample_weights is not None: +# assert ( +# per_sample_weights.shape == indices.shape +# ), f"`per_sample_weights` (shape: {per_sample_weights.shape}) must have exactly the same shape as indices/input (shape: {indices.shape})!" +# per_sample_weights = get_trt_tensor( +# ctx, per_sample_weights, f"{name}_per_sample_weights", np.float32 +# ) +# per_sample_weights = impl.shuffle.reshape( +# ctx, +# target, +# source_ir, +# f"{name}_reshape_per_sample_weights", +# per_sample_weights, +# (-1, 1), +# ) +# embed = impl.elementwise.mul( +# ctx, +# target, +# source_ir, +# f"{name}_mul_per_sample_weights", +# embed, +# per_sample_weights, +# ) + +# offsets = to_numpy(offsets) + +# if include_last_offset is False: +# # add the end index to offsets +# offsets = np.append(offsets, indices.shape[0]) +# else: +# # modify the last index of offsets to the end index +# # however, pytorch doc says if `include_last_offset` is True, the size of offsets +# # is equal to the number of bags + 1. The last element is the size of the input, +# # or the ending index position of the last bag (sequence). +# offsets[-1] = indices.shape[0] + +# # separately reduce embeddings for different bags +# reduced_embed = [] +# len_offsets = len(offsets) +# for i in range(len_offsets - 1): +# if offsets[i] < offsets[i + 1]: +# sliced_embed = impl.slice.slice_op( +# ctx, +# target, +# source_ir, +# f"{name}_slice_embed_{i}", +# embed, +# 0, +# int(offsets[i]), +# int(offsets[i + 1]), +# 1, +# ) +# reduced_sliced_embed = reduce_op( +# name=f"{name}_{reduce_name}_{i}", +# input_val=sliced_embed, +# dim=0, +# keepdim=True, +# ) +# reduced_embed.append(reduced_sliced_embed) + +# out = impl.cat.cat(ctx, target, source_ir, f"{name}_cat", reduced_embed, 0) +# # out = reduce_op(input_val=embed, dim=1, keepdim=False) # Note: This implementation doesn't work for N-dim + +# return out, None, None, None + + def embedding_bag( ctx: ConversionContext, target: Target, @@ -54,7 +182,7 @@ def embedding_bag( name: str, weight: TRTTensor, indices: TRTTensor, - offsets: Union[torch.Tensor, np.ndarray, Sequence[int]], + offsets: TRTTensor, scale_grad_by_freq: bool, mode: int, sparse: bool, @@ -133,43 +261,49 @@ def embedding_bag( per_sample_weights, ) - offsets = to_numpy(offsets) - - if include_last_offset is False: - # add the end index to offsets - offsets = np.append(offsets, indices.shape[0]) + if include_last_offset: + pass else: - # modify the last index of offsets to the end index - # however, pytorch doc says if `include_last_offset` is True, the size of offsets - # is equal to the number of bags + 1. The last element is the size of the input, - # or the ending index position of the last bag (sequence). - offsets[-1] = indices.shape[0] + # add the end index to `offsets` + offsets = impl.cat.cat( + ctx, + target, + source_ir, + f"{name}_concat", + [offsets, torch.tensor([indices.shape[0]], dtype=torch.int32)], + 0, + ) - # separately reduce embeddings for different bags reduced_embed = [] - len_offsets = len(offsets) - for i in range(len_offsets - 1): - if offsets[i] < offsets[i + 1]: - sliced_embed = impl.slice.slice_op( - ctx, - target, - source_ir, - f"{name}_slice_embed_{i}", - embed, - 0, - int(offsets[i]), - int(offsets[i + 1]), - 1, - ) - reduced_sliced_embed = reduce_op( - name=f"{name}_{reduce_name}_{i}", - input_val=sliced_embed, - dim=0, - keepdim=True, - ) - reduced_embed.append(reduced_sliced_embed) + start = ctx.net.add_gather( + offsets, get_trt_tensor(ctx, 0, "tensor_0"), 0 + ).get_output(0) + const_list = get_trt_tensor(ctx, np.array(range(indices.shape[0])), "constant_list") - out = impl.cat.cat(ctx, target, source_ir, f"{name}_cat", reduced_embed, 0) - # out = reduce_op(input_val=embed, dim=1, keepdim=False) # Note: This implementation doesn't work for N-dim + for i in range(1, offsets.shape[0]): + end = ctx.net.add_gather( + offsets, get_trt_tensor(ctx, i, f"tensor_{i}"), 0 + ).get_output(0) + diff = impl.elementwise.sub( + ctx, target, source_ir, f"{name}_sub_{i}", end, start + ) + + slice_layer = ctx.net.add_slice(const_list, (1,), (1,), (1,)) + slice_layer.set_input(1, start) + slice_layer.set_input(2, diff) + sliced_indices = slice_layer.get_output(0) + index_embed = impl.select.index( + ctx, target, source_ir, f"{name}_index_{i}", embed, [sliced_indices] + ) # np.array([0,1,2,3,4,5]) + reduced_sliced_embed = reduce_op( + name=f"{name}_{reduce_name}_{i}", + input_val=index_embed, + dim=0, + keepdim=True, + ) + reduced_embed.append(reduced_sliced_embed) + start = end + + out = impl.cat.cat(ctx, target, source_ir, f"{name}_cat", reduced_embed, 0) return out, None, None, None diff --git a/tests/py/dynamo/conversion/test_embedding_bag_aten.py b/tests/py/dynamo/conversion/test_embedding_bag_aten.py index 6d7b05f0e1..8de576665b 100644 --- a/tests/py/dynamo/conversion/test_embedding_bag_aten.py +++ b/tests/py/dynamo/conversion/test_embedding_bag_aten.py @@ -1,9 +1,8 @@ import torch +from harness import DispatchTestCase from parameterized import param, parameterized from torch.testing._internal.common_utils import run_tests -from .harness import DispatchTestCase - class TestEmbeddingBagConverter(DispatchTestCase): @parameterized.expand( @@ -12,39 +11,42 @@ class TestEmbeddingBagConverter(DispatchTestCase): param( test_name="1d_indices_1", weight=torch.randn((10, 3), dtype=torch.float32), - indices=torch.tensor([1, 2, 4, 5, 4, 3], dtype=torch.int32), - offsets=torch.tensor([0, 3], dtype=torch.int32), - scale_grad_by_freq=False, - mode=1, - sparse=False, - per_sample_weights=None, - include_last_offset=True, - padding_idx=-1, - ), - param( - test_name="1d_indices_2", - weight=torch.randn((10, 3), dtype=torch.float32), - indices=torch.tensor([1, 2, 4, 5, 4, 3], dtype=torch.int32), - offsets=torch.tensor([0, 5], dtype=torch.int32), - scale_grad_by_freq=False, - mode=0, - sparse=False, - per_sample_weights=torch.randn((6,)), - include_last_offset=False, - padding_idx=-1, - ), - param( - test_name="1d_indices_3", - weight=torch.randn((10, 3), dtype=torch.float32), - indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 9], dtype=torch.int32), + indices=torch.tensor( + [1, 2, 4, 5, 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 5, 4, 3, 2], + dtype=torch.int32, + ), offsets=torch.tensor([0, 2, 4], dtype=torch.int32), scale_grad_by_freq=False, - mode=2, + mode=1, sparse=False, per_sample_weights=None, include_last_offset=False, padding_idx=-1, ), + # param( + # test_name="1d_indices_2", + # weight=torch.randn((10, 3), dtype=torch.float32), + # indices=torch.tensor([1, 2, 4, 5, 4, 3], dtype=torch.int32), + # offsets=torch.tensor([0, 5], dtype=torch.int32), + # scale_grad_by_freq=False, + # mode=0, + # sparse=False, + # per_sample_weights=torch.randn((6,)), + # include_last_offset=False, + # padding_idx=-1, + # ), + # param( + # test_name="1d_indices_3", + # weight=torch.randn((10, 3), dtype=torch.float32), + # indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 9], dtype=torch.int32), + # offsets=torch.tensor([0, 2, 4], dtype=torch.int32), + # scale_grad_by_freq=False, + # mode=2, + # sparse=False, + # per_sample_weights=None, + # include_last_offset=False, + # padding_idx=-1, + # ), # 2D input # param( # test_name="2d_indices_1", @@ -117,7 +119,7 @@ def test_embedding_bag( padding_idx, ): class TestEmbeddingBag(torch.nn.Module): - def forward(self, weight, indices): + def forward(self, weight, indices, offsets): return torch.ops.aten._embedding_bag.default( weight, indices, @@ -132,7 +134,8 @@ def forward(self, weight, indices): self.run_test( TestEmbeddingBag(), - inputs=[weight, indices], + inputs=[weight, indices, offsets], + # use_dynamo_tracer=True, enable_passes=True, ) From 20216c1ee33750d6e1cd30d850ad8eaaf6c104f3 Mon Sep 17 00:00:00 2001 From: Evan Li Date: Tue, 30 Jan 2024 13:04:38 -0800 Subject: [PATCH 2/7] fix a bug in tests --- tests/py/dynamo/conversion/test_embedding_bag_aten.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/py/dynamo/conversion/test_embedding_bag_aten.py b/tests/py/dynamo/conversion/test_embedding_bag_aten.py index 8de576665b..0e70071277 100644 --- a/tests/py/dynamo/conversion/test_embedding_bag_aten.py +++ b/tests/py/dynamo/conversion/test_embedding_bag_aten.py @@ -1,8 +1,9 @@ import torch -from harness import DispatchTestCase from parameterized import param, parameterized from torch.testing._internal.common_utils import run_tests +from .harness import DispatchTestCase + class TestEmbeddingBagConverter(DispatchTestCase): @parameterized.expand( From ddad356e40ec075fef3eded574508fdff663e378 Mon Sep 17 00:00:00 2001 From: Evan Li Date: Tue, 30 Jan 2024 16:15:36 -0800 Subject: [PATCH 3/7] WIP: support embedding bag 1d --- py/torch_tensorrt/dynamo/conversion/_TRTInterpreter.py | 7 +++++++ py/torch_tensorrt/dynamo/conversion/impl/embedding.py | 2 +- tests/py/dynamo/conversion/test_embedding_bag_aten.py | 5 +---- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/py/torch_tensorrt/dynamo/conversion/_TRTInterpreter.py b/py/torch_tensorrt/dynamo/conversion/_TRTInterpreter.py index 06ae596ed0..f8b247c7ef 100644 --- a/py/torch_tensorrt/dynamo/conversion/_TRTInterpreter.py +++ b/py/torch_tensorrt/dynamo/conversion/_TRTInterpreter.py @@ -86,6 +86,12 @@ def __init__( else None ) + # profile = self.builder.create_optimization_profile() + # profile.set_shape_input( + # "offsets", (0, 2, 4), (0, 2, 4), (0, 2, 4) + # ) # match with `offsets` + # self.optimization_profiles = [profile] + self.input_specs = input_specs self.input_specs_iter = 0 self._cur_node_name: Optional[str] = None @@ -156,6 +162,7 @@ def run( build_engine_start_time = datetime.now() builder_config = self.builder.create_builder_config() + # builder_config.set_preview_feature(trt.PreviewFeature.PROFILE_SHARING_0806, True) if self.compilation_settings.workspace_size != 0: builder_config.set_memory_pool_limit( diff --git a/py/torch_tensorrt/dynamo/conversion/impl/embedding.py b/py/torch_tensorrt/dynamo/conversion/impl/embedding.py index 899dce73c4..40745b869a 100644 --- a/py/torch_tensorrt/dynamo/conversion/impl/embedding.py +++ b/py/torch_tensorrt/dynamo/conversion/impl/embedding.py @@ -295,7 +295,7 @@ def embedding_bag( index_embed = impl.select.index( ctx, target, source_ir, f"{name}_index_{i}", embed, [sliced_indices] - ) # np.array([0,1,2,3,4,5]) + ) reduced_sliced_embed = reduce_op( name=f"{name}_{reduce_name}_{i}", input_val=index_embed, diff --git a/tests/py/dynamo/conversion/test_embedding_bag_aten.py b/tests/py/dynamo/conversion/test_embedding_bag_aten.py index 0e70071277..46cbc34d2a 100644 --- a/tests/py/dynamo/conversion/test_embedding_bag_aten.py +++ b/tests/py/dynamo/conversion/test_embedding_bag_aten.py @@ -12,10 +12,7 @@ class TestEmbeddingBagConverter(DispatchTestCase): param( test_name="1d_indices_1", weight=torch.randn((10, 3), dtype=torch.float32), - indices=torch.tensor( - [1, 2, 4, 5, 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 5, 4, 3, 2], - dtype=torch.int32, - ), + indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 6, 8, 1], dtype=torch.int32), offsets=torch.tensor([0, 2, 4], dtype=torch.int32), scale_grad_by_freq=False, mode=1, From 2070e333049320e42f4cd9925597580a9dae8aa9 Mon Sep 17 00:00:00 2001 From: George S <113141689+gs-olive@users.noreply.github.com> Date: Wed, 17 Jan 2024 16:05:38 -0800 Subject: [PATCH 4/7] version: TRT upgrade to 9.2 on Linux Testing (#2538) --- .github/scripts/install-torch-tensorrt.sh | 4 ++-- README.md | 2 +- WORKSPACE | 6 +++--- dev_dep_versions.yml | 2 +- docker/README.md | 4 ++-- packaging/pre_build_script.sh | 24 ++++++++++++++++++++-- py/ci/soname_excludes.params | 4 +++- py/requirements.txt | 4 ++-- pyproject.toml | 4 ++-- tests/py/ts/models/hw_compat.ts | Bin 386982 -> 417937 bytes third_party/cudnn/local/BUILD | 4 ++-- third_party/tensorrt/local/BUILD | 4 +--- toolchains/legacy/pyproject.toml | 4 ++-- 13 files changed, 43 insertions(+), 23 deletions(-) diff --git a/.github/scripts/install-torch-tensorrt.sh b/.github/scripts/install-torch-tensorrt.sh index 2930421d5b..69a318c179 100644 --- a/.github/scripts/install-torch-tensorrt.sh +++ b/.github/scripts/install-torch-tensorrt.sh @@ -4,6 +4,6 @@ set -eou pipefail source ${BUILD_ENV_FILE} ${CONDA_RUN} ${PIP_INSTALL_TORCH} torchvision pyyaml export TRT_VERSION=$(${CONDA_RUN} python -c "import versions; versions.tensorrt_version()") -${CONDA_RUN} python -m pip install /opt/torch-tensorrt-builds/torch_tensorrt*+${CU_VERSION}*.whl tensorrt~=${TRT_VERSION} tensorrt-bindings~=${TRT_VERSION} --extra-index-url=https://pypi.ngc.nvidia.com +${CONDA_RUN} python -m pip install /opt/torch-tensorrt-builds/torch_tensorrt*+${CU_VERSION}*.whl tensorrt~=${TRT_VERSION} tensorrt-bindings~=${TRT_VERSION} --extra-index-url=https://pypi.nvidia.com -echo -e "Running test script"; \ No newline at end of file +echo -e "Running test script"; diff --git a/README.md b/README.md index 875b640304..78602255f1 100644 --- a/README.md +++ b/README.md @@ -119,7 +119,7 @@ These are the following dependencies used to verify the testcases. Torch-TensorR - Libtorch 2.3.0.dev (latest nightly) (built with CUDA 12.1) - CUDA 12.1 - cuDNN 8.9.5 -- TensorRT 8.6.1 +- TensorRT 9.2.0 ## Prebuilt Binaries and Wheel files diff --git a/WORKSPACE b/WORKSPACE index bbc1803296..dc1bdb50d8 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -81,10 +81,10 @@ http_archive( http_archive( name = "tensorrt", build_file = "@//third_party/tensorrt/archive:BUILD", - sha256 = "0f8157a5fc5329943b338b893591373350afa90ca81239cdadd7580cd1eba254", - strip_prefix = "TensorRT-8.6.1.6", + sha256 = "3dd505a9e0d0adf9257080b543f51d91df736dbd1f75417b9dde1a7b7a5d87f2", + strip_prefix = "tensorrt-9.2.0.5", urls = [ - "https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/secure/8.6.1/tars/TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz", + "https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/9.2.0/tensorrt-9.2.0.5.linux.x86_64-gnu.cuda-12.2.tar.gz", ], ) diff --git a/dev_dep_versions.yml b/dev_dep_versions.yml index 442485474c..a4cc2974f1 100644 --- a/dev_dep_versions.yml +++ b/dev_dep_versions.yml @@ -1,4 +1,4 @@ __version__: "2.3.0.dev0" __cuda_version__: "12.1" __cudnn_version__: "8.9" -__tensorrt_version__: "8.6" +__tensorrt_version__: "9.2.0.post12.dev5" diff --git a/docker/README.md b/docker/README.md index 9f83f25134..0b4799a6a5 100644 --- a/docker/README.md +++ b/docker/README.md @@ -17,14 +17,14 @@ Note: By default the container uses the `pre-cxx11-abi` version of Torch + Torch ### Instructions -- The example below uses CUDNN 8.9 and TensorRT 8.6 +- The example below uses CUDNN 8.9 and TensorRT 9.2 - See dependencies for a list of current default dependencies. > From root of Torch-TensorRT repo Build: ``` -DOCKER_BUILDKIT=1 docker build --build-arg TENSORRT_VERSION=8.6 --build-arg CUDNN_VERSION=8.9 -f docker/Dockerfile -t torch_tensorrt:latest . +DOCKER_BUILDKIT=1 docker build --build-arg TENSORRT_VERSION=9.2 --build-arg CUDNN_VERSION=8.9 -f docker/Dockerfile -t torch_tensorrt:latest . ``` Run: diff --git a/packaging/pre_build_script.sh b/packaging/pre_build_script.sh index 18cd5d9fe2..51b1bcfdd7 100755 --- a/packaging/pre_build_script.sh +++ b/packaging/pre_build_script.sh @@ -2,15 +2,35 @@ # Install dependencies python3 -m pip install pyyaml -TRT_VERSION=$(python3 -c "import versions; versions.tensorrt_version()") +CUDNN_VERSION=$(python3 -c "import versions; print(versions.__cudnn_version__.split('.')[0])") yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo yum check-update -yum install -y ninja-build gettext tensorrt-${TRT_VERSION}.* +yum install -y ninja-build gettext libcudnn${CUDNN_VERSION} libcudnn${CUDNN_VERSION}-devel wget https://github.com/bazelbuild/bazelisk/releases/download/v1.17.0/bazelisk-linux-amd64 \ && mv bazelisk-linux-amd64 /usr/bin/bazel \ && chmod +x /usr/bin/bazel +wget https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/9.2.0/tensorrt-9.2.0.5.linux.x86_64-gnu.cuda-12.2.tar.gz +mkdir -p /usr/tensorrt +tar -xzvf tensorrt-9.2.0.5.linux.x86_64-gnu.cuda-12.2.tar.gz -C /usr/tensorrt --strip-components=1 +mkdir -p /usr/lib +cp /usr/tensorrt/lib/* /usr/lib/ || : +mkdir -p /usr/lib64 +cp /usr/tensorrt/lib/* /usr/lib64/ || : +mkdir -p /usr/include +cp /usr/tensorrt/include/* /usr/include/ || : + +mkdir -p /usr/lib/x86_64-linux-gnu +cp /usr/tensorrt/targets/x86_64-linux-gnu/lib/* /usr/lib/x86_64-linux-gnu/ || : +mkdir -p /usr/include/x86_64-linux-gnu +cp /usr/tensorrt/targets/x86_64-linux-gnu/include/* /usr/include/x86_64-linux-gnu/ || : + +rm tensorrt-9.2.0.5.linux.x86_64-gnu.cuda-12.2.tar.gz +rm -rf /usr/tensorrt + export TORCH_BUILD_NUMBER=$(python -c "import torch, urllib.parse as ul; print(ul.quote_plus(torch.__version__))") cat toolchains/ci_workspaces/WORKSPACE.x86_64.release.rhel.tmpl | envsubst > WORKSPACE export CI_BUILD=1 + +python -m pip config set global.extra-index-url "https://pypi.nvidia.com" diff --git a/py/ci/soname_excludes.params b/py/ci/soname_excludes.params index a5eecb7c9a..c92ceb123f 100644 --- a/py/ci/soname_excludes.params +++ b/py/ci/soname_excludes.params @@ -24,11 +24,13 @@ --exclude libcudart.so.11 --exclude libcudart.so.11.7.60 --exclude libnvrtc.so.11.2 +--exclude libnvinfer_plugin.so.9 --exclude libnvinfer_plugin.so.8 --exclude libcublas.so.11 --exclude libcuda.so.1 --exclude libcuda.so.515 --exclude libcublasLt.so.11 +--exclude libnvinfer.so.9 --exclude libnvinfer.so.8 --exclude libcudnn.so.8 --exclude libcublas.so.12 @@ -36,4 +38,4 @@ --exclude libcublas.so.12.1.3.1 --exclude libcublasLt.so.12.1.3.1 --exclude libcudart.so.11.8.89 ---exclude libcudart.so.11 \ No newline at end of file +--exclude libcudart.so.11 diff --git a/py/requirements.txt b/py/requirements.txt index cd52d32436..e187213370 100644 --- a/py/requirements.txt +++ b/py/requirements.txt @@ -4,6 +4,6 @@ pybind11==2.6.2 --extra-index-url https://download.pytorch.org/whl/nightly/cu121 torch>=2.3.0.dev,<2.4.0 torchvision>=0.18.0.dev,<0.19.0 ---extra-index-url https://pypi.ngc.nvidia.com -tensorrt==8.6.1 +--extra-index-url https://pypi.nvidia.com +tensorrt==9.2.0.post12.dev5 pyyaml diff --git a/pyproject.toml b/pyproject.toml index 5c42700ef8..62d2ad4bf6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,8 +8,8 @@ requires = [ "cffi>=1.15.1", "typing-extensions>=4.7.0", "future>=0.18.3", - "tensorrt>=8.6,<8.7", "torch >=2.3.0.dev,<2.4.0", + "tensorrt==9.2.0.post12.dev5", "pybind11==2.6.2", "numpy", ] @@ -42,7 +42,7 @@ requires-python = ">=3.8" keywords = ["pytorch", "torch", "tensorrt", "trt", "ai", "artificial intelligence", "ml", "machine learning", "dl", "deep learning", "compiler", "dynamo", "torchscript", "inference"] dependencies = [ "torch >=2.3.0.dev,<2.4.0", - "tensorrt>=8.6,<8.7", + "tensorrt==9.2.0.post12.dev5", "packaging>=23", "numpy", "typing-extensions>=4.7.0", diff --git a/tests/py/ts/models/hw_compat.ts b/tests/py/ts/models/hw_compat.ts index ab43e5e040ef3850c8e0b879a973dc759565830e..63b8ec632595990b39f0344f445181247a676e51 100644 GIT binary patch literal 417937 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 literal 386982 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�h^Gt0EN&9mC;l63bF`3O_!F?>^fiumX{ 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
oIuGq0lfl!q<(lEn=@gd~4uOZ0Wgam{jB{6w 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 XkJtSs46Mc2I(t_qu<+#mx_kd0(QA

=1.15.1", "typing-extensions>=4.7.0", "future>=0.18.3", - "tensorrt>=8.6,<8.7", + "tensorrt==9.2.0.post12.dev5", "torch>=1.13.0,<2.0", "pybind11==2.6.2", "numpy", @@ -42,7 +42,7 @@ requires-python = ">=3.8" keywords = ["pytorch", "torch", "tensorrt", "trt", "ai", "artificial intelligence", "ml", "machine learning", "dl", "deep learning", "compiler", "dynamo", "torchscript", "inference"] dependencies = [ "torch>=1.13.0,<2.0", - "tensorrt>=8.6,<8.7", + "tensorrt==9.2.0.post12.dev5", "packaging>=23", "numpy", "typing-extensions>=4.7.0", From d05b40e205c122aa84a9f5037ff13b354fd4afb8 Mon Sep 17 00:00:00 2001 From: Evan Li Date: Mon, 29 Jan 2024 18:09:00 -0800 Subject: [PATCH 5/7] test embedding bag --- .../dynamo/conversion/impl/embedding.py | 126 ++++++++++++++++ .../conversion/test_embedding_bag_aten2.py | 142 ++++++++++++++++++ 2 files changed, 268 insertions(+) create mode 100644 tests/py/dynamo/conversion/test_embedding_bag_aten2.py diff --git a/py/torch_tensorrt/dynamo/conversion/impl/embedding.py b/py/torch_tensorrt/dynamo/conversion/impl/embedding.py index 40745b869a..37d5b33d35 100644 --- a/py/torch_tensorrt/dynamo/conversion/impl/embedding.py +++ b/py/torch_tensorrt/dynamo/conversion/impl/embedding.py @@ -307,3 +307,129 @@ def embedding_bag( out = impl.cat.cat(ctx, target, source_ir, f"{name}_cat", reduced_embed, 0) return out, None, None, None + + +def embedding_bag( + ctx: ConversionContext, + target: Target, + source_ir: Optional[SourceIR], + name: str, + weight: TRTTensor, + indices: TRTTensor, + offsets: TRTTensor, + scale_grad_by_freq: bool, + mode: int, + sparse: bool, + per_sample_weights: Optional[TRTTensor], + include_last_offset: bool, +) -> Tuple[TRTTensor, TRTTensor, TRTTensor, TRTTensor]: + """ + This function is for calculating embedding bags. + + In PyTorch, `offsets` is only used when input is 1D. If input is 2D of shape (B, N), + it will be treated as B bags (sequences) each of fixed length N, and this will return + B values aggregated in a way depending on the mode. `offsets` is ignored and required + to be None in this case. + + However, according to the schema, `offsets` is required for input with any dimensions. + Accordingly, this function flattens N-D input to 1D and then to calculate embedding bags. + """ + + # TODO: support 2D inputs + # indices = impl.shuffle.reshape(ctx, target, source_ir, f"{name}_reshape_indices", indices, (-1,)) + reduce_name = "" + if mode == 0: # sum + reduce_op = functools.partial( + impl.reduce.sum, ctx=ctx, target=target, source_ir=source_ir + ) + reduce_name = "sum" + elif mode == 1: # mean + reduce_op = functools.partial( + impl.reduce.mean, ctx=ctx, target=target, source_ir=source_ir + ) + reduce_name = "mean" + elif mode == 2: # max + reduce_op = functools.partial( + impl.reduce.max, + ctx=ctx, + target=target, + source_ir=source_ir, + return_indices=False, + ) + reduce_name = "max" + + # calculate embedding + embed = embedding( + ctx, + target, + source_ir, + f"{name}_embedding", + indices, + weight, + scale_grad_by_freq, + sparse, + ) + + # give weights to embedding + if per_sample_weights is not None: + assert ( + per_sample_weights.shape == indices.shape + ), f"`per_sample_weights` (shape: {per_sample_weights.shape}) must have exactly the same shape as indices/input (shape: {indices.shape})!" + per_sample_weights = get_trt_tensor( + ctx, per_sample_weights, f"{name}_per_sample_weights", np.float32 + ) + per_sample_weights = impl.shuffle.reshape( + ctx, + target, + source_ir, + f"{name}_reshape_per_sample_weights", + per_sample_weights, + (-1, 1), + ) + embed = impl.elementwise.mul( + ctx, + target, + source_ir, + f"{name}_mul_per_sample_weights", + embed, + per_sample_weights, + ) + + if include_last_offset: + pass + else: + # add the end index to `offsets` + offsets = impl.cat.cat( + ctx, + target, + source_ir, + f"{name}_concat", + [offsets, torch.tensor([indices.shape[0]], dtype=torch.int32)], + 0, + ) + + reduced_embed = [] + start = ctx.net.add_gather(offsets, get_trt_tensor(ctx, 0, f"tensor_0"), 0).get_output(0) + const_list = get_trt_tensor(ctx, np.array(range(indices.shape[0])), f"constant_list") + + for i in range(1, offsets.shape[0]): + end = ctx.net.add_gather(offsets, get_trt_tensor(ctx, i, f"tensor_{i}"), 0).get_output(0) + diff = impl.elementwise.sub(ctx, target, source_ir, f"{name}_sub_{i}", end, start) + + slice_layer = ctx.net.add_slice(const_list, (1,), (1,), (1,)) + slice_layer.set_input(1, start) + slice_layer.set_input(2, diff) + sliced_indices = slice_layer.get_output(0) + + index_embed = impl.select.index(ctx, target, source_ir, f"{name}_index_{i}", embed, [sliced_indices]) # np.array([0,1,2,3,4,5]) + reduced_sliced_embed = reduce_op( + name=f"{name}_{reduce_name}_{i}", + input_val=index_embed, + dim=0, + keepdim=True, + ) + reduced_embed.append(reduced_sliced_embed) + start = end + + out = impl.cat.cat(ctx, target, source_ir, f"{name}_cat", reduced_embed, 0) + return out, None, None, None diff --git a/tests/py/dynamo/conversion/test_embedding_bag_aten2.py b/tests/py/dynamo/conversion/test_embedding_bag_aten2.py new file mode 100644 index 0000000000..108c1668e0 --- /dev/null +++ b/tests/py/dynamo/conversion/test_embedding_bag_aten2.py @@ -0,0 +1,142 @@ +import torch +from parameterized import param, parameterized +from torch.testing._internal.common_utils import run_tests + +from harness import DispatchTestCase + + +class TestEmbeddingBagConverter(DispatchTestCase): + @parameterized.expand( + [ + # 1D input + param( + test_name="1d_indices_1", + weight=torch.randn((10, 3), dtype=torch.float32), + indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 2, 2, 2, 2,2,2,2,3,4,5,4,3,2], dtype=torch.int32), + offsets=torch.tensor([0, 2, 4], dtype=torch.int32), + scale_grad_by_freq=False, + mode=1, + sparse=False, + per_sample_weights=None, + include_last_offset=False, + padding_idx=-1, + ), + # param( + # test_name="1d_indices_2", + # weight=torch.randn((10, 3), dtype=torch.float32), + # indices=torch.tensor([1, 2, 4, 5, 4, 3], dtype=torch.int32), + # offsets=torch.tensor([0, 5], dtype=torch.int32), + # scale_grad_by_freq=False, + # mode=0, + # sparse=False, + # per_sample_weights=torch.randn((6,)), + # include_last_offset=False, + # padding_idx=-1, + # ), + # param( + # test_name="1d_indices_3", + # weight=torch.randn((10, 3), dtype=torch.float32), + # indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 9], dtype=torch.int32), + # offsets=torch.tensor([0, 2, 4], dtype=torch.int32), + # scale_grad_by_freq=False, + # mode=2, + # sparse=False, + # per_sample_weights=None, + # include_last_offset=False, + # padding_idx=-1, + # ), + # 2D input + # param( + # test_name="2d_indices_1", + # weight=torch.randn((5, 10), dtype=torch.float32), + # indices=torch.tensor([[3, 1], [4, 3]], dtype=torch.int32), + # offsets=torch.tensor([0, 1], dtype=torch.int32), + # scale_grad_by_freq=False, + # mode=0, + # sparse=False, + # per_sample_weights=torch.randn((4,)), + # include_last_offset=False, + # padding_idx=-1, + # ), + # param( + # test_name="2d_indices_3", + # weight=torch.tensor([ + # [0.0, 0.0, 0.0], + # [1.0, 1.0, 1.0], + # [2.0, 2.0, 2.0], + # [3.0, 3.0, 3.0], + # [4.0, 4.0, 4.0], + # [5.0, 5.0, 5.0], + # ], dtype=torch.float32), + # indices=torch.tensor([[0, 2, 1], [3, 5, 4]], dtype=torch.int32), + # offsets=torch.tensor([0, 1], dtype=torch.int32), + # scale_grad_by_freq=False, + # mode=2, + # sparse=False, + # per_sample_weights=None, + # include_last_offset=False, + # padding_idx=-1, + # ), + # param( + # test_name="2d_indices_2", + # weight=torch.randn((5, 5), dtype=torch.float32), + # indices=torch.tensor([[3, 1, 2], [4, 2, 3]], dtype=torch.int32), + # offsets=torch.tensor([0, 2], dtype=torch.int32), + # scale_grad_by_freq=False, + # mode=1, + # sparse=False, + # per_sample_weights=None, + # include_last_offset=False, + # padding_idx=-1, + # ), + # param( + # test_name="2d_indices_2", + # weight=torch.randn((5, 10), dtype=torch.float32), + # indices=torch.tensor([[3, 1, 2, 4], [4, 1, 3, 1]], dtype=torch.int32), + # offsets=torch.tensor([0, 2], dtype=torch.int32), + # scale_grad_by_freq=False, + # mode=0, + # sparse=False, + # per_sample_weights=torch.randn((8,)), + # include_last_offset=True, + # padding_idx=-1, + # ), + ] + ) + def test_embedding_bag( + self, + test_name, + weight, + indices, + offsets, + scale_grad_by_freq, + mode, + sparse, + per_sample_weights, + include_last_offset, + padding_idx, + ): + class TestEmbeddingBag(torch.nn.Module): + def forward(self, weight, indices, offsets): + return torch.ops.aten._embedding_bag.default( + weight, + indices, + offsets, + scale_grad_by_freq, + mode, + sparse, + per_sample_weights, + include_last_offset, + padding_idx, + )[0] + + self.run_test( + TestEmbeddingBag(), + inputs=[weight, indices, offsets], + # use_dynamo_tracer=True, + enable_passes=True, + ) + + +if __name__ == "__main__": + run_tests() From 77dd9c5ef6555a9a0fb2d933c79caf6d92fd88d7 Mon Sep 17 00:00:00 2001 From: Evan Li Date: Tue, 30 Jan 2024 17:45:37 -0800 Subject: [PATCH 6/7] WIP: support embedding bag 1d --- .../dynamo/conversion/impl/embedding.py | 126 ---------------- .../conversion/test_embedding_bag_aten2.py | 142 ------------------ 2 files changed, 268 deletions(-) delete mode 100644 tests/py/dynamo/conversion/test_embedding_bag_aten2.py diff --git a/py/torch_tensorrt/dynamo/conversion/impl/embedding.py b/py/torch_tensorrt/dynamo/conversion/impl/embedding.py index 37d5b33d35..40745b869a 100644 --- a/py/torch_tensorrt/dynamo/conversion/impl/embedding.py +++ b/py/torch_tensorrt/dynamo/conversion/impl/embedding.py @@ -307,129 +307,3 @@ def embedding_bag( out = impl.cat.cat(ctx, target, source_ir, f"{name}_cat", reduced_embed, 0) return out, None, None, None - - -def embedding_bag( - ctx: ConversionContext, - target: Target, - source_ir: Optional[SourceIR], - name: str, - weight: TRTTensor, - indices: TRTTensor, - offsets: TRTTensor, - scale_grad_by_freq: bool, - mode: int, - sparse: bool, - per_sample_weights: Optional[TRTTensor], - include_last_offset: bool, -) -> Tuple[TRTTensor, TRTTensor, TRTTensor, TRTTensor]: - """ - This function is for calculating embedding bags. - - In PyTorch, `offsets` is only used when input is 1D. If input is 2D of shape (B, N), - it will be treated as B bags (sequences) each of fixed length N, and this will return - B values aggregated in a way depending on the mode. `offsets` is ignored and required - to be None in this case. - - However, according to the schema, `offsets` is required for input with any dimensions. - Accordingly, this function flattens N-D input to 1D and then to calculate embedding bags. - """ - - # TODO: support 2D inputs - # indices = impl.shuffle.reshape(ctx, target, source_ir, f"{name}_reshape_indices", indices, (-1,)) - reduce_name = "" - if mode == 0: # sum - reduce_op = functools.partial( - impl.reduce.sum, ctx=ctx, target=target, source_ir=source_ir - ) - reduce_name = "sum" - elif mode == 1: # mean - reduce_op = functools.partial( - impl.reduce.mean, ctx=ctx, target=target, source_ir=source_ir - ) - reduce_name = "mean" - elif mode == 2: # max - reduce_op = functools.partial( - impl.reduce.max, - ctx=ctx, - target=target, - source_ir=source_ir, - return_indices=False, - ) - reduce_name = "max" - - # calculate embedding - embed = embedding( - ctx, - target, - source_ir, - f"{name}_embedding", - indices, - weight, - scale_grad_by_freq, - sparse, - ) - - # give weights to embedding - if per_sample_weights is not None: - assert ( - per_sample_weights.shape == indices.shape - ), f"`per_sample_weights` (shape: {per_sample_weights.shape}) must have exactly the same shape as indices/input (shape: {indices.shape})!" - per_sample_weights = get_trt_tensor( - ctx, per_sample_weights, f"{name}_per_sample_weights", np.float32 - ) - per_sample_weights = impl.shuffle.reshape( - ctx, - target, - source_ir, - f"{name}_reshape_per_sample_weights", - per_sample_weights, - (-1, 1), - ) - embed = impl.elementwise.mul( - ctx, - target, - source_ir, - f"{name}_mul_per_sample_weights", - embed, - per_sample_weights, - ) - - if include_last_offset: - pass - else: - # add the end index to `offsets` - offsets = impl.cat.cat( - ctx, - target, - source_ir, - f"{name}_concat", - [offsets, torch.tensor([indices.shape[0]], dtype=torch.int32)], - 0, - ) - - reduced_embed = [] - start = ctx.net.add_gather(offsets, get_trt_tensor(ctx, 0, f"tensor_0"), 0).get_output(0) - const_list = get_trt_tensor(ctx, np.array(range(indices.shape[0])), f"constant_list") - - for i in range(1, offsets.shape[0]): - end = ctx.net.add_gather(offsets, get_trt_tensor(ctx, i, f"tensor_{i}"), 0).get_output(0) - diff = impl.elementwise.sub(ctx, target, source_ir, f"{name}_sub_{i}", end, start) - - slice_layer = ctx.net.add_slice(const_list, (1,), (1,), (1,)) - slice_layer.set_input(1, start) - slice_layer.set_input(2, diff) - sliced_indices = slice_layer.get_output(0) - - index_embed = impl.select.index(ctx, target, source_ir, f"{name}_index_{i}", embed, [sliced_indices]) # np.array([0,1,2,3,4,5]) - reduced_sliced_embed = reduce_op( - name=f"{name}_{reduce_name}_{i}", - input_val=index_embed, - dim=0, - keepdim=True, - ) - reduced_embed.append(reduced_sliced_embed) - start = end - - out = impl.cat.cat(ctx, target, source_ir, f"{name}_cat", reduced_embed, 0) - return out, None, None, None diff --git a/tests/py/dynamo/conversion/test_embedding_bag_aten2.py b/tests/py/dynamo/conversion/test_embedding_bag_aten2.py deleted file mode 100644 index 108c1668e0..0000000000 --- a/tests/py/dynamo/conversion/test_embedding_bag_aten2.py +++ /dev/null @@ -1,142 +0,0 @@ -import torch -from parameterized import param, parameterized -from torch.testing._internal.common_utils import run_tests - -from harness import DispatchTestCase - - -class TestEmbeddingBagConverter(DispatchTestCase): - @parameterized.expand( - [ - # 1D input - param( - test_name="1d_indices_1", - weight=torch.randn((10, 3), dtype=torch.float32), - indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 2, 2, 2, 2,2,2,2,3,4,5,4,3,2], dtype=torch.int32), - offsets=torch.tensor([0, 2, 4], dtype=torch.int32), - scale_grad_by_freq=False, - mode=1, - sparse=False, - per_sample_weights=None, - include_last_offset=False, - padding_idx=-1, - ), - # param( - # test_name="1d_indices_2", - # weight=torch.randn((10, 3), dtype=torch.float32), - # indices=torch.tensor([1, 2, 4, 5, 4, 3], dtype=torch.int32), - # offsets=torch.tensor([0, 5], dtype=torch.int32), - # scale_grad_by_freq=False, - # mode=0, - # sparse=False, - # per_sample_weights=torch.randn((6,)), - # include_last_offset=False, - # padding_idx=-1, - # ), - # param( - # test_name="1d_indices_3", - # weight=torch.randn((10, 3), dtype=torch.float32), - # indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 9], dtype=torch.int32), - # offsets=torch.tensor([0, 2, 4], dtype=torch.int32), - # scale_grad_by_freq=False, - # mode=2, - # sparse=False, - # per_sample_weights=None, - # include_last_offset=False, - # padding_idx=-1, - # ), - # 2D input - # param( - # test_name="2d_indices_1", - # weight=torch.randn((5, 10), dtype=torch.float32), - # indices=torch.tensor([[3, 1], [4, 3]], dtype=torch.int32), - # offsets=torch.tensor([0, 1], dtype=torch.int32), - # scale_grad_by_freq=False, - # mode=0, - # sparse=False, - # per_sample_weights=torch.randn((4,)), - # include_last_offset=False, - # padding_idx=-1, - # ), - # param( - # test_name="2d_indices_3", - # weight=torch.tensor([ - # [0.0, 0.0, 0.0], - # [1.0, 1.0, 1.0], - # [2.0, 2.0, 2.0], - # [3.0, 3.0, 3.0], - # [4.0, 4.0, 4.0], - # [5.0, 5.0, 5.0], - # ], dtype=torch.float32), - # indices=torch.tensor([[0, 2, 1], [3, 5, 4]], dtype=torch.int32), - # offsets=torch.tensor([0, 1], dtype=torch.int32), - # scale_grad_by_freq=False, - # mode=2, - # sparse=False, - # per_sample_weights=None, - # include_last_offset=False, - # padding_idx=-1, - # ), - # param( - # test_name="2d_indices_2", - # weight=torch.randn((5, 5), dtype=torch.float32), - # indices=torch.tensor([[3, 1, 2], [4, 2, 3]], dtype=torch.int32), - # offsets=torch.tensor([0, 2], dtype=torch.int32), - # scale_grad_by_freq=False, - # mode=1, - # sparse=False, - # per_sample_weights=None, - # include_last_offset=False, - # padding_idx=-1, - # ), - # param( - # test_name="2d_indices_2", - # weight=torch.randn((5, 10), dtype=torch.float32), - # indices=torch.tensor([[3, 1, 2, 4], [4, 1, 3, 1]], dtype=torch.int32), - # offsets=torch.tensor([0, 2], dtype=torch.int32), - # scale_grad_by_freq=False, - # mode=0, - # sparse=False, - # per_sample_weights=torch.randn((8,)), - # include_last_offset=True, - # padding_idx=-1, - # ), - ] - ) - def test_embedding_bag( - self, - test_name, - weight, - indices, - offsets, - scale_grad_by_freq, - mode, - sparse, - per_sample_weights, - include_last_offset, - padding_idx, - ): - class TestEmbeddingBag(torch.nn.Module): - def forward(self, weight, indices, offsets): - return torch.ops.aten._embedding_bag.default( - weight, - indices, - offsets, - scale_grad_by_freq, - mode, - sparse, - per_sample_weights, - include_last_offset, - padding_idx, - )[0] - - self.run_test( - TestEmbeddingBag(), - inputs=[weight, indices, offsets], - # use_dynamo_tracer=True, - enable_passes=True, - ) - - -if __name__ == "__main__": - run_tests() From 3d505efa2b1ccdd1c8d43e45e8ee9bc9fb1922dd Mon Sep 17 00:00:00 2001 From: Evan Li Date: Thu, 7 Mar 2024 16:36:46 -0800 Subject: [PATCH 7/7] support 1d ITensor offsets for embedding_bag converter --- .../dynamo/conversion/_TRTInterpreter.py | 7 - .../dynamo/conversion/aten_ops_converters.py | 57 +-- .../dynamo/conversion/converter_utils.py | 71 +++ .../dynamo/conversion/impl/embedding.py | 480 ++++++++++-------- .../dynamo/conversion/test_embedding_aten.py | 6 +- .../conversion/test_embedding_bag_aten.py | 239 ++++++++- 6 files changed, 595 insertions(+), 265 deletions(-) diff --git a/py/torch_tensorrt/dynamo/conversion/_TRTInterpreter.py b/py/torch_tensorrt/dynamo/conversion/_TRTInterpreter.py index f8b247c7ef..06ae596ed0 100644 --- a/py/torch_tensorrt/dynamo/conversion/_TRTInterpreter.py +++ b/py/torch_tensorrt/dynamo/conversion/_TRTInterpreter.py @@ -86,12 +86,6 @@ def __init__( else None ) - # profile = self.builder.create_optimization_profile() - # profile.set_shape_input( - # "offsets", (0, 2, 4), (0, 2, 4), (0, 2, 4) - # ) # match with `offsets` - # self.optimization_profiles = [profile] - self.input_specs = input_specs self.input_specs_iter = 0 self._cur_node_name: Optional[str] = None @@ -162,7 +156,6 @@ def run( build_engine_start_time = datetime.now() builder_config = self.builder.create_builder_config() - # builder_config.set_preview_feature(trt.PreviewFeature.PROFILE_SHARING_0806, True) if self.compilation_settings.workspace_size != 0: builder_config.set_memory_pool_limit( diff --git a/py/torch_tensorrt/dynamo/conversion/aten_ops_converters.py b/py/torch_tensorrt/dynamo/conversion/aten_ops_converters.py index 55f21f4d28..32ef60c604 100644 --- a/py/torch_tensorrt/dynamo/conversion/aten_ops_converters.py +++ b/py/torch_tensorrt/dynamo/conversion/aten_ops_converters.py @@ -229,26 +229,7 @@ def aten_ops_cat( ) -def embedding_param_validator(embedding_node: Node) -> bool: - scale_grad_by_freq = args_bounds_check(embedding_node.args, 3) - sparse = args_bounds_check(embedding_node.args, 4) - - if scale_grad_by_freq is not None: - _LOGGER.debug( - f"Currently we don't support specifying scale gradient by word frequency, got {scale_grad_by_freq}." - ) - return False - - if sparse is not None: - _LOGGER.debug(f"Currently we don't support sparse gradient, got {sparse}.") - return False - - return True - - -@dynamo_tensorrt_converter( - torch.ops.aten.embedding.default, capability_validator=embedding_param_validator -) +@dynamo_tensorrt_converter(torch.ops.aten.embedding.default) def aten_ops_embedding( ctx: ConversionContext, target: Target, @@ -263,37 +244,30 @@ def aten_ops_embedding( name, input=args[1], weight=args[0], - # args[2] is the padding index, which is useful for training only - scale_grad_by_freq=args_bounds_check(args, 3), - sparse=args_bounds_check(args, 4), + # args[2, 3, 4] are useful for training only + padding_idx=args_bounds_check(args, 2, -1), + scale_grad_by_freq=args_bounds_check(args, 3, False), + sparse=args_bounds_check(args, 4, False), ) def embedding_bag_validator(node: Node) -> bool: - mode = args_bounds_check(node.args, 4, 0) indices = node.args[1].meta.get("tensor_meta") if indices is None: return False - return ( - bool(node.args[2].op == "get_attr") - and (mode == 0 or mode == 1 or mode == 2) - and len(indices.shape) == 1 - ) + return len(indices.shape) == 1 # currently only support 1D indices -# @dynamo_tensorrt_converter( -# torch.ops.aten.embedding_bag.default, capability_validator=embedding_bag_validator -# ) -# @dynamo_tensorrt_converter( -# torch.ops.aten._embedding_bag.default, capability_validator=embedding_bag_validator -# ) -@dynamo_tensorrt_converter(torch.ops.aten.embedding_bag.default) -@dynamo_tensorrt_converter(torch.ops.aten._embedding_bag.default) +@dynamo_tensorrt_converter( + torch.ops.aten.embedding_bag.default, capability_validator=embedding_bag_validator +) +@dynamo_tensorrt_converter( + torch.ops.aten._embedding_bag.default, capability_validator=embedding_bag_validator +) @enforce_tensor_types( { 0: (TRTTensor,), 1: (TRTTensor,), - # 2: (np.ndarray, torch.Tensor), } ) def aten_ops_embedding_bag( @@ -311,12 +285,13 @@ def aten_ops_embedding_bag( weight=args[0], indices=args[1], offsets=args[2], - scale_grad_by_freq=args_bounds_check(args, 3, False), mode=args_bounds_check(args, 4, 0), - sparse=args_bounds_check(args, 5, False), per_sample_weights=args_bounds_check(args, 6, None), include_last_offset=args_bounds_check(args, 7, False), - # padding index is useful for training only + # scale_grad_by_freq, sparse, and padding_idx are useful for training only + scale_grad_by_freq=args_bounds_check(args, 3, False), + sparse=args_bounds_check(args, 5, False), + padding_idx=args_bounds_check(args, 8, -1), ) diff --git a/py/torch_tensorrt/dynamo/conversion/converter_utils.py b/py/torch_tensorrt/dynamo/conversion/converter_utils.py index f9d14917f1..4464264f40 100644 --- a/py/torch_tensorrt/dynamo/conversion/converter_utils.py +++ b/py/torch_tensorrt/dynamo/conversion/converter_utils.py @@ -6,6 +6,7 @@ import numpy as np import tensorrt as trt import torch +import torch_tensorrt.dynamo.conversion.impl as impl from torch import SymBool, SymFloat, SymInt from torch.fx.node import Argument, Target from torch_tensorrt.dynamo._SourceIR import SourceIR @@ -541,3 +542,73 @@ def flatten_dims( new_shape = tuple(shape[:start_dim]) + (num_elements,) + tuple(shape[end_dim + 1 :]) return new_shape + + +def append( + ctx: ConversionContext, + target: Target, + source_ir: Optional[SourceIR], + name: str, + original_tensor: TRTTensor, + new_value: Union[TRTTensor, int, float, torch.Tensor, np.ndarray], +) -> TRTTensor: + if isinstance(new_value, (int, float)): + new_value = np.array([new_value]) + + return impl.cat.cat( + ctx, + target, + source_ir, + f"{name}_concat", + [original_tensor, new_value], + 0, + ) + + +def set_item( + ctx: ConversionContext, + target: Target, + source_ir: Optional[SourceIR], + name: str, + original_tensor: TRTTensor, + index: int, + new_value: Union[TRTTensor, int, float, torch.Tensor, np.ndarray], +) -> TRTTensor: + if isinstance(new_value, (int, float)): + new_value = np.array([new_value]) + + len_original_tensor = original_tensor.shape[0] + index = get_positive_dim(index, len_original_tensor) + + front_tensor = impl.slice.slice_op( + ctx, + target, + source_ir, + f"{name}_slice_front", + original_tensor, + dim=0, + start=0, + stop=index, + step=1, + ) + rear_tensor = impl.slice.slice_op( + ctx, + target, + source_ir, + f"{name}_slice_rear", + original_tensor, + dim=0, + start=index + 1, + stop=len_original_tensor, + step=1, + ) + + ans = impl.cat.cat( + ctx, + target, + source_ir, + f"{name}_concat", + [front_tensor, new_value, rear_tensor], + 0, + ) + return ans diff --git a/py/torch_tensorrt/dynamo/conversion/impl/embedding.py b/py/torch_tensorrt/dynamo/conversion/impl/embedding.py index 40745b869a..8533d76b9b 100644 --- a/py/torch_tensorrt/dynamo/conversion/impl/embedding.py +++ b/py/torch_tensorrt/dynamo/conversion/impl/embedding.py @@ -1,5 +1,5 @@ import functools -from typing import Optional, Tuple +from typing import Optional, Sequence, Tuple, Union import numpy as np import torch @@ -7,7 +7,12 @@ from torch.fx.node import Target from torch_tensorrt.dynamo._SourceIR import SourceIR from torch_tensorrt.dynamo.conversion._ConversionContext import ConversionContext -from torch_tensorrt.dynamo.conversion.converter_utils import get_trt_tensor +from torch_tensorrt.dynamo.conversion.converter_utils import ( + append, + get_trt_tensor, + set_item, + to_numpy, +) from torch_tensorrt.fx.converters.converter_utils import set_layer_name from torch_tensorrt.fx.types import TRTTensor @@ -19,6 +24,7 @@ def embedding( name: str, input: TRTTensor, weight: TRTTensor, + padding_idx: int, scale_grad_by_freq: bool, sparse: bool, ) -> TRTTensor: @@ -31,15 +37,17 @@ def embedding( indices_tensor = get_trt_tensor(ctx, indices_tensor, f"{name}_indices_tensor") embedding_tensor = get_trt_tensor(ctx, embedding_tensor, f"{name}_embedding_tensor") # unsupported parameters - # ignore padding_idx since it is meaningful for training only + # ignore padding_idx, scale_grad_by_freq, and sparse + # since they are meaningful for training only - if scale_grad_by_freq: - raise RuntimeError( - "Currently we don't support scale gradient by word frequency." - ) + # useful for training only + # if scale_grad_by_freq: + # raise RuntimeError( + # "Currently we don't support scale gradient by word frequency." + # ) - if sparse: - raise RuntimeError("Currently we don't support sparse gradient.") + # if sparse: + # raise RuntimeError("Currently we don't support sparse gradient.") # Implement embedding lookup with gather layer gather_layer = ctx.net.add_gather(embedding_tensor, indices_tensor, axis=0) @@ -47,132 +55,259 @@ def embedding( return gather_layer.get_output(0) -# def embedding_bag( -# ctx: ConversionContext, -# target: Target, -# source_ir: Optional[SourceIR], -# name: str, -# weight: TRTTensor, -# indices: TRTTensor, -# offsets: Union[torch.Tensor, np.ndarray, Sequence[int]], -# scale_grad_by_freq: bool, -# mode: int, -# sparse: bool, -# per_sample_weights: Optional[TRTTensor], -# include_last_offset: bool, -# ) -> Tuple[TRTTensor, TRTTensor, TRTTensor, TRTTensor]: -# """ -# This function is for calculating embedding bags. - -# In PyTorch, `offsets` is only used when input is 1D. If input is 2D of shape (B, N), -# it will be treated as B bags (sequences) each of fixed length N, and this will return -# B values aggregated in a way depending on the mode. `offsets` is ignored and required -# to be None in this case. - -# However, according to the schema, `offsets` is required for input with any dimensions. -# Accordingly, this function flattens N-D input to 1D and then to calculate embedding bags. -# """ - -# # TODO: support 2D inputs -# # indices = impl.shuffle.reshape(ctx, target, source_ir, f"{name}_reshape_indices", indices, (-1,)) -# reduce_name = "" -# if mode == 0: # sum -# reduce_op = functools.partial( -# impl.reduce.sum, ctx=ctx, target=target, source_ir=source_ir -# ) -# reduce_name = "sum" -# elif mode == 1: # mean -# reduce_op = functools.partial( -# impl.reduce.mean, ctx=ctx, target=target, source_ir=source_ir -# ) -# reduce_name = "mean" -# elif mode == 2: # max -# reduce_op = functools.partial( -# impl.reduce.max, -# ctx=ctx, -# target=target, -# source_ir=source_ir, -# return_indices=False, -# ) -# reduce_name = "max" - -# # calculate embedding -# embed = embedding( -# ctx, -# target, -# source_ir, -# f"{name}_embedding", -# indices, -# weight, -# scale_grad_by_freq, -# sparse, -# ) - -# # give weights to embedding -# if per_sample_weights is not None: -# assert ( -# per_sample_weights.shape == indices.shape -# ), f"`per_sample_weights` (shape: {per_sample_weights.shape}) must have exactly the same shape as indices/input (shape: {indices.shape})!" -# per_sample_weights = get_trt_tensor( -# ctx, per_sample_weights, f"{name}_per_sample_weights", np.float32 -# ) -# per_sample_weights = impl.shuffle.reshape( -# ctx, -# target, -# source_ir, -# f"{name}_reshape_per_sample_weights", -# per_sample_weights, -# (-1, 1), -# ) -# embed = impl.elementwise.mul( -# ctx, -# target, -# source_ir, -# f"{name}_mul_per_sample_weights", -# embed, -# per_sample_weights, -# ) - -# offsets = to_numpy(offsets) - -# if include_last_offset is False: -# # add the end index to offsets -# offsets = np.append(offsets, indices.shape[0]) -# else: -# # modify the last index of offsets to the end index -# # however, pytorch doc says if `include_last_offset` is True, the size of offsets -# # is equal to the number of bags + 1. The last element is the size of the input, -# # or the ending index position of the last bag (sequence). -# offsets[-1] = indices.shape[0] - -# # separately reduce embeddings for different bags -# reduced_embed = [] -# len_offsets = len(offsets) -# for i in range(len_offsets - 1): -# if offsets[i] < offsets[i + 1]: -# sliced_embed = impl.slice.slice_op( -# ctx, -# target, -# source_ir, -# f"{name}_slice_embed_{i}", -# embed, -# 0, -# int(offsets[i]), -# int(offsets[i + 1]), -# 1, -# ) -# reduced_sliced_embed = reduce_op( -# name=f"{name}_{reduce_name}_{i}", -# input_val=sliced_embed, -# dim=0, -# keepdim=True, -# ) -# reduced_embed.append(reduced_sliced_embed) - -# out = impl.cat.cat(ctx, target, source_ir, f"{name}_cat", reduced_embed, 0) -# # out = reduce_op(input_val=embed, dim=1, keepdim=False) # Note: This implementation doesn't work for N-dim - -# return out, None, None, None +def embedding_bag_with_traversable_offsets( + ctx: ConversionContext, + target: Target, + source_ir: Optional[SourceIR], + name: str, + embed: TRTTensor, + offsets_list: Union[torch.Tensor, np.ndarray, Sequence[int]], + mode: int, + include_last_offset: bool, +) -> Tuple[TRTTensor, TRTTensor, TRTTensor, TRTTensor]: + reduce_name = "" + if mode == 0: # sum + reduce_op = functools.partial( + impl.reduce.sum, ctx=ctx, target=target, source_ir=source_ir + ) + reduce_name = "sum" + elif mode == 1: # mean + reduce_op = functools.partial( + impl.reduce.mean, ctx=ctx, target=target, source_ir=source_ir + ) + reduce_name = "mean" + elif mode == 2: # max + reduce_op = functools.partial( + impl.reduce.max, + ctx=ctx, + target=target, + source_ir=source_ir, + return_indices=False, + ) + reduce_name = "max" + + offsets: np.ndarray = to_numpy(offsets_list) + len_embed = embed.shape[0] + + if include_last_offset: + # modify the last index of offsets to the end index + # however, pytorch doc says if `include_last_offset` is True, the size of offsets + # is equal to the number of bags + 1. The last element is the size of the input, + # or the ending index position of the last bag (sequence). + offsets.itemset(-1, len_embed) + else: + # add the end index to offsets + offsets = np.append(offsets, len_embed) + + zero_tensor = get_trt_tensor( + ctx, np.zeros((1, embed.shape[1]), dtype=np.float32), f"{name}_zero_tensor" + ) + + # separately reduce embeddings for different bags + reduced_embed_bags = [] + len_offsets = offsets.shape[0] + for i in range(len_offsets - 1): + if offsets[i] < offsets[i + 1]: + sliced_embed = impl.slice.slice_op( + ctx, + target, + source_ir, + f"{name}_slice_embed_{i}", + embed, + 0, + int(offsets[i]), + int(offsets[i + 1]), + 1, + ) + reduced_one_bag = reduce_op( + name=f"{name}_{reduce_name}_{i}", + input_val=sliced_embed, + dim=0, + keepdim=True, + ) + reduced_embed_bags.append(reduced_one_bag) + else: # offsets[i] == offsets[i + 1] + reduced_embed_bags.append(zero_tensor) + + out = impl.cat.cat(ctx, target, source_ir, f"{name}_cat", reduced_embed_bags, 0) + return out, None, None, None + + +def embedding_bag_with_ITensor_offsets( + ctx: ConversionContext, + target: Target, + source_ir: Optional[SourceIR], + name: str, + embed: TRTTensor, + offsets: TRTTensor, + mode: int, + include_last_offset: bool, +) -> Tuple[TRTTensor, TRTTensor, TRTTensor, TRTTensor]: + len_embed = embed.shape[0] + + if include_last_offset: + # modify the last index of offsets to the end index + # however, pytorch doc says if `include_last_offset` is True, the size of offsets + # is equal to the number of bags + 1. The last element is the size of the input, + # or the ending index position of the last bag (sequence). + offsets = set_item( + ctx, target, source_ir, f"{name}_set_item", offsets, -1, len_embed + ) + else: + # add the end index to `offsets` + offsets = append(ctx, target, source_ir, f"{name}_append", offsets, len_embed) + + reduced_embed_bags = [] + # get the first item in offsets + start = ctx.net.add_gather( + offsets, get_trt_tensor(ctx, 0, f"{name}_tensor_0"), 0 + ).get_output(0) + + # create a placeholder tensor, whose shape is the same as an embedding + # if mode is 0 (sum) or 1 (mean), the placeholder tensor is filled with zeros + # if mode is 2 (max), the placeholder tensor is filled with negative infinity + zero_tensor = get_trt_tensor( + ctx, np.zeros((1, embed.shape[1]), dtype=np.float32), f"{name}_zero_tensor" + ) + placeholder_tensor = ( + get_trt_tensor( + ctx, + np.full((1, embed.shape[1]), -np.inf, dtype=np.float32), + f"{name}_negative_inf_tensor", + ) + if mode == 2 + else zero_tensor + ) + + # create a list of constant ITensor for reuse + incremental_tensor_list = [] + for i in range(0, len_embed): + incremental_tensor_list.append( + get_trt_tensor(ctx, i, f"incremental_tensor_{i}") + ) + + # traverse offsets to calculate the embedding of each bag + for i in range(1, offsets.shape[0]): + end = ctx.net.add_gather(offsets, incremental_tensor_list[i], 0).get_output(0) + + one_bag_list = [] + # traverse the constant list to see if the index is in the range of the current bag + for j in range(0, len_embed): + j_tensor = incremental_tensor_list[j] + + # create a TRT conditional layer + conditional_layer = ctx.net.add_if_conditional() + # two conditions + cond1 = impl.elementwise.ge( + ctx, target, source_ir, f"{name}_ge_{i}_{j}", j_tensor, start + ) + cond2 = impl.elementwise.lt( + ctx, target, source_ir, f"{name}_lt_{i}_{j}", j_tensor, end + ) + condition = impl.elementwise.logical_and( + ctx, target, source_ir, f"{name}_and_{i}_{j}", cond1, cond2 + ) + condition = impl.shuffle.reshape( + ctx, + target, + source_ir, + f"{name}_reshape_condition_{i}_{j}", + condition, + [], + ) + # set the combined condition to the conditional layer + conditional_layer.set_condition(condition) + # if true, run this subgraph + one_piece_embed = impl.select.index( + ctx, target, source_ir, f"{name}_index_{i}_{j}", embed, [j_tensor] + ) + true_sg = conditional_layer.add_input(one_piece_embed) + # if false, run this subgraph + false_sg = conditional_layer.add_input(placeholder_tensor) + + cond_output_layer = conditional_layer.add_output( + true_sg.get_output(0), false_sg.get_output(0) + ) + one_bag_list.append(cond_output_layer.get_output(0)) + + # concat the one_bag_list along the first dimension + one_bag = impl.cat.cat( + ctx, + target, + source_ir, + f"{name}_concat_bag{i}", + one_bag_list, + dim=0, + ) + + # reduce the one_bag along the first dimension, the result of which is an embedding of each bag + if mode == 0: # sum + reduced_one_bag = impl.reduce.sum( + ctx, + target, + source_ir, + name=f"{name}_sum_bag{i}", + input_val=one_bag, + dim=0, + keepdim=True, + ) + + # Since one_bag includes many zeros, directly calculating mean will cause results incorrect + elif mode == 1: # mean + reduced_one_bag = impl.reduce.sum( + ctx, + target, + source_ir, + name=f"{name}_sum_bag{i}", + input_val=one_bag, + dim=0, + keepdim=True, + ) + diff = impl.elementwise.sub( + ctx, target, source_ir, f"{name}_diff_bag{i}", end, start + ) + reduced_one_bag = impl.elementwise.div( + ctx, target, source_ir, f"{name}_div_bag{i}", reduced_one_bag, diff + ) + + elif mode == 2: # max + reduced_one_bag = impl.reduce.max( + ctx, + target, + source_ir, + name=f"{name}_max_bag{i}", + input_val=one_bag, + dim=0, + keepdim=True, + return_indices=False, + ) + + # create a TRT conditional layer + conditional_layer = ctx.net.add_if_conditional() + # two conditions + condition = impl.elementwise.eq( + ctx, target, source_ir, f"{name}_eq_{i}", start, end + ) + condition = impl.shuffle.reshape( + ctx, target, source_ir, f"{name}_reshape_condition_eq_{i}", condition, [] + ) + # set the combined condition to the conditional layer + conditional_layer.set_condition(condition) + # if true, run this subgraph + true_sg = conditional_layer.add_input(zero_tensor) + # if false, run this subgraph + false_sg = conditional_layer.add_input(reduced_one_bag) + + reduced_one_bag_layer = conditional_layer.add_output( + true_sg.get_output(0), false_sg.get_output(0) + ) + + reduced_embed_bags.append(reduced_one_bag_layer.get_output(0)) + start = end + + # concat the reduced_embed_bags along the first dimension + out = impl.cat.cat(ctx, target, source_ir, f"{name}_cat", reduced_embed_bags, 0) + return out, None, None, None def embedding_bag( @@ -186,8 +321,9 @@ def embedding_bag( scale_grad_by_freq: bool, mode: int, sparse: bool, - per_sample_weights: Optional[TRTTensor], + per_sample_weights: Optional[TRTTensor], # for sum mode only include_last_offset: bool, + padding_idx: int, ) -> Tuple[TRTTensor, TRTTensor, TRTTensor, TRTTensor]: """ This function is for calculating embedding bags. @@ -203,26 +339,6 @@ def embedding_bag( # TODO: support 2D inputs # indices = impl.shuffle.reshape(ctx, target, source_ir, f"{name}_reshape_indices", indices, (-1,)) - reduce_name = "" - if mode == 0: # sum - reduce_op = functools.partial( - impl.reduce.sum, ctx=ctx, target=target, source_ir=source_ir - ) - reduce_name = "sum" - elif mode == 1: # mean - reduce_op = functools.partial( - impl.reduce.mean, ctx=ctx, target=target, source_ir=source_ir - ) - reduce_name = "mean" - elif mode == 2: # max - reduce_op = functools.partial( - impl.reduce.max, - ctx=ctx, - target=target, - source_ir=source_ir, - return_indices=False, - ) - reduce_name = "max" # calculate embedding embed = embedding( @@ -232,6 +348,7 @@ def embedding_bag( f"{name}_embedding", indices, weight, + padding_idx, scale_grad_by_freq, sparse, ) @@ -261,49 +378,12 @@ def embedding_bag( per_sample_weights, ) - if include_last_offset: - pass - else: - # add the end index to `offsets` - offsets = impl.cat.cat( - ctx, - target, - source_ir, - f"{name}_concat", - [offsets, torch.tensor([indices.shape[0]], dtype=torch.int32)], - 0, - ) - - reduced_embed = [] - start = ctx.net.add_gather( - offsets, get_trt_tensor(ctx, 0, "tensor_0"), 0 - ).get_output(0) - const_list = get_trt_tensor(ctx, np.array(range(indices.shape[0])), "constant_list") - - for i in range(1, offsets.shape[0]): - end = ctx.net.add_gather( - offsets, get_trt_tensor(ctx, i, f"tensor_{i}"), 0 - ).get_output(0) - diff = impl.elementwise.sub( - ctx, target, source_ir, f"{name}_sub_{i}", end, start + if isinstance(offsets, TRTTensor): + return embedding_bag_with_ITensor_offsets( + ctx, target, source_ir, name, embed, offsets, mode, include_last_offset ) - - slice_layer = ctx.net.add_slice(const_list, (1,), (1,), (1,)) - slice_layer.set_input(1, start) - slice_layer.set_input(2, diff) - sliced_indices = slice_layer.get_output(0) - - index_embed = impl.select.index( - ctx, target, source_ir, f"{name}_index_{i}", embed, [sliced_indices] - ) - reduced_sliced_embed = reduce_op( - name=f"{name}_{reduce_name}_{i}", - input_val=index_embed, - dim=0, - keepdim=True, + else: + # this branch has less time complexity + return embedding_bag_with_traversable_offsets( + ctx, target, source_ir, name, embed, offsets, mode, include_last_offset ) - reduced_embed.append(reduced_sliced_embed) - start = end - - out = impl.cat.cat(ctx, target, source_ir, f"{name}_cat", reduced_embed, 0) - return out, None, None, None diff --git a/tests/py/dynamo/conversion/test_embedding_aten.py b/tests/py/dynamo/conversion/test_embedding_aten.py index 0ce4c5b49b..c04d89ff9e 100644 --- a/tests/py/dynamo/conversion/test_embedding_aten.py +++ b/tests/py/dynamo/conversion/test_embedding_aten.py @@ -1,5 +1,4 @@ import torch -import torch.nn as nn from parameterized import param, parameterized from torch.testing._internal.common_utils import run_tests from torch_tensorrt import Input @@ -14,11 +13,13 @@ class TestEmbeddingConverter(DispatchTestCase): test_name="1d_indices", indices_tensor=torch.tensor([3, 1, 2], dtype=torch.int32), weights_tensor=torch.randn((5, 10), dtype=torch.float32), + sparse=False, ), param( test_name="2d_indices", indices_tensor=torch.tensor([[3, 1, 2], [4, 1, 3]], dtype=torch.int32), weights_tensor=torch.randn((5, 10), dtype=torch.float32), + sparse=True, ), param( test_name="3d_indices", @@ -26,6 +27,7 @@ class TestEmbeddingConverter(DispatchTestCase): [[[0, 1], [2, 3]], [[3, 4], [4, 0]]], dtype=torch.int32 ), weights_tensor=torch.randn((5, 10), dtype=torch.float32), + sparse=True, ), ] ) @@ -38,7 +40,7 @@ def test_embedding( max_norm=None, norm_type=2.0, scale_grad_by_freq=None, - sparse=None, + sparse=False, ): class TestEmbedding(torch.nn.Module): def forward(self, indices, weights): diff --git a/tests/py/dynamo/conversion/test_embedding_bag_aten.py b/tests/py/dynamo/conversion/test_embedding_bag_aten.py index 46cbc34d2a..7649e17dac 100644 --- a/tests/py/dynamo/conversion/test_embedding_bag_aten.py +++ b/tests/py/dynamo/conversion/test_embedding_bag_aten.py @@ -8,43 +8,252 @@ class TestEmbeddingBagConverter(DispatchTestCase): @parameterized.expand( [ + # mode=0: sum, mode=1: mean, mode=2: max # 1D input param( test_name="1d_indices_1", - weight=torch.randn((10, 3), dtype=torch.float32), - indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 6, 8, 1], dtype=torch.int32), + weight=torch.randn((10, 2), dtype=torch.float32), + indices=torch.tensor( + [1, 2, 4, 5, 4, 3, 2, 6, 8, 1, 2], dtype=torch.int32 + ), offsets=torch.tensor([0, 2, 4], dtype=torch.int32), scale_grad_by_freq=False, + mode=0, + sparse=True, + per_sample_weights=None, + include_last_offset=False, + padding_idx=-1, + ), + param( + test_name="1d_indices_2", + weight=torch.randn((10, 2), dtype=torch.float32), + indices=torch.tensor( + [1, 2, 4, 5, 4, 3, 2, 6, 8, 1, 2], dtype=torch.int32 + ), + offsets=torch.tensor([0, 2, 4], dtype=torch.int32), + scale_grad_by_freq=False, + mode=1, + sparse=True, + per_sample_weights=None, + include_last_offset=True, + padding_idx=-1, + ), + param( + test_name="1d_indices_3", + weight=torch.randn((10, 4), dtype=torch.float32), + indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 9], dtype=torch.int32), + offsets=torch.tensor([0, 2, 8], dtype=torch.int32), + scale_grad_by_freq=False, + mode=2, + sparse=False, + per_sample_weights=None, + include_last_offset=False, + padding_idx=-1, + ), + param( + test_name="1d_indices_4", + weight=torch.randn((10, 4), dtype=torch.float32), + indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 9], dtype=torch.int32), + offsets=torch.tensor([0, 2, 8], dtype=torch.int32), + scale_grad_by_freq=False, + mode=0, + sparse=False, + per_sample_weights=torch.randn((8,)), + include_last_offset=True, + padding_idx=-1, + ), + param( + test_name="1d_indices_5", + weight=torch.randn((10, 4), dtype=torch.float32), + indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 9], dtype=torch.int32), + offsets=torch.tensor([0, 5, 5], dtype=torch.int32), + scale_grad_by_freq=False, + mode=1, + sparse=False, + per_sample_weights=None, + include_last_offset=True, + padding_idx=-1, + ), + param( + test_name="1d_indices_6", + weight=torch.randn((10, 4), dtype=torch.float32), + indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 9], dtype=torch.int32), + offsets=torch.tensor([0, 5, 5], dtype=torch.int32), + scale_grad_by_freq=False, + mode=2, + sparse=False, + per_sample_weights=None, + include_last_offset=False, + padding_idx=-1, + ), + param( + test_name="1d_indices_7", + weight=torch.randn((10, 4), dtype=torch.float32), + indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 9], dtype=torch.int32), + offsets=torch.tensor([0, 8, 8], dtype=torch.int32), + scale_grad_by_freq=False, + mode=0, + sparse=False, + per_sample_weights=None, + include_last_offset=True, + padding_idx=-1, + ), + param( + test_name="1d_indices_8", + weight=torch.randn((10, 4), dtype=torch.float32), + indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 9], dtype=torch.int32), + offsets=torch.tensor([0, 8, 8], dtype=torch.int32), + scale_grad_by_freq=False, mode=1, sparse=False, per_sample_weights=None, include_last_offset=False, padding_idx=-1, ), + ] + ) + def test_embedding_bag_with_traversable_offsets( + self, + test_name, + weight, + indices, + offsets, + scale_grad_by_freq, + mode, + sparse, + per_sample_weights, + include_last_offset, + padding_idx, + ): + class TestEmbeddingBag(torch.nn.Module): + def forward(self, weight, indices): + return torch.ops.aten._embedding_bag.default( + weight, + indices, + offsets, + scale_grad_by_freq, + mode, + sparse, + per_sample_weights, + include_last_offset, + padding_idx, + )[0] + + self.run_test( + TestEmbeddingBag(), + inputs=[weight, indices], + # use_dynamo_tracer=True, + enable_passes=True, + ) + + @parameterized.expand( + [ + # mode=0: sum, mode=1: mean, mode=2: max + # 1D input + param( + test_name="1d_indices_1", + weight=torch.randn((10, 2), dtype=torch.float32), + indices=torch.tensor( + [1, 2, 4, 5, 4, 3, 2, 6, 8, 1, 2], dtype=torch.int32 + ), + offsets=torch.tensor([0, 2, 4], dtype=torch.int32), + scale_grad_by_freq=False, + mode=0, + sparse=True, + per_sample_weights=None, + include_last_offset=False, + padding_idx=-1, + ), + # TODO: BUG! outputs of tensor and ITensor not matched # param( # test_name="1d_indices_2", - # weight=torch.randn((10, 3), dtype=torch.float32), - # indices=torch.tensor([1, 2, 4, 5, 4, 3], dtype=torch.int32), - # offsets=torch.tensor([0, 5], dtype=torch.int32), + # # weight=torch.randn((10, 2), dtype=torch.float32), + # # indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 6, 8, 1, 2], dtype=torch.int32), + # weight=torch.arange(12, dtype=torch.float32).reshape(6, 2), + # indices=torch.tensor([0,1, 2,3, 4,5], dtype=torch.int32), + # offsets=torch.tensor([0, 2, 4], dtype=torch.int32), # scale_grad_by_freq=False, # mode=0, - # sparse=False, - # per_sample_weights=torch.randn((6,)), - # include_last_offset=False, + # sparse=True, + # per_sample_weights=None, + # include_last_offset=True, # padding_idx=-1, # ), + param( + test_name="1d_indices_3", + weight=torch.randn((10, 4), dtype=torch.float32), + indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 9], dtype=torch.int32), + offsets=torch.tensor([0, 2, 8], dtype=torch.int32), + scale_grad_by_freq=False, + mode=2, + sparse=False, + per_sample_weights=None, + include_last_offset=False, + padding_idx=-1, + ), + param( + test_name="1d_indices_4", + weight=torch.randn((10, 4), dtype=torch.float32), + indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 9], dtype=torch.int32), + offsets=torch.tensor([0, 2, 8], dtype=torch.int32), + scale_grad_by_freq=False, + mode=0, + sparse=False, + per_sample_weights=torch.randn((8,)), + include_last_offset=True, + padding_idx=-1, + ), + # TODO: BUG! outputs of tensor and ITensor not matched # param( - # test_name="1d_indices_3", - # weight=torch.randn((10, 3), dtype=torch.float32), - # indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 9], dtype=torch.int32), - # offsets=torch.tensor([0, 2, 4], dtype=torch.int32), + # test_name="1d_indices_5", + # # weight=torch.randn((10, 4), dtype=torch.float32), + # # indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 9], dtype=torch.int32), + # weight=torch.arange(12, dtype=torch.float32).reshape(6, 2), + # indices=torch.tensor([0,1,2, 3,4,5], dtype=torch.int32), + # offsets=torch.tensor([0, 3, 3], dtype=torch.int32), # scale_grad_by_freq=False, - # mode=2, + # mode=1, # sparse=False, # per_sample_weights=None, - # include_last_offset=False, + # include_last_offset=True, # padding_idx=-1, # ), + param( + test_name="1d_indices_6", + weight=torch.randn((10, 4), dtype=torch.float32), + indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 9], dtype=torch.int32), + offsets=torch.tensor([0, 5, 5], dtype=torch.int32), + scale_grad_by_freq=False, + mode=2, + sparse=False, + per_sample_weights=None, + include_last_offset=False, + padding_idx=-1, + ), + param( + test_name="1d_indices_7", + weight=torch.randn((10, 4), dtype=torch.float32), + indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 9], dtype=torch.int32), + offsets=torch.tensor([0, 8, 8], dtype=torch.int32), + scale_grad_by_freq=False, + mode=0, + sparse=False, + per_sample_weights=None, + include_last_offset=True, + padding_idx=-1, + ), + param( + test_name="1d_indices_8", + weight=torch.randn((10, 4), dtype=torch.float32), + indices=torch.tensor([1, 2, 4, 5, 4, 3, 2, 9], dtype=torch.int32), + offsets=torch.tensor([0, 8, 8], dtype=torch.int32), + scale_grad_by_freq=False, + mode=1, + sparse=False, + per_sample_weights=None, + include_last_offset=False, + padding_idx=-1, + ), # 2D input # param( # test_name="2d_indices_1", @@ -103,7 +312,7 @@ class TestEmbeddingBagConverter(DispatchTestCase): # ), ] ) - def test_embedding_bag( + def test_embedding_bag_with_ITensor_offsets( self, test_name, weight,