From 078977c5a24b5149bfb5aa8996982a5b072f4220 Mon Sep 17 00:00:00 2001 From: Bo Wang Date: Mon, 18 Jul 2022 14:53:02 -0700 Subject: [PATCH 1/2] fix: fix the renaming error in squeeze converter Signed-off-by: Bo Wang --- core/conversion/converters/impl/squeeze.cpp | 3 ++- .../conversion/converters/test_squeeze.cpp | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/core/conversion/converters/impl/squeeze.cpp b/core/conversion/converters/impl/squeeze.cpp index f6884bb09e..5dcdf62192 100644 --- a/core/conversion/converters/impl/squeeze.cpp +++ b/core/conversion/converters/impl/squeeze.cpp @@ -26,7 +26,8 @@ auto squeeze_registrations TORCHTRT_UNUSED = RegisterNodeConversionPatterns().pa } if (selfDim[dim] != 1) { - auto out = ctx->AssociateValueAndTensor(n->outputs()[0], self); + auto id_layer = ctx->net->addIdentity(*self); + auto out = ctx->AssociateValueAndTensor(n->outputs()[0], id_layer->getOutput(0)); LOG_DEBUG("Output tensor shape: " << out->getDimensions()); diff --git a/tests/core/conversion/converters/test_squeeze.cpp b/tests/core/conversion/converters/test_squeeze.cpp index f2531ffcdb..584abada06 100644 --- a/tests/core/conversion/converters/test_squeeze.cpp +++ b/tests/core/conversion/converters/test_squeeze.cpp @@ -53,6 +53,32 @@ TEST(Converters, ATenSqueezeDontNeedSqueezeConvertsCorrectly) { params = torch_tensorrt::core::ir::get_static_params(g->inputs(), {}); auto trt_results = torch_tensorrt::tests::util::RunGraphEngine(g, params, {trt_in, trt_in_add}); + ASSERT_TRUE( + torch_tensorrt::tests::util::almostEqual(jit_results[0], trt_results[0].reshape_as(jit_results[0]), 2e-6)); +} + +TEST(Converters, ATenSqueezeNeedIdentityConvertsCorrectly) { + const auto graph = R"IR( + graph(%0 : Tensor): + %2 : int = prim::Constant[value=1]() + %3 : Tensor = aten::squeeze(%0, %2) + return (%3))IR"; + + auto g = std::make_shared(); + torch::jit::parseIR(graph, &*g); + + auto in = at::randint(1, 10, {2, 3, 3}, {at::kCUDA}); + + auto jit_in = at::clone(in); + + auto params = torch_tensorrt::core::ir::get_static_params(g->inputs(), {}); + auto jit_results = torch_tensorrt::tests::util::RunGraph(g, params, {jit_in}); + + auto trt_in = at::clone(jit_in); + + params = torch_tensorrt::core::ir::get_static_params(g->inputs(), {}); + auto trt_results = torch_tensorrt::tests::util::RunGraphEngine(g, params, {trt_in}); + ASSERT_TRUE( torch_tensorrt::tests::util::almostEqual(jit_results[0], trt_results[0].reshape_as(jit_results[0]), 2e-6)); } \ No newline at end of file From 5253484ea7c5e2cbc9b84a2c9ee3e1782a13b6b2 Mon Sep 17 00:00:00 2001 From: Bo Wang Date: Fri, 22 Jul 2022 12:15:49 -0700 Subject: [PATCH 2/2] fix: fix the bug by deleting the renaming line Signed-off-by: Bo Wang --- core/conversion/conversionctx/ConversionCtx.cpp | 1 - core/conversion/converters/impl/squeeze.cpp | 3 +-- tests/core/conversion/converters/test_squeeze.cpp | 3 ++- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/core/conversion/conversionctx/ConversionCtx.cpp b/core/conversion/conversionctx/ConversionCtx.cpp index 0d7b7084d9..9e7c1830a7 100644 --- a/core/conversion/conversionctx/ConversionCtx.cpp +++ b/core/conversion/conversionctx/ConversionCtx.cpp @@ -130,7 +130,6 @@ ConversionCtx::~ConversionCtx() { } nvinfer1::ITensor* ConversionCtx::AssociateValueAndTensor(const torch::jit::Value* value, nvinfer1::ITensor* tensor) { - tensor->setName(value->debugName().c_str()); this->value_tensor_map[value] = tensor; return tensor; } diff --git a/core/conversion/converters/impl/squeeze.cpp b/core/conversion/converters/impl/squeeze.cpp index 5dcdf62192..f6884bb09e 100644 --- a/core/conversion/converters/impl/squeeze.cpp +++ b/core/conversion/converters/impl/squeeze.cpp @@ -26,8 +26,7 @@ auto squeeze_registrations TORCHTRT_UNUSED = RegisterNodeConversionPatterns().pa } if (selfDim[dim] != 1) { - auto id_layer = ctx->net->addIdentity(*self); - auto out = ctx->AssociateValueAndTensor(n->outputs()[0], id_layer->getOutput(0)); + auto out = ctx->AssociateValueAndTensor(n->outputs()[0], self); LOG_DEBUG("Output tensor shape: " << out->getDimensions()); diff --git a/tests/core/conversion/converters/test_squeeze.cpp b/tests/core/conversion/converters/test_squeeze.cpp index 584abada06..5128dc478d 100644 --- a/tests/core/conversion/converters/test_squeeze.cpp +++ b/tests/core/conversion/converters/test_squeeze.cpp @@ -57,7 +57,8 @@ TEST(Converters, ATenSqueezeDontNeedSqueezeConvertsCorrectly) { torch_tensorrt::tests::util::almostEqual(jit_results[0], trt_results[0].reshape_as(jit_results[0]), 2e-6)); } -TEST(Converters, ATenSqueezeNeedIdentityConvertsCorrectly) { +// Test for renaming ITensor related binding issues +TEST(Converters, ATenSqueezeSingleConvertsCorrectly) { const auto graph = R"IR( graph(%0 : Tensor): %2 : int = prim::Constant[value=1]()