nvinfer1::builder::buildGraph Segmentation fault.

Hello,

I am trying to convert caffe model with TensorRT 4.0.1.6 and and i get a SegFault at
nvinfer1::builder::buildGraph(nvinfer1::CudaEngineBuildConfig

I am using the open pose model

http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/coco/pose_iter_440000.caffemodel
https://raw.githubusercontent.com/opencv/opencv_extra/master/testdata/dnn/openpose_pose_coco.prototxt

And this is how i create am trying to compile the network

IBuilder* builder = createInferBuilder(gLogger);
INetworkDefinition* network = builder->createNetwork();
ICaffeParser* parser = createCaffeParser();
const IBlobNameToTensor* blobNameToTensor = parser->parse(deployFile ,modelFile, *network, DataType::kHALF);
for (auto& s : outputs)
{
    
        network->markOutput(*blobNameToTensor->find(s.c_str()));
 }
    
    builder->setMaxBatchSize(maxBatchSize);

    ICudaEngine* engine = builder->buildCudaEngine(*network);

Any ideas on why this may happen?

Thanks a lot

I managed to run this sample code and tensorRT4.0.1.6 works well.

/*
 * openpose code sample
 * make command:
 * nvcc openpose.cc -o openpose -std=c++11 -I /path/to/TensorRT-4.0.1.6/include -L /path/to/TensorRT-4.0.1.6/lib -lnvinfer -lnvcaffe_parser
 */

#include "NvCaffeParser.h"
#include "NvInfer.h"
#include "NvUtils.h"

#include <cuda_runtime_api.h>
#include <iostream>
#include <string>
#include <vector>

class Logger : public nvinfer1::ILogger
{
    public:
        Logger(Severity severity = Severity::kWARNING)
        {
        }
        void log(Severity severity, const char *msg) override
        {
            if (severity != Severity::kINFO)
            {
                std::cout << msg << std::endl;
            }
        }
}gLogger;

int main() {

  const char* deployFile = "openpose_pose_coco.prototxt";
  const char* modelFile = "pose_iter_440000.caffemodel";

  nvinfer1::IBuilder *builder = nvinfer1::createInferBuilder(gLogger);
  nvinfer1::INetworkDefinition *network = builder->createNetwork();
  nvcaffeparser1::ICaffeParser *parser = nvcaffeparser1::createCaffeParser();

  const nvcaffeparser1:: IBlobNameToTensor *blobNameToTensor =
      parser->parse(deployFile, modelFile, *network, nvinfer1::DataType::kHALF);
  std::vector<std::string> outputs;

  outputs.push_back("Mconv7_stage6_L2");
  for (auto &s : outputs) {

    network->markOutput(*blobNameToTensor->find(s.c_str()));
  }

  size_t maxBatchSize = 1;
  builder->setMaxBatchSize(maxBatchSize);

  nvinfer1::ICudaEngine *engine = builder->buildCudaEngine(*network);
  if (engine != nullptr)
  {
      std::cout << "engine build ok" << std::endl;
  }
  return 0;
}