cyrusbehr / tensorrt-cpp-api

TensorRT C++ API Tutorial
MIT License
543 stars 66 forks source link

Unable to build the project #41

Closed aravindchakravarti closed 6 months ago

aravindchakravarti commented 6 months ago

Hi, I followed the instructions written in Getting Started. However, I am seeing following errors. Can you please help?

user6@aimlserver:~/Documents/tensorRT_CPP_API/tensorrt-cpp-api/build$ cmake ..
-- ccache: not found
-- Found CUDA: /usr/local/cuda-11.6 (found version "11.6") 
-- Found OpenCV: /usr/local (found version "4.5.5") 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user6/Documents/tensorRT_CPP_API/tensorrt-cpp-api/build

user6@aimlserver:~/Documents/tensorRT_CPP_API/tensorrt-cpp-api/build$ make -j$(nproc)
[ 25%] Building CXX object CMakeFiles/tensorrt_cpp_api.dir/src/engine.cpp.o
/home/user6/Documents/tensorRT_CPP_API/tensorrt-cpp-api/src/engine.cpp: In member function ‘bool Engine::loadNetwork()’:
/home/user6/Documents/tensorRT_CPP_API/tensorrt-cpp-api/src/engine.cpp:254:32: error: ‘class nvinfer1::ICudaEngine’ has no member named ‘getNbIOTensors’
  254 |     m_buffers.resize(m_engine->getNbIOTensors());
      |                                ^~~~~~~~~~~~~~
/home/user6/Documents/tensorRT_CPP_API/tensorrt-cpp-api/src/engine.cpp:262:35: error: ‘class nvinfer1::ICudaEngine’ has no member named ‘getNbIOTensors’
  262 |     for (int i = 0; i < m_engine->getNbIOTensors(); ++i) {
      |                                   ^~~~~~~~~~~~~~
/home/user6/Documents/tensorRT_CPP_API/tensorrt-cpp-api/src/engine.cpp:263:43: error: ‘class nvinfer1::ICudaEngine’ has no member named ‘getIOTensorName’
  263 |         const auto tensorName = m_engine->getIOTensorName(i);
      |                                           ^~~~~~~~~~~~~~~
/home/user6/Documents/tensorRT_CPP_API/tensorrt-cpp-api/src/engine.cpp:265:43: error: ‘class nvinfer1::ICudaEngine’ has no member named ‘getTensorIOMode’
  265 |         const auto tensorType = m_engine->getTensorIOMode(tensorName);
      |                                           ^~~~~~~~~~~~~~~
/home/user6/Documents/tensorRT_CPP_API/tensorrt-cpp-api/src/engine.cpp:266:44: error: ‘class nvinfer1::ICudaEngine’ has no member named ‘getTensorShape’
  266 |         const auto tensorShape = m_engine->getTensorShape(tensorName);
      |                                            ^~~~~~~~~~~~~~
/home/user6/Documents/tensorRT_CPP_API/tensorrt-cpp-api/src/engine.cpp:267:27: error: ‘TensorIOMode’ has not been declared
  267 |         if (tensorType == TensorIOMode::kINPUT) {
      |                           ^~~~~~~~~~~~
/home/user6/Documents/tensorRT_CPP_API/tensorrt-cpp-api/src/engine.cpp:275:34: error: ‘TensorIOMode’ has not been declared
  275 |         } else if (tensorType == TensorIOMode::kOUTPUT) {
      |                                  ^~~~~~~~~~~~
/home/user6/Documents/tensorRT_CPP_API/tensorrt-cpp-api/src/engine.cpp: In member function ‘bool Engine::runInference(const std::vector<std::vector<cv::cuda::GpuMat> >&, std::vector<std::vector<std::vector<float> > >&)’:
/home/user6/Documents/tensorRT_CPP_API/tensorrt-cpp-api/src/engine.cpp:366:20: error: ‘class nvinfer1::IExecutionContext’ has no member named ‘setInputShape’; did you mean ‘setInputShapeBinding’?
  366 |         m_context->setInputShape(m_IOTensorNames[i].c_str(), inputDims); // Define the batch size
      |                    ^~~~~~~~~~~~~
      |                    setInputShapeBinding
/home/user6/Documents/tensorRT_CPP_API/tensorrt-cpp-api/src/engine.cpp:388:34: error: ‘class nvinfer1::IExecutionContext’ has no member named ‘setTensorAddress’
  388 |         bool status = m_context->setTensorAddress(m_IOTensorNames[i].c_str(), m_buffers[i]);
      |                                  ^~~~~~~~~~~~~~~~
/home/user6/Documents/tensorRT_CPP_API/tensorrt-cpp-api/src/engine.cpp:395:30: error: ‘class nvinfer1::IExecutionContext’ has no member named ‘enqueueV3’; did you mean ‘enqueueV2’?
  395 |     bool status = m_context->enqueueV3(inferenceCudaStream);
      |                              ^~~~~~~~~
      |                              enqueueV2
make[2]: *** [CMakeFiles/tensorrt_cpp_api.dir/build.make:76: CMakeFiles/tensorrt_cpp_api.dir/src/engine.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:111: CMakeFiles/tensorrt_cpp_api.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
cyrusbehr commented 6 months ago

Hi @aravindchakravarti what version of TensorRT are you using? I imagine you are using an older version.

image

You need to use 8.6 or newer.

cyrusbehr commented 6 months ago

Reopen the issue if you are still having issues after upgrading the TensorRT version.

aravindchakravarti commented 6 months ago

@cyrusbehr : Thank you your reply. I am using TensorRT version 8.4.1.5. I will upgrade TensorRT and check.