Description
I created the first layer of a simple U-Net in PyTorch, using only nn.Conv2d(), nn.ConvTranspose2d() and F.relu() layers and torch.cat(). Converting to ONNX with setop version 7 and then to a TensorRT engine using trtexec on a Jetson Xavier with JetPack 4.5 works fine! But then, when I add a second layer to the U-Net, using the exact same layers as before, trtexec reports an error.
Environment
Platform: Jetson XAVIER Dev Kit
Jetpack Version: 4.5
Relevant Files
U-Net 1-layer, which works fine
self.conv1 = nn.Conv2d(4, 80, (3, 3), 2, 1, bias=True)
self.conv10 = nn.Conv2d(80 + 4, 1, (3, 3), 1, 1, bias=True)
self.conv_transpose10 = nn.ConvTranspose2d(80, 80, kernel_size=2, stride=2)
x1 = F.relu(self.conv1(x))
xup = self.conv_transpose10(x1, output_size=x.size()[2:])
d = F.relu(self.conv10(torch.cat((xup, x), 1)))
U-Net 2-layers, fails
self.conv1 = nn.Conv2d(4, 80, (3, 3), 2, 1, bias=True)
self.conv2 = nn.Conv2d(80, 80, (3, 3), 2, 1, bias=True)
self.conv9 = nn.Conv2d(80 + 80, 32, (3, 3), 1, 1, bias=True)
self.conv10 = nn.Conv2d(32 + 4, 1, (3, 3), 1, 1, bias=True)
self.conv_transpose9 = nn.ConvTranspose2d(80, 80, kernel_size=2, stride=2)
self.conv_transpose10 = nn.ConvTranspose2d(32, 32, kernel_size=2, stride=2)
x1 = F.relu(self.conv1(x))
x2 = F.relu(self.conv2(x1))
xup = self.conv_transpose9(x2, output_size=x1.size()[2:])
x9 = F.relu(self.conv9(torch.cat((xup, x1), 1)))
xup = self.conv_transpose10(x9, output_size=x.size()[2:])
d = F.relu(self.conv10(torch.cat((xup, x), 1)))
Steps To Reproduce
Conversion from PyTorch to ONNX model.
On Jetson Xavier with JetPack 4.5:
/usr/src/tensorrt/bin/trtexec --buildOnly --fp16 --useDLACore=1 --allowGPUFallback=false --workspace=4096 --explicitBatch --onnx=model.onnx --saveEngine=model_engine.trt
…
Input filename: model.onnx
ONNX IR version: 0.0.4
Opset version: 7
Producer name: pytorch
Producer version: 1.3
Domain:
Model version: 0
Doc string:
[09/15/2021-15:07:45] [I] [TRT]
[09/15/2021-15:07:45] [I] [TRT] --------------- Layers running on DLA:
[09/15/2021-15:07:45] [I] [TRT] {(Unnamed Layer* 0) [Convolution],(Unnamed Layer* 1) [Activation],(Unnamed Layer* 2) [Convolution],(Unnamed Layer* 3) [Activation],(Unnamed Layer* 4) [Deconvolution],(Unnamed Layer* 5) [Concatenation],(Unnamed Layer* 6) [Convolution],(Unnamed Layer* 7) [Activation],(Unnamed Layer* 8) [Deconvolution]}, {(Unnamed Layer* 10) [Convolution],(Unnamed Layer* 11) [Activation]},
[09/15/2021-15:07:45] [I] [TRT] --------------- Layers running on GPU:
[09/15/2021-15:07:45] [I] [TRT] 21 copy, input copy,
[09/15/2021-15:07:48] [W] [TRT] DLA Node compilation Failed.
[09/15/2021-15:07:48] [W] [TRT] DLA Node compilation Failed.
[09/15/2021-15:07:48] [E] [TRT] Try increasing the workspace size with IBuilderConfig::setMaxWorkspaceSize() if using IBuilder::buildEngineWithConfig, or IBuilder::setMaxWorkspaceSize() if using IBuilder::buildCudaEngine.
[09/15/2021-15:07:48] [E] [TRT] …/builder/tacticOptimizer.cpp (1715) - TRTInternal Error in computeCosts: 0 (Could not find any implementation for node {(Unnamed Layer* 0) [Convolution],(Unnamed Layer* 1) [Activation],(Unnamed Layer* 2) [Convolution],(Unnamed Layer* 3) [Activation],(Unnamed Layer* 4) [Deconvolution],(Unnamed Layer* 5) [Concatenation],(Unnamed Layer* 6) [Convolution],(Unnamed Layer* 7) [Activation],(Unnamed Layer* 8) [Deconvolution]}.)
[09/15/2021-15:07:48] [E] [TRT] …/builder/tacticOptimizer.cpp (1715) - TRTInternal Error in computeCosts: 0 (Could not find any implementation for node {(Unnamed Layer* 0) [Convolution],(Unnamed Layer* 1) [Activation],(Unnamed Layer* 2) [Convolution],(Unnamed Layer* 3) [Activation],(Unnamed Layer* 4) [Deconvolution],(Unnamed Layer* 5) [Concatenation],(Unnamed Layer* 6) [Convolution],(Unnamed Layer* 7) [Activation],(Unnamed Layer* 8) [Deconvolution]}.)
[09/15/2021-15:07:48] [E] Engine creation failed
[09/15/2021-15:07:48] [E] Engine set up failed
&&&& FAILED TensorRT.trtexec # /usr/src/tensorrt/bin/trtexec --buildOnly --fp16 --useDLACore=1 --allowGPUFallback=false --workspace=1024 --explicitBatch --onnx=model.onnx --saveEngine=model_engine.trt