Skip to content

🐛 [Bug] Regression : Torch-TensorRT now fail to convert due to unsupported negative pad for torch.nn.ConstantPad2d #2079

Closed
@fabricecarles

Description

@fabricecarles

Bug Description

This is a regression due to :

  • torch 2.0.1
  • torch-tensorrt 1.4.0
  • torchvision 0.15.2
  • tensorrt 8.6.1

Now we fail to convert every network with torch_tensorrt.compile() if negative pad is used inside ConstantPad layer while conversion work fine in earlier version

example: torch.nn.ConstantPad2d(-6, float(0.0)) will raised RuntimeError: [Error thrown at core/conversion/converters/impl/constant_pad.cpp:35] Expected left >= 0 to be true but got false Unsupported negative pad at index 0

To Reproduce

Steps to reproduce the behavior:

  1. instantiate a net with a layer having negative pad
  2. convert the net with trt_ts_module = torch_tensorrt.compile( model.to(device), inputs=[torch_tensorrt.Input((1, 1, args.image_size, args.image_size))], enabled_precisions={torch.half}, # Run with FP16 enabled_precisions, workspace_size = 1024, )
  3. get message RuntimeError: [Error thrown at core/conversion/converters/impl/constant_pad.cpp:35] Expected left >= 0 to be true but got false Unsupported negative pad at index 0

full stack trace

Traceback (most recent call last):
  File "/home/username/src/dev/deepWork/pytorch/main_test.py", line 446, in <module>
    trt_ts_module = torch_tensorrt.compile(
  File "/home/username/bin/anaconda3/envs/django/lib/python3.10/site-packages/torch_tensorrt/_compile.py", line 133, in compile
    return torch_tensorrt.ts.compile(
  File "/home/username/bin/anaconda3/envs/django/lib/python3.10/site-packages/torch_tensorrt/ts/_compiler.py", line 139, in compile
    compiled_cpp_mod = _C.compile_graph(module._c, _parse_compile_spec(spec))
RuntimeError: [Error thrown at core/conversion/converters/impl/constant_pad.cpp:35] Expected left >= 0 to be true but got false
Unsupported negative pad at index 0

Expected behavior

Conversion work fine in earlier version:
-torch 1.12.1
-torch-tensorrt 1.2.0
-torchvision 0.13.1
-tensorrt 8.0.3.4

Environment

  • Torch-TensorRT Version 1.4.0:
  • PyTorch Version 2.0.1:
  • CPU Architecture: x64_64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
  • OS (e.g., Linux): Ubuntu 20.04
  • How you installed PyTorch : pip inside conda env):
  • Python version: 3.10.6
  • CUDA version: 11.8
  • GPU models and configuration: models on cuda:0 GeForce RTX 2070 Mobile
  • Any other relevant information: Regression bug, no bug in earlier version (torch 1.12.1 torch-tensorrt 1.2.0)

Additional context

Pure torchscript conversion with torch.jit.trace work fine for all versions !

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions