Tengine icon indicating copy to clipboard operation
Tengine copied to clipboard

Build Tengine with TensorRT failed in Jetson nano!

Open ghimiredhikura opened this issue 3 years ago • 2 comments

Enabling tensorrt in jetson-nano failed with the following error.

looser throw specifier for ‘virtual void Logger::log(nvinfer1::ILogger::Severity, const char*)’
     void log(Severity severity, const char* msg) override
  • Compile log:
Tengine/build-linux-trt$ cmake -DTENGINE_ENABLE_TENSORRT=ON -DTENGINE_BUILD_CPP_API=OFF -DTENGINE_ONLINE_REPORT=OFF ..                                                                                       -- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found CUDAToolkit: /usr/local/cuda/include (found version "10.2.300")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found CUDNN: /usr/include (found version "8.2.1")
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Found OpenMP_C: -fopenmp (found version "4.5")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Found OpenCV: /usr (found version "4.1.1")
--
--
-- Infomation Summary:
--
-- CMake infomation:
--   - CMake version:              3.21.2
--   - CMake generator:            Unix Makefiles
--   - CMake building tools:       /usr/bin/make
--   - Target System:              Linux
--   - Target CPU arch:            ARM
--   - Target building type:       release
--   - Target CPU bus width:       64 Bit
--
-- tengine-lite toolchain infomation:
--   Cross compiling: FALSE
--   C/C++ compilier:
--     - C   standard version:     C99
--     - C   standard required:    TRUE
--     - C   standard extensions:  ON
--     - C   compilier version:    7.5.0
--     - C   compilier:            /usr/bin/cc
--     - C++ standard version:     C++11
--     - C++ standard required:    TRUE
--     - C++ standard extensions:  OFF
--     - C++ compilier version:    7.5.0
--     - C++ compilier:            /usr/bin/c++
--   C/C++ compilier flags:
--     - C   compilier flags:
--     - C++ compilier flags:
--   OpenMP:
--     - OpenMP was found:         YES
--     - OpenMP version:           4.5
--
-- tengine-lite building infomation:
--   - Project source path is:     /home/ghimire/Desktop/Tengine
--   - Project building path is:   /home/ghimire/Desktop/Tengine/build-linux-trt
--
-- tengine-lite other infomation:
--   Package install path:         /home/ghimire/Desktop/Tengine/build-linux-trt/install
--
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ghimire/Desktop/Tengine/build-linux-trt
  • Build log
[ 37%] Building ASM object source/CMakeFiles/tengine-lite-static.dir/device/cpu/op/conv/cortex-a/armv8/scale_neon.S.o
[ 37%] Building ASM object source/CMakeFiles/tengine-lite-static.dir/device/cpu/op/conv/cortex-a/armv8/sgemm_4x16_a72.S.o
[ 37%] Building ASM object source/CMakeFiles/tengine-lite-static.dir/device/cpu/op/conv/cortex-a/armv8/sgemm_4x16_deconv_a72.S.o
In file included from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:26:0:
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_helper.hpp:103:10: error: looser throw specifier for ‘virtual void Logger::log(nvinfer1::ILogger::Severity, const char*)’
     void log(Severity severity, const char* msg) override
          ^~~
In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                 from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.hpp:40,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:25:
/usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:1222:18: error:   overriding ‘virtual void nvinfer1::ILogger::log(nvinfer1::ILogger::Severity, const AsciiChar*) noexcept’
     virtual void log(Severity severity, AsciiChar const* msg) noexcept = 0;
                  ^~~
In file included from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.hpp:27:0,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:25:
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc: In constructor ‘TensorRTEngine::TensorRTEngine()’:
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_define.h:27:25: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
 #define TRT_DEVICE_NAME "TensorRT"
                         ^
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:88:29: note: in expansion of macro ‘TRT_DEVICE_NAME’
     this->option.dev_name = TRT_DEVICE_NAME;
                             ^~~~~~~~~~~~~~~
