SIGSEGV, Segmentation fault in nvinfer1::Network::validate

Hi,

I have a faster-rcnn resnet101 model I would like to optimize with TensorRT 3 (which worked in TensorRT 2 Ubuntu 16 at least but not DrivePx2), but when I do I get the following error:

Thread 1 "sample_fasterRC" received signal SIGSEGV, Segmentation fault.
0x00007fffede931e7 in nvinfer1::Network::validate(nvinfer1::cudnn::HardwareContext const&, bool, bool, int) const () from /home/kent/libs/TensorRT-3.0.1/lib/libnvinfer.so.4
(cuda-gdb) bt
#0  0x00007fffede931e7 in nvinfer1::Network::validate(nvinfer1::cudnn::HardwareContext const&, bool, bool, int) const () from /home/kent/libs/TensorRT-3.0.1/lib/libnvinfer.so.4
#1  0x00007fffede7eed6 in nvinfer1::builder::buildEngine(nvinfer1::CudaEngineBuildConfig&, nvinfer1::cudnn::HardwareContext const&, nvinfer1::Network const&) () from /home/kent/libs/TensorRT-3.0.1/lib/libnvinfer.so.4
#2  0x00007fffede69b61 in nvinfer1::Builder::buildCudaEngine(nvinfer1::INetworkDefinition&) () from /home/kent/libs/TensorRT-3.0.1/lib/libnvinfer.so.4
#3  0x0000000000404e34 in caffeToGIEModel(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, unsigned int, nvcaffeparser1::IPluginFactory*, nvinfer1::IHostMemory**) ()
#4  0x0000000000406800 in main ()

I get the error both on my ubuntu 16.04 with a Titan Xp and the DrivePx2.

Reading the thread below I thought the problem might be that I have used wrong version of caffe training the model.

https://devtalk.nvidia.com/default/topic/1027521/deepstream-for-tesla/why-received-signal-sigsegv-when-import-deploy-prototxt-with-tensor-rt-3-0/post/5226668/#5226668

So I’ve tried training the model with the different versions of caffe below but always the same error.



nvcaffe-0.15.14
nvcaffe-0.15.8
nvcaffe-0.15.5

Host setup:

  • TensorRT-3.0.1
  • CUDA Version 9.0.176
  • cudnn 7.0.5
  • Driver Version: 384.81
  • Titan Xp

Solved!

The problem was that I still used my modified sampleFasterRCNN.cpp for TensorRT 2. Since in TensorRT 3 the custom layer RPROIFused has changed to only have three outputs I needed to remove everything concerning

const char* OUTPUT_BLOB_NAME3 = "count";