Compiling tflite-server
-
Hi,
I want to use the tf-lite server sdk to run my own model and write some pre and post process function using the InferenceHelper class.
I'm trying to built tf-lite server from source as it says here on my voxl2 qrb5165 but I keep getting the following compilation errors after I execute the ./build.sh native :./build.sh native -- The C compiler identification is GNU 7.5.0 -- The CXX compiler identification is GNU 7.5.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Configuring done -- Generating done -- Build files have been written to: /home/xtend/voxl-tflite-server-sdk-0.9/build Scanning dependencies of target voxl-tflite-server make[2]: Warning: File '/usr/include/abseil-cpp/absl/base/attributes.h' has modification time 2719498 s in the future [ 75%] Building C object src/CMakeFiles/voxl-tflite-server.dir/resize.c.o [ 75%] Building CXX object src/CMakeFiles/voxl-tflite-server.dir/inference_helper.cpp.o [ 75%] Building CXX object src/CMakeFiles/voxl-tflite-server.dir/main.cpp.o [100%] Linking CXX executable voxl-tflite-server /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `tflite::xnnpack::(anonymous namespace)::Subgraph::VisitTransposeConvNode(xnn_subgraph*, tflite::xnnpack::(anonymous namespace)::Delegate const&, TfLiteContext*, int, TfLiteNode*, TfLiteTensor const*, TfLiteTransposeConvParams const*, std::unordered_set<int, std::hash<int>, std::equal_to<int>, std::allocator<int> > const&, std::vector<unsigned int, std::allocator<unsigned int> > const&)': xnnpack_delegate.cc:(.text+0x14d4): undefined reference to `xnn_define_deconvolution_2d' /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `tflite::xnnpack::(anonymous namespace)::Subgraph::VisitReshapeNode(xnn_subgraph*, tflite::xnnpack::(anonymous namespace)::Delegate const&, TfLiteContext*, int, TfLiteNode*, TfLiteTensor const*, TfLiteReshapeParams const*, std::vector<unsigned int, std::allocator<unsigned int> > const&) [clone .isra.130]': xnnpack_delegate.cc:(.text+0x18b0): undefined reference to `xnn_define_static_reshape' /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `tflite::xnnpack::(anonymous namespace)::Subgraph::VisitReluNode(xnn_subgraph*, tflite::xnnpack::(anonymous namespace)::Delegate const&, TfLiteContext*, int, TfLiteNode*, TfLiteTensor const*, float, float, std::vector<unsigned int, std::allocator<unsigned int> > const&) [clone .isra.59]': xnnpack_delegate.cc:(.text+0x1ba8): undefined reference to `xnn_define_clamp' /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `tflite::xnnpack::(anonymous namespace)::Subgraph::VisitAveragePool2DNode(xnn_subgraph*, tflite::xnnpack::(anonymous namespace)::Delegate const&, TfLiteContext*, int, TfLiteNode*, TfLiteTensor const*, TfLitePoolParams const*, std::vector<unsigned int, std::allocator<unsigned int> > const&) [clone .isra.49]': xnnpack_delegate.cc:(.text+0x1fe8): undefined reference to `xnn_define_average_pooling_2d' xnnpack_delegate.cc:(.text+0x2050): undefined reference to `xnn_define_clamp' /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `tflite::xnnpack::(anonymous namespace)::Subgraph::VisitMaxPool2DNode(xnn_subgraph*, tflite::xnnpack::(anonymous namespace)::Delegate const&, TfLiteContext*, int, TfLiteNode*, TfLiteTensor const*, TfLitePoolParams const*, std::vector<unsigned int, std::allocator<unsigned int> > const&)': xnnpack_delegate.cc:(.text+0x2294): undefined reference to `xnn_define_max_pooling_2d' xnnpack_delegate.cc:(.text+0x2564): undefined reference to `xnn_define_clamp' /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `tflite::xnnpack::(anonymous namespace)::Subgraph::VisitMeanNode(xnn_subgraph*, tflite::xnnpack::(anonymous namespace)::Delegate const&, TfLiteContext*, int, TfLiteNode*, TfLiteTensor const*, TfLiteReducerParams const*, std::vector<unsigned int, std::allocator<unsigned int> > const&)': xnnpack_delegate.cc:(.text+0x2a30): undefined reference to `xnn_define_global_average_pooling_2d' /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `tflite::xnnpack::(anonymous namespace)::Subgraph::VisitResizeBilinearNode(xnn_subgraph*, tflite::xnnpack::(anonymous namespace)::Delegate const&, TfLiteContext*, int, TfLiteNode*, TfLiteTensor const*, TfLiteResizeBilinearParams const*, std::vector<unsigned int, std::allocator<unsigned int> > const&)': xnnpack_delegate.cc:(.text+0x2ecc): undefined reference to `xnn_define_static_resize_bilinear_2d' /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `tflite::xnnpack::(anonymous namespace)::Subgraph::VisitPadNode(xnn_subgraph*, tflite::xnnpack::(anonymous namespace)::Delegate const&, TfLiteContext*, int, TfLiteNode*, TfLiteTensor const*, std::vector<unsigned int, std::allocator<unsigned int> > const&)': xnnpack_delegate.cc:(.text+0x349c): undefined reference to `xnn_define_static_constant_pad' /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `tflite::xnnpack::(anonymous namespace)::Subgraph::VisitMediaPipeDeconvolutionNode(xnn_subgraph*, tflite::xnnpack::(anonymous namespace)::Delegate const&, TfLiteContext*, int, TfLiteNode*, TfLiteTensor const*, TfLiteTransposeConvParams const*, std::unordered_set<int, std::hash<int>, std::equal_to<int>, std::allocator<int> > const&, std::vector<unsigned int, std::allocator<unsigned int> > const&) [clone .isra.254]': xnnpack_delegate.cc:(.text+0x3a04): undefined reference to `xnn_define_deconvolution_2d' /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `tflite::xnnpack::(anonymous namespace)::Subgraph::VisitDepthwiseConv2DNode(xnn_subgraph*, tflite::xnnpack::(anonymous namespace)::Delegate const&, TfLiteContext*, int, TfLiteNode*, TfLiteTensor const*, TfLiteDepthwiseConvParams const*, std::unordered_set<int, std::hash<int>, std::equal_to<int>, std::allocator<int> > const&, std::vector<unsigned int, std::allocator<unsigned int> > const&)': xnnpack_delegate.cc:(.text+0x4150): undefined reference to `xnn_define_depthwise_convolution_2d' /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `tflite::xnnpack::(anonymous namespace)::Subgraph::VisitFullyConnectedNode(xnn_subgraph*, tflite::xnnpack::(anonymous namespace)::Delegate const&, TfLiteContext*, int, TfLiteNode*, TfLiteTensor const*, TfLiteFullyConnectedParams const*, std::unordered_set<int, std::hash<int>, std::equal_to<int>, std::allocator<int> > const&, std::vector<unsigned int, std::allocator<unsigned int> > const&)': xnnpack_delegate.cc:(.text+0x492c): undefined reference to `xnn_define_fully_connected' /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `tflite::xnnpack::(anonymous namespace)::Subgraph::VisitPreluNode(xnn_subgraph*, tflite::xnnpack::(anonymous namespace)::Delegate const&, TfLiteContext*, int, TfLiteNode*, TfLiteTensor const*, std::unordered_set<int, std::hash<int>, std::equal_to<int>, std::allocator<int> > const&, std::vector<unsigned int, std::allocator<unsigned int> > const&) [clone .isra.253]': xnnpack_delegate.cc:(.text+0x4df4): undefined reference to `xnn_define_prelu' /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `tflite::xnnpack::(anonymous namespace)::Subgraph::VisitMediaPipeMaxPoolingNode(xnn_subgraph*, tflite::xnnpack::(anonymous namespace)::Delegate const&, TfLiteContext*, int, TfLiteNode*, TfLiteTensor const*, TfLitePoolParams const*, std::vector<unsigned int, std::allocator<unsigned int> > const&) [clone .isra.66]': xnnpack_delegate.cc:(.text+0x5244): undefined reference to `xnn_define_argmax_pooling_2d' /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `tflite::xnnpack::(anonymous namespace)::Subgraph::VisitMediaPipeUnpoolingNode(xnn_subgraph*, tflite::xnnpack::(anonymous namespace)::Delegate const&, TfLiteContext*, int, TfLiteNode*, TfLiteTensor const*, TfLitePoolParams const*, std::vector<unsigned int, std::allocator<unsigned int> > const&) [clone .isra.67]': xnnpack_delegate.cc:(.text+0x569c): undefined reference to `xnn_define_unpooling_2d' /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `tflite::xnnpack::(anonymous namespace)::Subgraph::VisitConv2DNode(xnn_subgraph*, tflite::xnnpack::(anonymous namespace)::Delegate const&, TfLiteContext*, int, TfLiteNode*, TfLiteTensor const*, TfLiteConvParams const*, std::unordered_set<int, std::hash<int>, std::equal_to<int>, std::allocator<int> > const&, std::vector<unsigned int, std::allocator<unsigned int> > const&)': xnnpack_delegate.cc:(.text+0x5e20): undefined reference to `xnn_define_convolution_2d' /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `tflite::xnnpack::(anonymous namespace)::Subgraph::VisitNode(xnn_subgraph*, tflite::xnnpack::(anonymous namespace)::Delegate const&, TfLiteContext*, TfLiteRegistration*, TfLiteNode*, int, std::unordered_set<int, std::hash<int>, std::equal_to<int>, std::allocator<int> > const&, std::vector<unsigned int, std::allocator<unsigned int> > const&)': xnnpack_delegate.cc:(.text+0x6854): undefined reference to `xnn_define_negate' xnnpack_delegate.cc:(.text+0x6964): undefined reference to `xnn_define_hardswish' xnnpack_delegate.cc:(.text+0x6a74): undefined reference to `xnn_define_bankers_rounding' xnnpack_delegate.cc:(.text+0x6b84): undefined reference to `xnn_define_convert' xnnpack_delegate.cc:(.text+0x6c98): undefined reference to `xnn_define_elu' xnnpack_delegate.cc:(.text+0x6e3c): undefined reference to `xnn_define_add2' xnnpack_delegate.cc:(.text+0x6f90): undefined reference to `xnn_define_squared_difference' xnnpack_delegate.cc:(.text+0x70a0): undefined reference to `xnn_define_ceiling' xnnpack_delegate.cc:(.text+0x71b0): undefined reference to `xnn_define_abs' xnnpack_delegate.cc:(.text+0x7318): undefined reference to `xnn_define_maximum2' xnnpack_delegate.cc:(.text+0x7428): undefined reference to `xnn_define_square_root' xnnpack_delegate.cc:(.text+0x75cc): undefined reference to `xnn_define_multiply2' xnnpack_delegate.cc:(.text+0x76c8): undefined reference to `xnn_define_convert' xnnpack_delegate.cc:(.text+0x7830): undefined reference to `xnn_define_minimum2' xnnpack_delegate.cc:(.text+0x79d4): undefined reference to `xnn_define_subtract' xnnpack_delegate.cc:(.text+0x7ad0): undefined reference to `xnn_define_square' xnnpack_delegate.cc:(.text+0x7be4): undefined reference to `xnn_define_leaky_relu' xnnpack_delegate.cc:(.text+0x7d04): undefined reference to `xnn_define_depth_to_space' xnnpack_delegate.cc:(.text+0x7e18): undefined reference to `xnn_define_sigmoid' xnnpack_delegate.cc:(.text+0x7f28): undefined reference to `xnn_define_floor' xnnpack_delegate.cc:(.text+0x8110): undefined reference to `xnn_define_divide' xnnpack_delegate.cc:(.text+0x8428): undefined reference to `xnn_define_softmax' /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `TfLiteXNNPackDelegateCreate': xnnpack_delegate.cc:(.text+0x8bb4): undefined reference to `xnn_initialize' xnnpack_delegate.cc:(.text+0x8c18): undefined reference to `pthreadpool_destroy' xnnpack_delegate.cc:(.text+0x8c68): undefined reference to `pthreadpool_destroy' xnnpack_delegate.cc:(.text+0x8cbc): undefined reference to `pthreadpool_create' /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `tflite::xnnpack::(anonymous namespace)::SubgraphInvoke(TfLiteContext*, TfLiteNode*)': xnnpack_delegate.cc:(.text+0x8f48): undefined reference to `xnn_setup_runtime' xnnpack_delegate.cc:(.text+0x9018): undefined reference to `xnn_invoke_runtime' /usr/lib64//libtensorflow-lite.a(xnnpack_delegate.cc.o): In function `tflite::xnnpack::(anonymous namespace)::Subgraph::Create(TfLiteContext*, TfLiteDelegateParams const*, tflite::xnnpack::(anonymous namespace)::Delegate const&)': xnnpack_delegate.cc:(.text+0xa7bc): undefined reference to `xnn_create_subgraph' xnnpack_delegate.cc:(.text+0xaf04): undefined reference to `xnn_define_channelwise_quantized_tensor_value' xnnpack_delegate.cc:(.text+0xb0d8): undefined reference to `xnn_delete_subgraph' xnnpack_delegate.cc:(.text+0xb2c8): undefined reference to `xnn_define_quantized_tensor_value' xnnpack_delegate.cc:(.text+0xb2f0): undefined reference to `xnn_define_tensor_value' xnnpack_delegate.cc:(.text+0xb56c): undefined reference to `xnn_delete_subgraph' xnnpack_delegate.cc:(.text+0xb710): undefined reference to `xnn_create_runtime_v2' xnnpack_delegate.cc:(.text+0xb748): undefined reference to `xnn_delete_runtime' xnnpack_delegate.cc:(.text+0xb754): undefined reference to `xnn_delete_runtime' /usr/lib64//libabsl_status.a(status.cc.o): In function `absl::lts_20210324::Status::ToStringSlow[abi:cxx11](absl::lts_20210324::StatusToStringMode) const::{lambda(absl::lts_20210324::string_view, absl::lts_20210324::Cord const&)#1}::operator()(absl::lts_20210324::string_view, absl::lts_20210324::Cord const&) const': status.cc:(.text+0x11c): undefined reference to `absl::lts_20210324::Cord::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >() const' /usr/lib64//libabsl_status.a(status.cc.o): In function `absl::lts_20210324::Status::EqualsSlow(absl::lts_20210324::Status const&, absl::lts_20210324::Status const&)': status.cc:(.text+0x1740): undefined reference to `absl::lts_20210324::Cord::EqualsImpl(absl::lts_20210324::Cord const&, unsigned long) const' /usr/lib64//libabsl_status.a(status.cc.o): In function `absl::lts_20210324::Status::PrepareToModify()': status.cc:(.text+0x1e5c): undefined reference to `absl::lts_20210324::raw_logging_internal::RawLog(absl::lts_20210324::LogSeverity, char const*, int, char const*, ...)' /usr/lib64//libabsl_status.a(status.cc.o): In function `absl::lts_20210324::Status::SetPayload(absl::lts_20210324::string_view, absl::lts_20210324::Cord)': status.cc:(.text+0x2010): undefined reference to `absl::lts_20210324::Cord::InlineRep::ClearSlow()' status.cc:(.text+0x2238): undefined reference to `absl::lts_20210324::Cord::DestroyCordSlow()' status.cc:(.text+0x231c): undefined reference to `absl::lts_20210324::Cord::DestroyCordSlow()' /usr/lib64//libabsl_status.a(status.cc.o): In function `absl::lts_20210324::inlined_vector_internal::Storage<absl::lts_20210324::status_internal::Payload, 1ul, std::allocator<absl::lts_20210324::status_internal::Payload> >::Erase(absl::lts_20210324::status_internal::Payload const*, absl::lts_20210324::status_internal::Payload const*)': status.cc:(.text._ZN4absl12lts_2021032423inlined_vector_internal7StorageINS0_15status_internal7PayloadELm1ESaIS4_EE5EraseEPKS4_S8_[_ZN4absl12lts_2021032423inlined_vector_internal7StorageINS0_15status_internal7PayloadELm1ESaIS4_EE5EraseEPKS4_S8_]+0x168): undefined reference to `absl::lts_20210324::Cord::InlineRep::ClearSlow()' status.cc:(.text._ZN4absl12lts_2021032423inlined_vector_internal7StorageINS0_15status_internal7PayloadELm1ESaIS4_EE5EraseEPKS4_S8_[_ZN4absl12lts_2021032423inlined_vector_internal7StorageINS0_15status_internal7PayloadELm1ESaIS4_EE5EraseEPKS4_S8_]+0x1f4): undefined reference to `absl::lts_20210324::Cord::DestroyCordSlow()' /usr/lib64//libabsl_status.a(status.cc.o): In function `absl::lts_20210324::inlined_vector_internal::Storage<absl::lts_20210324::status_internal::Payload, 1ul, std::allocator<absl::lts_20210324::status_internal::Payload> >::DestroyContents()': status.cc:(.text._ZN4absl12lts_2021032423inlined_vector_internal7StorageINS0_15status_internal7PayloadELm1ESaIS4_EE15DestroyContentsEv[_ZN4absl12lts_2021032423inlined_vector_internal7StorageINS0_15status_internal7PayloadELm1ESaIS4_EE15DestroyContentsEv]+0xa4): undefined reference to `absl::lts_20210324::Cord::DestroyCordSlow()' /usr/lib64//libabsl_status.a(status.cc.o): In function `absl::lts_20210324::status_internal::Payload& absl::lts_20210324::inlined_vector_internal::Storage<absl::lts_20210324::status_internal::Payload, 1ul, std::allocator<absl::lts_20210324::status_internal::Payload> >::EmplaceBackSlow<absl::lts_20210324::status_internal::Payload>(absl::lts_20210324::status_internal::Payload&&)': status.cc:(.text._ZN4absl12lts_2021032423inlined_vector_internal7StorageINS0_15status_internal7PayloadELm1ESaIS4_EE15EmplaceBackSlowIJS4_EEERS4_DpOT_[_ZN4absl12lts_2021032423inlined_vector_internal7StorageINS0_15status_internal7PayloadELm1ESaIS4_EE15EmplaceBackSlowIJS4_EEERS4_DpOT_]+0x1d0): undefined reference to `absl::lts_20210324::Cord::DestroyCordSlow()' /usr/lib64//libabsl_status.a(status.cc.o): In function `absl::lts_20210324::inlined_vector_internal::Storage<absl::lts_20210324::status_internal::Payload, 1ul, std::allocator<absl::lts_20210324::status_internal::Payload> >::InitFrom(absl::lts_20210324::inlined_vector_internal::Storage<absl::lts_20210324::status_internal::Payload, 1ul, std::allocator<absl::lts_20210324::status_internal::Payload> > const&)': status.cc:(.text._ZN4absl12lts_2021032423inlined_vector_internal7StorageINS0_15status_internal7PayloadELm1ESaIS4_EE8InitFromERKS6_[_ZN4absl12lts_2021032423inlined_vector_internal7StorageINS0_15status_internal7PayloadELm1ESaIS4_EE8InitFromERKS6_]+0x1f0): undefined reference to `absl::lts_20210324::Cord::DestroyCordSlow()' /usr/lib64//libabsl_hash.a(hash.cc.o): In function `absl::lts_20210324::hash_internal::HashState::CombineLargeContiguousImpl32(unsigned long, unsigned char const*, unsigned long)': hash.cc:(.text+0x60): undefined reference to `absl::lts_20210324::hash_internal::CityHash32(char const*, unsigned long)' hash.cc:(.text+0xac): undefined reference to `absl::lts_20210324::hash_internal::CityHash32(char const*, unsigned long)' /usr/lib64//libabsl_str_format_internal.a(arg.cc.o): In function `absl::lts_20210324::str_format_internal::FormatConvertImpl(absl::lts_20210324::int128, absl::lts_20210324::str_format_internal::FormatConversionSpecImpl, absl::lts_20210324::str_format_internal::FormatSinkImpl*)': arg.cc:(.text+0x2c68): undefined reference to `absl::lts_20210324::operator%(absl::lts_20210324::uint128, absl::lts_20210324::uint128)' arg.cc:(.text+0x2c88): undefined reference to `absl::lts_20210324::operator/(absl::lts_20210324::uint128, absl::lts_20210324::uint128)' arg.cc:(.text+0x2da0): undefined reference to `absl::lts_20210324::operator%(absl::lts_20210324::uint128, absl::lts_20210324::uint128)' arg.cc:(.text+0x2dc0): undefined reference to `absl::lts_20210324::operator/(absl::lts_20210324::uint128, absl::lts_20210324::uint128)' /usr/lib64//libabsl_str_format_internal.a(arg.cc.o): In function `absl::lts_20210324::str_format_internal::FormatConvertImpl(absl::lts_20210324::uint128, absl::lts_20210324::str_format_internal::FormatConversionSpecImpl, absl::lts_20210324::str_format_internal::FormatSinkImpl*)': arg.cc:(.text+0x30a8): undefined reference to `absl::lts_20210324::operator%(absl::lts_20210324::uint128, absl::lts_20210324::uint128)' arg.cc:(.text+0x30c8): undefined reference to `absl::lts_20210324::operator/(absl::lts_20210324::uint128, absl::lts_20210324::uint128)' arg.cc:(.text+0x3110): undefined reference to `absl::lts_20210324::operator%(absl::lts_20210324::uint128, absl::lts_20210324::uint128)' arg.cc:(.text+0x3130): undefined reference to `absl::lts_20210324::operator/(absl::lts_20210324::uint128, absl::lts_20210324::uint128)' /usr/lib64//libabsl_str_format_internal.a(float_conversion.cc.o): In function `absl::lts_20210324::str_format_internal::ConvertFloatImpl(long double, absl::lts_20210324::str_format_internal::FormatConversionSpecImpl const&, absl::lts_20210324::str_format_internal::FormatSinkImpl*)': float_conversion.cc:(.text+0x5dd8): undefined reference to `absl::lts_20210324::uint128::uint128(long double)' /usr/lib64//libabsl_strings.a(numbers.cc.o): In function `absl::lts_20210324::SimpleAtob(absl::lts_20210324::string_view, bool*)': numbers.cc:(.text+0xa90): undefined reference to `absl::lts_20210324::raw_logging_internal::RawLog(absl::lts_20210324::LogSeverity, char const*, int, char const*, ...)' /usr/lib64//libabsl_strings.a(str_split.cc.o): In function `absl::lts_20210324::ByLength::ByLength(long)': str_split.cc:(.text+0x408): undefined reference to `absl::lts_20210324::raw_logging_internal::RawLog(absl::lts_20210324::LogSeverity, char const*, int, char const*, ...)' /usr/lib64//libabsl_strings_internal.a(escaping.cc.o): In function `absl::lts_20210324::strings_internal::Base64EscapeInternal(unsigned char const*, unsigned long, char*, unsigned long, char const*, bool)': escaping.cc:(.text+0x23c): undefined reference to `absl::lts_20210324::raw_logging_internal::RawLog(absl::lts_20210324::LogSeverity, char const*, int, char const*, ...)' /usr/lib64//libabsl_time.a(duration.cc.o): In function `absl::lts_20210324::time_internal::IDivDuration(bool, absl::lts_20210324::Duration, absl::lts_20210324::Duration, absl::lts_20210324::Duration*)': duration.cc:(.text+0x330): undefined reference to `absl::lts_20210324::operator/(absl::lts_20210324::uint128, absl::lts_20210324::uint128)' duration.cc:(.text+0x79c): undefined reference to `absl::lts_20210324::operator/(absl::lts_20210324::uint128, absl::lts_20210324::uint128)' /usr/lib64//libabsl_time.a(duration.cc.o): In function `absl::lts_20210324::Duration::operator*=(long)': duration.cc:(.text+0xa38): undefined reference to `absl::lts_20210324::kuint128max' duration.cc:(.text+0xa44): undefined reference to `absl::lts_20210324::kuint128max' duration.cc:(.text+0xa4c): undefined reference to `absl::lts_20210324::operator/(absl::lts_20210324::uint128, absl::lts_20210324::uint128)' duration.cc:(.text+0xb04): undefined reference to `absl::lts_20210324::operator/(absl::lts_20210324::uint128, absl::lts_20210324::uint128)' duration.cc:(.text+0xb18): undefined reference to `absl::lts_20210324::kuint128max' /usr/lib64//libabsl_time.a(duration.cc.o): In function `absl::lts_20210324::Duration::operator/=(long)': duration.cc:(.text+0xde0): undefined reference to `absl::lts_20210324::operator/(absl::lts_20210324::uint128, absl::lts_20210324::uint128)' duration.cc:(.text+0xeb8): undefined reference to `absl::lts_20210324::operator/(absl::lts_20210324::uint128, absl::lts_20210324::uint128)' /usr/lib64//libruy_cpuinfo.a(cpuinfo.cc.o): In function `ruy::CpuInfo::~CpuInfo()': cpuinfo.cc:(.text+0x10): undefined reference to `cpuinfo_deinitialize' /usr/lib64//libruy_cpuinfo.a(cpuinfo.cc.o): In function `ruy::CpuInfo::Initialize()': cpuinfo.cc:(.text+0x44): undefined reference to `cpuinfo_initialize' cpuinfo.cc:(.text+0x58): undefined reference to `cpuinfo_get_processors_count' cpuinfo.cc:(.text+0x8c): undefined reference to `cpuinfo_get_processor' cpuinfo.cc:(.text+0xb8): undefined reference to `cpuinfo_get_processor' cpuinfo.cc:(.text+0xcc): undefined reference to `cpuinfo_get_processor' /usr/lib64//libruy_cpuinfo.a(cpuinfo.cc.o): In function `ruy::CpuInfo::NeonDotprod()': cpuinfo.cc:(.text+0x21c): undefined reference to `cpuinfo_isa' cpuinfo.cc:(.text+0x220): undefined reference to `cpuinfo_isa' /usr/lib64//libruy_cpuinfo.a(cpuinfo.cc.o): In function `ruy::CpuInfo::CurrentCpuIsA55ish()': cpuinfo.cc:(.text+0x2c0): undefined reference to `cpuinfo_get_current_uarch_index' cpuinfo.cc:(.text+0x2c4): undefined reference to `cpuinfo_get_uarch' /usr/lib64//libruy_cpuinfo.a(cpuinfo.cc.o): In function `ruy::CpuInfo::CurrentCpuIsX1()': cpuinfo.cc:(.text+0x304): undefined reference to `cpuinfo_get_current_uarch_index' cpuinfo.cc:(.text+0x308): undefined reference to `cpuinfo_get_uarch' /usr/lib64//libruy_thread_pool.a(thread_pool.cc.o): In function `ruy::ThreadPool::CreateThreads(int)': thread_pool.cc:(.text+0x1b4): undefined reference to `ruy::BlockingCounter::Reset(int)' thread_pool.cc:(.text+0x308): undefined reference to `ruy::BlockingCounter::Wait(std::chrono::duration<long, std::ratio<1l, 1000000000l> >)' /usr/lib64//libruy_thread_pool.a(thread_pool.cc.o): In function `ruy::ThreadPool::ExecuteImpl(int, int, ruy::Task*)': thread_pool.cc:(.text+0x3dc): undefined reference to `ruy::BlockingCounter::Reset(int)' thread_pool.cc:(.text+0x494): undefined reference to `ruy::BlockingCounter::Wait(std::chrono::duration<long, std::ratio<1l, 1000000000l> >)' /usr/lib64//libruy_thread_pool.a(thread_pool.cc.o): In function `ruy::Thread::ThreadFunc(ruy::Thread*)': thread_pool.cc:(.text._ZN3ruy6Thread10ThreadFuncEPS0_[_ZN3ruy6Thread10ThreadFuncEPS0_]+0xb4): undefined reference to `ruy::BlockingCounter::DecrementCount()' thread_pool.cc:(.text._ZN3ruy6Thread10ThreadFuncEPS0_[_ZN3ruy6Thread10ThreadFuncEPS0_]+0x1ac): undefined reference to `ruy::BlockingCounter::DecrementCount()' /usr/lib64//libruy_trmul.a(trmul.cc.o): In function `ruy::(anonymous namespace)::TrMulTask::Run()': trmul.cc:(.text+0xdc): undefined reference to `ruy::GetBlockByIndex(ruy::BlockMap const&, int, ruy::SidePair<int>*)' trmul.cc:(.text+0xf0): undefined reference to `ruy::GetBlockMatrixCoords(ruy::BlockMap const&, ruy::SidePair<int> const&, ruy::SidePair<int>*, ruy::SidePair<int>*)' trmul.cc:(.text+0x21c): undefined reference to `ruy::GetBlockMatrixCoords(ruy::Side, ruy::BlockMap const&, int, int*, int*)' /usr/lib64//libruy_trmul.a(trmul.cc.o): In function `ruy::TrMul(ruy::Ctx*, ruy::TrMulParams*)': trmul.cc:(.text+0x5a4): undefined reference to `ruy::MakeBlockMap(int, int, int, int, int, int, int, int, ruy::CpuCacheParams const&, ruy::BlockMap*)' trmul.cc:(.text+0x768): undefined reference to `ruy::IsObviouslyLinearTraversal(int, int, int, int, int, ruy::CpuCacheParams const&)' collect2: error: ld returned 1 exit status src/CMakeFiles/voxl-tflite-server.dir/build.make:146: recipe for target 'src/voxl-tflite-server' failed make[2]: *** [src/voxl-tflite-server] Error 1 CMakeFiles/Makefile2:85: recipe for target 'src/CMakeFiles/voxl-tflite-server.dir/all' failed make[1]: *** [src/CMakeFiles/voxl-tflite-server.dir/all] Error 2 Makefile:129: recipe for target 'all' failed make: *** [all] Error 2
Can you please guide me how will be the best way to proceed?
My model is a simple tf-lite YOLOv5-like arch that was trained on different dataset.
Thanks a lot.
Ido. -
The readme says to use voxl-cross Docker and ./build.sh qrb5165 .
-
Hi Chad, Thanks for the fast reply!
I've also tried form inside the docker - I'm getting the following error:
root@f235ba938a2b:/compile/voxl-tflite-server-sdk-0.9# ./install_build_deps.sh qrb5165 dev using qrb5165 dev debian repo Ign:1 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ InRelease Ign:2 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ Release Get:3 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ Packages [53.3 kB] Fetched 53.3 kB in 2s (33.1 kB/s) Reading package lists... Done installing: libmodal-pipe libmodal-json voxl-opencv qrb5165-tflite Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: libmodal-json:arm64 libmodal-pipe:arm64 qrb5165-tflite:arm64 voxl-opencv:arm64 0 upgraded, 4 newly installed, 0 to remove and 69 not upgraded. Need to get 24.7 MB of archives. After this operation, 0 B of additional disk space will be used. Get:1 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ libmodal-json 0.4.3-202209281920 [43.8 kB] Get:2 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ libmodal-pipe 2.7.2-202302141708 [82.6 kB] Get:3 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ qrb5165-tflite 2.8.0-2-202210071637 [11.0 MB] Get:4 http://voxl-packages.modalai.com ./dists/qrb5165/dev/binary-arm64/ voxl-opencv 4.5.5-1-202210072305 [13.6 MB] Fetched 24.7 MB in 15s (1613 kB/s) debconf: unable to initialize frontend: Dialog debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, <> line 4.) debconf: falling back to frontend: Readline Selecting previously unselected package libmodal-json:arm64. (Reading database ... 30768 files and directories currently installed.) Preparing to unpack .../libmodal-json_0.4.3-202209281920_arm64.deb ... Unpacking libmodal-json:arm64 (0.4.3-202209281920) ... Selecting previously unselected package libmodal-pipe:arm64. Preparing to unpack .../libmodal-pipe_2.7.2-202302141708_arm64.deb ... Unpacking libmodal-pipe:arm64 (2.7.2-202302141708) ... Selecting previously unselected package qrb5165-tflite:arm64. Preparing to unpack .../qrb5165-tflite_2.8.0-2-202210071637_arm64.deb ... Unpacking qrb5165-tflite:arm64 (2.8.0-2-202210071637) ... Selecting previously unselected package voxl-opencv:arm64. Preparing to unpack .../voxl-opencv_4.5.5-1-202210072305_arm64.deb ... Unpacking voxl-opencv:arm64 (4.5.5-1-202210072305) ... Setting up qrb5165-tflite:arm64 (2.8.0-2-202210071637) ... Setting up voxl-opencv:arm64 (4.5.5-1-202210072305) ... Setting up libmodal-json:arm64 (0.4.3-202209281920) ... Setting up libmodal-pipe:arm64 (2.7.2-202302141708) ... Processing triggers for libc-bin (2.27-3ubuntu1.6) ... Done installing dependencies root@f235ba938a2b:/compile/voxl-tflite-server-sdk-0.9# ./build.sh qrb5165 -- Configuring done -- Generating done -- Build files have been written to: /compile/voxl-tflite-server-sdk-0.9/build Consolidate compiler generated dependencies of target voxl-tflite-server [ 25%] Building CXX object src/CMakeFiles/voxl-tflite-server.dir/inference_helper.cpp.o [ 75%] Building CXX object src/CMakeFiles/voxl-tflite-server.dir/main.cpp.o [ 75%] Building C object src/CMakeFiles/voxl-tflite-server.dir/resize.c.o [100%] Linking CXX executable voxl-tflite-server /usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: cannot find -lxnnpack_delegate collect2: error: ld returned 1 exit status src/CMakeFiles/voxl-tflite-server.dir/build.make:128: recipe for target 'src/voxl-tflite-server' failed make[2]: *** [src/voxl-tflite-server] Error 1 CMakeFiles/Makefile2:97: recipe for target 'src/CMakeFiles/voxl-tflite-server.dir/all' failed make[1]: *** [src/CMakeFiles/voxl-tflite-server.dir/all] Error 2 Makefile:135: recipe for target 'all' failed make: *** [all] Error 2
I checked it also on the master branch.. I changed it to 0.9 because my voxl-suite is: 0.9.4.
Thanks!
-
The nightly CI passed, you can see it here: https://gitlab.com/voxl-public/voxl-sdk/services/voxl-tflite-server/-/pipelines/793904449/
It looks like you are not using voxl-cross, you need to be using voxl-cross on your development PC
-
@ido-abergel Another note, if you're building off of sdk-0.9 you'll want to install the build deps for sdk-0.9 not dev.
-
Thanks! I managed to compile it!
I want to use the tflite-server and write a client to it to run my own model.
The model is a bit similar to the YOLOv5 arch. but with some changes in the I/O tensors and the post-process function, I still need to use the camera-server as an input and write a simple pre-process function as well.I've search for some guidance online or a simple example on how to do so step by step but couldn't find anything.
Do you have a simple example? it will very helpful.
Thanks a lot again and for the very fast replies!!
-