[ 37%] Building ASM object source/CMakeFiles/tengine-lite-static.dir/device/cpu/op/conv/cortex-a/armv8/sgemm_4x4_a72.S.o
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc: In member function ‘int TensorRTEngine::PreRun(subgraph*, trt_option*)’:
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:664:86: warning: ‘nvinfer1::ICudaEngine* nvinfer1::IBuilder::buildEngineWithConfig(nvinfer1::INetworkDefinition&, nvinfer1::IBuilderConfig&)’ is deprecated [-Wdeprecated-declarations]
     this->engine = this->builder->buildEngineWithConfig(*this->network, *this->config);
                                                                                      ^
In file included from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.hpp:40:0,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:25:
/usr/include/aarch64-linux-gnu/NvInfer.h:7990:43: note: declared here
     TRT_DEPRECATED nvinfer1::ICudaEngine* buildEngineWithConfig(
                                           ^~~~~~~~~~~~~~~~~~~~~
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc: In member function ‘int TensorRTEngine::PoseRun(subgraph*)’:
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:798:28: warning: ‘void nvinfer1::IExecutionContext::destroy()’ is deprecated [-Wdeprecated-declarations]
     this->context->destroy();
                            ^
In file included from /usr/include/aarch64-linux-gnu/NvInfer.h:54:0,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.hpp:40,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:25:
/usr/include/aarch64-linux-gnu/NvInferRuntime.h:1888:25: note: declared here
     TRT_DEPRECATED void destroy() noexcept
                         ^~~~~~~
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:799:27: warning: ‘void nvinfer1::ICudaEngine::destroy()’ is deprecated [-Wdeprecated-declarations]
     this->engine->destroy();
                           ^
In file included from /usr/include/aarch64-linux-gnu/NvInfer.h:54:0,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.hpp:40,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:25:
/usr/include/aarch64-linux-gnu/NvInferRuntime.h:1434:25: note: declared here
     TRT_DEPRECATED void destroy() noexcept
                         ^~~~~~~
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:800:27: warning: ‘void nvinfer1::IBuilderConfig::destroy()’ is deprecated [-Wdeprecated-declarations]
     this->config->destroy();
                           ^
In file included from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.hpp:40:0,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:25:
/usr/include/aarch64-linux-gnu/NvInfer.h:7535:25: note: declared here
     TRT_DEPRECATED void destroy() noexcept
                         ^~~~~~~
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:801:28: warning: ‘void nvinfer1::INetworkDefinition::destroy()’ is deprecated [-Wdeprecated-declarations]
     this->network->destroy();
                            ^
In file included from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.hpp:40:0,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:25:
/usr/include/aarch64-linux-gnu/NvInfer.h:5856:25: note: declared here
     TRT_DEPRECATED void destroy() noexcept
                         ^~~~~~~
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:802:28: warning: ‘void nvinfer1::IBuilder::destroy()’ is deprecated [-Wdeprecated-declarations]
     this->builder->destroy();
                            ^
In file included from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.hpp:40:0,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:25:
/usr/include/aarch64-linux-gnu/NvInfer.h:7929:25: note: declared here
     TRT_DEPRECATED void destroy() noexcept
                         ^~~~~~~
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc: In member function ‘void TensorRTEngine::SetOption(trt_opt_t*)’:
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:859:21: warning: ‘void nvinfer1::IBuilder::destroy()’ is deprecated [-Wdeprecated-declarations]
         bd->destroy();
                     ^
In file included from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.hpp:40:0,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:25:
/usr/include/aarch64-linux-gnu/NvInfer.h:7929:25: note: declared here
     TRT_DEPRECATED void destroy() noexcept
                         ^~~~~~~
[ 37%] Building ASM object source/CMakeFiles/tengine-lite-static.dir/device/cpu/op/conv/cortex-a/armv8/sgemm_4x4_deconv_a72.S.o
[ 37%] Building ASM object source/CMakeFiles/tengine-lite-static.dir/device/cpu/op/conv/cortex-a/armv8/tran_inp_4.S.o
[ 37%] Building ASM object source/CMakeFiles/tengine-lite-static.dir/device/cpu/op/conv/cortex-a/armv8/tran_out_4.S.o
[ 37%] Building ASM object source/CMakeFiles/tengine-lite-static.dir/device/cpu/op/conv/cortex-a/armv8/wino_sgemm_1x16.S.o
[ 37%] Building ASM object source/CMakeFiles/tengine-lite-static.dir/device/cpu/op/conv/cortex-a/armv8/wino_sgemm_1x4.S.o
[ 37%] Building ASM object source/CMakeFiles/tengine-lite-static.dir/device/cpu/op/conv/cortex-a/armv8/wino_sgemm_4x16_A72.S.o
[ 38%] Building ASM object source/CMakeFiles/tengine-lite-static.dir/device/cpu/op/conv/cortex-a/armv8/wino_sgemm_4x4_A72.S.o
[ 38%] Building ASM object source/CMakeFiles/tengine-lite-static.dir/device/cpu/op/fc/cortex-a/armv8/sgemv_1x2_a72.S.o
[ 38%] Building ASM object source/CMakeFiles/tengine-lite-static.dir/device/cpu/op/fc/cortex-a/armv8/sgemv_1x8_a72.S.o
source/CMakeFiles/tengine-lite.dir/build.make:2849: recipe for target 'source/CMakeFiles/tengine-lite.dir/device/tensorrt/trt_executor.cc.o' failed
make[2]: *** [source/CMakeFiles/tengine-lite.dir/device/tensorrt/trt_executor.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 38%] Building CXX object source/CMakeFiles/tengine-lite-static.dir/device/tensorrt/trt_device.cc.o
[ 38%] Building CXX object source/CMakeFiles/tengine-lite-static.dir/device/tensorrt/trt_executor.cc.o
CMakeFiles/Makefile2:329: recipe for target 'source/CMakeFiles/tengine-lite.dir/all' failed
make[1]: *** [source/CMakeFiles/tengine-lite.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 38%] Building CXX object source/CMakeFiles/tengine-lite-static.dir/device/tensorrt/trt_graph.cc.o
[ 38%] Building CXX object source/CMakeFiles/tengine-lite-static.dir/device/tensorrt/op/trt_absval.cc.o
In file included from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:26:0:
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_helper.hpp:103:10: error: looser throw specifier for ‘virtual void Logger::log(nvinfer1::ILogger::Severity, const char*)’
     void log(Severity severity, const char* msg) override
          ^~~
In file included from /usr/include/aarch64-linux-gnu/NvInferLegacyDims.h:53:0,
                 from /usr/include/aarch64-linux-gnu/NvInfer.h:53,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.hpp:40,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:25:
/usr/include/aarch64-linux-gnu/NvInferRuntimeCommon.h:1222:18: error:   overriding ‘virtual void nvinfer1::ILogger::log(nvinfer1::ILogger::Severity, const AsciiChar*) noexcept’
     virtual void log(Severity severity, AsciiChar const* msg) noexcept = 0;
                  ^~~
In file included from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.hpp:27:0,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:25:
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc: In constructor ‘TensorRTEngine::TensorRTEngine()’:
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_define.h:27:25: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
 #define TRT_DEVICE_NAME "TensorRT"
                         ^
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:88:29: note: in expansion of macro ‘TRT_DEVICE_NAME’
     this->option.dev_name = TRT_DEVICE_NAME;
                             ^~~~~~~~~~~~~~~
[ 38%] Building CXX object source/CMakeFiles/tengine-lite-static.dir/device/tensorrt/op/trt_addn.cc.o
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc: In member function ‘int TensorRTEngine::PreRun(subgraph*, trt_option*)’:
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:664:86: warning: ‘nvinfer1::ICudaEngine* nvinfer1::IBuilder::buildEngineWithConfig(nvinfer1::INetworkDefinition&, nvinfer1::IBuilderConfig&)’ is deprecated [-Wdeprecated-declarations]
     this->engine = this->builder->buildEngineWithConfig(*this->network, *this->config);
                                                                                      ^
In file included from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.hpp:40:0,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:25:
/usr/include/aarch64-linux-gnu/NvInfer.h:7990:43: note: declared here
     TRT_DEPRECATED nvinfer1::ICudaEngine* buildEngineWithConfig(
                                           ^~~~~~~~~~~~~~~~~~~~~
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc: In member function ‘int TensorRTEngine::PoseRun(subgraph*)’:
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:798:28: warning: ‘void nvinfer1::IExecutionContext::destroy()’ is deprecated [-Wdeprecated-declarations]
     this->context->destroy();
                            ^
In file included from /usr/include/aarch64-linux-gnu/NvInfer.h:54:0,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.hpp:40,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:25:
/usr/include/aarch64-linux-gnu/NvInferRuntime.h:1888:25: note: declared here
     TRT_DEPRECATED void destroy() noexcept
                         ^~~~~~~
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:799:27: warning: ‘void nvinfer1::ICudaEngine::destroy()’ is deprecated [-Wdeprecated-declarations]
     this->engine->destroy();
                           ^
In file included from /usr/include/aarch64-linux-gnu/NvInfer.h:54:0,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.hpp:40,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:25:
/usr/include/aarch64-linux-gnu/NvInferRuntime.h:1434:25: note: declared here
     TRT_DEPRECATED void destroy() noexcept
                         ^~~~~~~
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:800:27: warning: ‘void nvinfer1::IBuilderConfig::destroy()’ is deprecated [-Wdeprecated-declarations]
     this->config->destroy();
                           ^
In file included from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.hpp:40:0,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:25:
/usr/include/aarch64-linux-gnu/NvInfer.h:7535:25: note: declared here
     TRT_DEPRECATED void destroy() noexcept
                         ^~~~~~~
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:801:28: warning: ‘void nvinfer1::INetworkDefinition::destroy()’ is deprecated [-Wdeprecated-declarations]
     this->network->destroy();
                            ^
In file included from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.hpp:40:0,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:25:
/usr/include/aarch64-linux-gnu/NvInfer.h:5856:25: note: declared here
     TRT_DEPRECATED void destroy() noexcept
                         ^~~~~~~
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:802:28: warning: ‘void nvinfer1::IBuilder::destroy()’ is deprecated [-Wdeprecated-declarations]
     this->builder->destroy();
                            ^
In file included from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.hpp:40:0,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:25:
/usr/include/aarch64-linux-gnu/NvInfer.h:7929:25: note: declared here
     TRT_DEPRECATED void destroy() noexcept
                         ^~~~~~~
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc: In member function ‘void TensorRTEngine::SetOption(trt_opt_t*)’:
/home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:859:21: warning: ‘void nvinfer1::IBuilder::destroy()’ is deprecated [-Wdeprecated-declarations]
         bd->destroy();
                     ^
In file included from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.hpp:40:0,
                 from /home/ghimire/Desktop/Tengine/source/device/tensorrt/trt_executor.cc:25:
/usr/include/aarch64-linux-gnu/NvInfer.h:7929:25: note: declared here
     TRT_DEPRECATED void destroy() noexcept
                         ^~~~~~~
[ 38%] Building CXX object source/CMakeFiles/tengine-lite-static.dir/device/tensorrt/op/trt_batchnorm.cc.o
source/CMakeFiles/tengine-lite-static.dir/build.make:2849: recipe for target 'source/CMakeFiles/tengine-lite-static.dir/device/tensorrt/trt_executor.cc.o' failed
make[2]: *** [source/CMakeFiles/tengine-lite-static.dir/device/tensorrt/trt_executor.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:355: recipe for target 'source/CMakeFiles/tengine-lite-static.dir/all' failed
make[1]: *** [source/CMakeFiles/tengine-lite-static.dir/all] Error 2
Makefile:145: recipe for target 'all' failed
make: *** [all] Error 2

Any idea, please?

Deepak

ghimiredhikura avatar Sep 07 '21 08:09 ghimiredhikura

Hello,

You have resolved this issue?

Thank you.

leeyunhome avatar Feb 22 '22 03:02 leeyunhome

+++ b/source/device/tensorrt/trt_helper.hpp @@ -100,7 +100,7 @@ public: Logger(nvinfer1::ILogger::Severity severity = nvinfer1::ILogger::Severity::kINFO) : severity_(severity){}; - void log(Severity severity, const char* msg) override + void log(Severity severity, const char* msg) noexcept override

ringwraith avatar Sep 14 '22 07:09 ringwraith