onnx-tensorrt
onnx-tensorrt copied to clipboard
Installation: Compilation Error
I am trying to install onnx-tensorrt but am getting the following compilation error:
~/s/onnx_tensorrt/build 8.0-GA !1 ?2 ❯ cmake .. -DTENSORRT_ROOT=/usr/src/tensorrt && make -j
-- The CXX compiler identification is GNU 7.5.0
-- The C compiler identification is GNU 7.5.0
-- 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
-- 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
-- Found Protobuf: /usr/local/lib/libprotobuf.so;-lpthread (found version "3.19.3")
-- Build type not set - defaulting to Release
Generated: /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx_onnx2trt_onnx-ml.proto
Generated: /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx-operators_onnx2trt_onnx-ml.proto
Generated: /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx-data_onnx2trt_onnx.proto
--
-- ******** Summary ********
-- CMake version : 3.23.1
-- CMake command : /opt/cmake-3.23.1-linux-aarch64/bin/cmake
-- System : Linux
-- C++ compiler : /usr/bin/c++
-- C++ compiler version : 7.5.0
-- CXX flags : -Wall -Wno-deprecated-declarations -Wno-unused-function -Wnon-virtual-dtor
-- Build type : Release
-- Compile definitions : ONNX_NAMESPACE=onnx2trt_onnx
-- CMAKE_PREFIX_PATH :
-- CMAKE_INSTALL_PREFIX : /usr/local
-- CMAKE_MODULE_PATH :
--
-- ONNX version : 1.8.0
-- ONNX NAMESPACE : onnx2trt_onnx
-- ONNX_BUILD_TESTS : OFF
-- ONNX_BUILD_BENCHMARKS : OFF
-- ONNX_USE_LITE_PROTO : OFF
-- ONNXIFI_DUMMY_BACKEND : OFF
-- ONNXIFI_ENABLE_EXT : OFF
--
-- Protobuf compiler : /usr/local/bin/protoc
-- Protobuf includes : /usr/local/include
-- Protobuf libraries : /usr/local/lib/libprotobuf.so;-lpthread
-- BUILD_ONNX_PYTHON : OFF
-- Found TensorRT headers at /usr/include/aarch64-linux-gnu
-- Find TensorRT libs at /usr/lib/aarch64-linux-gnu/libnvinfer.so;/usr/lib/aarch64-linux-gnu/libnvinfer_plugin.so
-- Found TENSORRT: /usr/include/aarch64-linux-gnu
-- Configuring done
-- Generating done
-- Build files have been written to: /home/aisg/src/onnx_tensorrt/build
[ 1%] Running gen_proto.py on onnx/onnx.in.proto
Processing /home/aisg/src/onnx_tensorrt/third_party/onnx_994c618124/onnx/onnx.in.proto
Writing /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx_onnx2trt_onnx-ml.proto
Writing /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx_onnx2trt_onnx-ml.proto3
Writing /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx-ml.pb.h
generating /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx_pb.py
[ 2%] Running C++ protocol buffer compiler on /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx_onnx2trt_onnx-ml.proto
[ 2%] Built target gen_onnx_proto
[ 4%] Running gen_proto.py on onnx/onnx-operators.in.proto
[ 4%] Running gen_proto.py on onnx/onnx-data.in.proto
Processing /home/aisg/src/onnx_tensorrt/third_party/onnx_994c618124/onnx/onnx-data.in.proto
Processing /home/aisg/src/onnx_tensorrt/third_party/onnx_994c618124/onnx/onnx-operators.in.proto
Writing /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx-data_onnx2trt_onnx.proto
Writing /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx-operators_onnx2trt_onnx-ml.proto
Writing /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx-data_onnx2trt_onnx.proto3
Writing /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx-data.pb.h
Writing /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx-operators_onnx2trt_onnx-ml.proto3
generating /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx_data_pb.py
Writing /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx-operators-ml.pb.h
generating /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx_operators_pb.py
[ 5%] Running C++ protocol buffer compiler on /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx-data_onnx2trt_onnx.proto
[ 7%] Running C++ protocol buffer compiler on /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx-operators_onnx2trt_onnx-ml.proto
[ 8%] Building CXX object third_party/onnx/CMakeFiles/onnx_proto.dir/onnx/onnx_onnx2trt_onnx-ml.pb.cc.o
[ 9%] Building CXX object third_party/onnx/CMakeFiles/onnx_proto.dir/onnx/onnx-data_onnx2trt_onnx.pb.cc.o
[ 10%] Building CXX object third_party/onnx/CMakeFiles/onnx_proto.dir/onnx/onnx-operators_onnx2trt_onnx-ml.pb.cc.o
[ 11%] Linking CXX static library libonnx_proto.a
[ 14%] Built target onnx_proto
[ 16%] Building CXX object CMakeFiles/nvonnxparser.dir/ModelImporter.cpp.o
[ 16%] Building CXX object CMakeFiles/nvonnxparser.dir/NvOnnxParser.cpp.o
[ 17%] Building CXX object CMakeFiles/nvonnxparser.dir/builtin_op_importers.cpp.o
[ 18%] Building CXX object CMakeFiles/nvonnxparser.dir/ShapedWeights.cpp.o
[ 20%] Building CXX object CMakeFiles/nvonnxparser.dir/onnx2trt_utils.cpp.o
[ 21%] Building CXX object CMakeFiles/nvonnxparser.dir/LoopHelpers.cpp.o
[ 22%] Building CXX object CMakeFiles/nvonnxparser.dir/onnxErrorRecorder.cpp.o
[ 23%] Building CXX object CMakeFiles/nvonnxparser.dir/RNNHelpers.cpp.o
[ 27%] Building CXX object CMakeFiles/nvonnxparser.dir/OnnxAttrs.cpp.o
[ 28%] Building CXX object CMakeFiles/nvonnxparser_static.dir/onnxErrorRecorder.cpp.o
[ 24%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/common/assertions.cc.o
[ 25%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/common/model_helpers.cc.o
[ 30%] Building CXX object CMakeFiles/nvonnxparser_static.dir/ShapedWeights.cpp.o
[ 30%] Building CXX object CMakeFiles/nvonnxparser_static.dir/OnnxAttrs.cpp.o
[ 31%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/checker.cc.o
[ 32%] Building CXX object CMakeFiles/nvonnxparser_static.dir/NvOnnxParser.cpp.o
[ 34%] Building CXX object CMakeFiles/nvonnxparser.dir/ShapeTensor.cpp.o
[ 35%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/common/ir_pb_converter.cc.o
[ 36%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/data_type_utils.cc.o
[ 37%] Building CXX object CMakeFiles/nvonnxparser_static.dir/ModelImporter.cpp.o
[ 38%] Building CXX object CMakeFiles/nvonnxparser_static.dir/RNNHelpers.cpp.o
[ 40%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/common/interned_strings.cc.o
[ 41%] Building CXX object CMakeFiles/nvonnxparser_static.dir/ShapeTensor.cpp.o
[ 42%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/math/defs.cc.o
[ 43%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/common/status.cc.o
[ 50%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/attr_proto_util.cc.o
[ 50%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/controlflow/old.cc.o
[ 50%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/controlflow/defs.cc.o
[ 50%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/schema.cc.o
[ 50%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/generator/old.cc.o
[ 50%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/generator/defs.cc.o
[ 54%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/logical/old.cc.o
[ 54%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/nn/old.cc.o
[ 54%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/shape_inference/implementation.cc.o
[ 55%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/reduction/old.cc.o
[ 56%] Building CXX object CMakeFiles/nvonnxparser_static.dir/LoopHelpers.cpp.o
[ 57%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/logical/defs.cc.o
[ 58%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/math/old.cc.o
[ 60%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/optimizer/optimize.cc.o
[ 61%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/version_converter/convert.cc.o
[ 63%] Building CXX object CMakeFiles/nvonnxparser_static.dir/builtin_op_importers.cpp.o
[ 64%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/tensor/old.cc.o
[ 65%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/object_detection/defs.cc.o
[ 69%] Building CXX object CMakeFiles/nvonnxparser_static.dir/onnx2trt_utils.cpp.o
[ 63%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/nn/defs.cc.o
[ 69%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/optimizer/pass_manager.cc.o
[ 69%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/tensor_util.cc.o
[ 82%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/optimizer/pass_registry.cc.o
[ 82%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/rnn/old.cc.o
[ 82%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/function.cc.o
[ 82%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/tensor/utils.cc.o
[ 82%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/sequence/defs.cc.o
[ 82%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/reduction/defs.cc.o
[ 82%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/quantization/old.cc.o
[ 82%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/traditionalml/old.cc.o
[ 82%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/tensor/defs.cc.o
[ 83%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/quantization/defs.cc.o
[ 84%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/optimizer/pass.cc.o
[ 89%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/traditionalml/defs.cc.o
[ 85%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/version_converter/helper.cc.o
[ 87%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/tensor_proto_util.cc.o
[ 89%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/training/defs.cc.o
[ 89%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/object_detection/old.cc.o
[ 89%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/onnxifi_utils.cc.o
[ 90%] Building CXX object third_party/onnx/CMakeFiles/onnx.dir/onnx/defs/rnn/defs.cc.o
In file included from /home/aisg/src/onnx_tensorrt/third_party/onnx/onnx/defs/shape_inference.h:4:0,
from /home/aisg/src/onnx_tensorrt/third_party/onnx/onnx/defs/schema.h:24,
from /home/aisg/src/onnx_tensorrt/third_party/onnx/onnx/defs/tensor/utils.h:6,
from /home/aisg/src/onnx_tensorrt/third_party/onnx/onnx/defs/tensor/utils.cc:4:
/home/aisg/src/onnx_tensorrt/third_party/onnx/onnx/proto_utils.h: In function ‘bool onnx2trt_onnx::ParseProtoFromBytes(Proto*, const char*, size_t)’:
/home/aisg/src/onnx_tensorrt/third_party/onnx/onnx/proto_utils.h:34:66: error: no matching function for call to ‘google::protobuf::io::CodedInputStream::SetTotalBytesLimit(long long int, long long int)’
coded_stream.SetTotalBytesLimit((2048LL << 20) - 1, 512LL << 20);
^
In file included from /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx_onnx2trt_onnx-ml.pb.h:23:0,
from /home/aisg/src/onnx_tensorrt/build/third_party/onnx/onnx/onnx-ml.pb.h:2,
from /home/aisg/src/onnx_tensorrt/third_party/onnx/onnx/onnx_pb.h:50,
from /home/aisg/src/onnx_tensorrt/third_party/onnx/onnx/defs/data_type_utils.h:11,
from /home/aisg/src/onnx_tensorrt/third_party/onnx/onnx/defs/schema.h:21,
from /home/aisg/src/onnx_tensorrt/third_party/onnx/onnx/defs/tensor/utils.h:6,
from /home/aisg/src/onnx_tensorrt/third_party/onnx/onnx/defs/tensor/utils.cc:4:
/usr/local/include/google/protobuf/io/coded_stream.h:406:8: note: candidate: void google::protobuf::io::CodedInputStream::SetTotalBytesLimit(int)
void SetTotalBytesLimit(int total_bytes_limit);
^~~~~~~~~~~~~~~~~~
/usr/local/include/google/protobuf/io/coded_stream.h:406:8: note: candidate expects 1 argument, 2 provided
In file included from /home/aisg/src/onnx_tensorrt/third_party/onnx/onnx/defs/shape_inference.h:4:0,
from /home/aisg/src/onnx_tensorrt/third_party/onnx/onnx/defs/schema.h:24,
from /home/aisg/src/onnx_tensorrt/third_party/onnx/onnx/defs/logical/old.cc:4:
/home/aisg/src/onnx_tensorrt/third_party/onnx/onnx/proto_utils.h: In function ‘bool onnx2trt_onnx::ParseProtoFromBytes(Proto*, const char*, size_t)’:
/home/aisg/src/onnx_tensorrt/third_party/onnx/onnx/proto_utils.h:34:66: error: no matching function for call to ‘google::protobuf::io::CodedInputStream::SetTotalBytesLimit(long long int, long long int)’
coded_stream.SetTotalBytesLimit((2048LL << 20) - 1, 512LL << 20);
[ lots of (protobuf and other) errors truncated ]
The make summary claims to find protobuf but it is not finding the functions to continue.
I am installing this on a Nvidia Jetson AGX with JetPack 4.6, TensorRT 8.0.1 and protobuf 3.19.3.
(I have checked out the older 8.0-GA branch for my TensorRT version)
[ update ] FWIW, I tried building from two different systems: Nvidia Jetson NX and Jetson AGX, both with JetPack 4.6 and TensorRT 8.0.1, protobuf 3.19.3, and both give me the same errors.
Would appreciate any solutions/tips on how to rectify this.
I believe the root cause is that the ONNX submodule does not support protobuf >= 3.11. Can you try installing a protobuf version < 3.11?
Thanks for the tip: I had to downgrade Google's protobuf to 3.11 in order to get it working. Perhaps this could be a FAQ entry to help future developers out. The required mix of TensorRT, Onnx and Protobuf versions are not obvious.