A few questions about TensorRT versioning

I am using PX2 AutoChauffeur with “DRIVE OS 5.0.10.3 Linux SDK for DRIVE PX 2”.
Could you please answer a few questions?

  1. What TensorRT version does DRIVE OS 5.0.10.3 include?
    (I checked /usr/lib/aarch64-linux-gnu/libnvinfer.so.4.1.1. So I guess this tells its version.)

  2. A while ago, I downloaded TensorRT-4.0.1.6 tar file (not for embedded systems but for standard Linux systems), which has libnvinfer.so.4.1.2.
    (I am not sure if the “version” refers 4.0.1.6 or 4.1.2 here… anyway.)
    ==> Apparently, the tar distribution (for Linux) is newer than the one in Drive OS 5.0.10.3.

  3. The Linux TensoRT (4.1.2) includes the “sampleUffSSD” example but DRIVE OS TensorRT (4.1.1) doesn’t. Why is this? Is the because the “sampleUffSSD” example was introduced after 4.1.1?

  4. I heard that Drive OS 5.0.10.3 will be the last update for PX2. Would this be true? Then, why doesn’t the OS include 4.1.2 instead of 4.1.1?

  5. Is there a way to update TensorRT for PX 2? 5.x would be greater but at least to 4.1.2?

** I am asking this since my DNN network has a custom plugin layer with multiple input layers (similar to a custom layer in sampleUffSSD example). I checked that my network works with Linux systems (TensorRT 4.1.2) but not with the PX2 (TensorRT 4.1.1), which seems to have a bug or limitation considering that sampleUffSSD is also not there.

It would be really a great help if you could make my questions clear. Thanks.

Hi Paul,

DW 1.2.x comes with NVIDIA TensorRT™ version 4.0.0.8 and not as stated in the current Release Notes [url]https://docs.nvidia.com/drive/active/5.0.10.3L/pdfs/NVIDIA_DriveWorks_SDK_Release_Notes_1.2.400.pdf[/url] with NVIDIA TensorRT™ version 4.0.3.

Regarding the tarballs 4.1.1 and 4.1.2, the latter one comes with the sampleUffSSD while the other one does not support it. Moreover TensorRT 4.1.2 is not supported on DPX2 and thus not included.

To frame your problem: You want to plug in your custom layer with multiple layers as input.

[Update:] In order to maintain a high quality of our code for the automotive industry, we decided to not include this functionality by not including the sampleUffSSD into the 4.1.1 release. Besides, we have tested multiple layers as input with a custom plugin using Caffe and this works well.

  • Fabian

Hi FabianWeise,

Okay, That’s in line with my initial assumption and I would like to make sure that the error was not due to my wrong API usage. At this moment, I’ll just work around that issue with a few tricks until my group will have AGX.

Deeply thank you for checking and answering my all questions. :)

Hi, I have similar problems as above. Fortunately, my tensorflow model does not contain a plug-in-layer.
My model worked well on tensorrt4 of an PC platform, but have error on tensorrt4 of px2 platform.
The log on PC platform,(with trtexec):

zyf@zyf-HP-Z4-G4-Workstation:~/TensorRT-4.0.1.6/bin$ ./trtexec --uff='/home/zyf/tf_to_uff/model/px2HRYT_lanenet_pb.uff' --uffInput=input_tensor,3,256,512 --output=lanenet_loss/Softmax --output=lanenet_loss/instance_seg --engine=px2lanenet
uff: /home/zyf/tf_to_uff/model/px2HRYT_lanenet_pb.uff
uffInput: input_tensor,3,256,512
output: lanenet_loss/Softmax
output: lanenet_loss/instance_seg
engine: px2lanenet
name=input_tensor, bindingIndex=0, buffers.size()=3
name=lanenet_loss/Softmax, bindingIndex=1, buffers.size()=3
name=lanenet_loss/instance_seg, bindingIndex=2, buffers.size()=3
Average over 10 runs is 19.3824 ms (percentile time is 110.563).
Average over 10 runs is 9.38793 ms (percentile time is 9.81606).
Average over 10 runs is 8.82493 ms (percentile time is 9.25798).
Average over 10 runs is 8.71066 ms (percentile time is 9.88672).
Average over 10 runs is 8.66632 ms (percentile time is 9.50682).
Average over 10 runs is 8.78387 ms (percentile time is 9.49658).
Average over 10 runs is 8.65423 ms (percentile time is 9.56621).
Average over 10 runs is 8.7296 ms (percentile time is 10.6363).
Average over 10 runs is 8.66888 ms (percentile time is 9.64611).
Average over 10 runs is 8.65403 ms (percentile time is 9.4423).

The log on px2 platform,(with tensorRT_optimization):

sudo ./tensorRT_optimization --inputBlobs=input_tensor --inputDims=3x256x512 --outputBlobs=lanenet_loss/instance_seg --modelType=uff --uffFile='/home/nvidia/ADAS_visions/model/px2HRYT_lanenet_pb.uff'
[sudo] password for nvidia: 
Initializing network optimizer on model /home/nvidia/ADAS_visions/model/px2HRYT_lanenet_pb.uff.
terminate called after throwing an instance of 'ParserException'
  what():  Unknown reference: weights_lanenet_loss/inference/encode/conv1_1/conv/W
Aborted (core dumped)

In addition
I found px2 platform have not trtexec files to run uff model, but have the old giexec files which does not support uff model. Does it meaning that the tensorrt4.0.3 on px2 platform not support uff model as yet?

Hi Luan,

sorry for the late answer. You do find the giexec file on your device located in

/usr/src/tensorrt/bin

Actually, you are right saying that this binary does not support .uff files.

Solution: I downloaded the most recent TensorRT 4.1.x version on the DPX2 and moved the trtexec and moved it to the location of giexec. Then I replaced all Dims3 structures with DimCWH structures and some other trivial modifications.

This works.

  • Fabian