microsoft / onnxruntime

ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator
https://onnxruntime.ai
MIT License
14.22k stars 2.87k forks source link

[Build] #15863

Open enggRavigupta opened 1 year ago

enggRavigupta commented 1 year ago

Describe the issue

While building onnxruntime with Armnn support, getting build errors due to a mismatch in the signature of the function AddFullyConnectedLayer.

There is a call AddFullyConnectedLayer in onnxruntime/core/providers/armnn/math/gemm.h, which definition is present in Armnn SDK, armnn/INetwork.cpp, The argument expected is 2 in Armnn but in onnxruntime, it is passed with 4 arguments.

Below is the error: work/onnx_armnn/onnxruntime/onnxruntime/core/providers/armnn/math/gemm.cc:5: /usr/local/include/armnn/INetwork.hpp:383:24: note: candidate: ‘armnn::IConnectableLayer armnn::INetwork::AddFullyConnectedLayer(const armnn::FullyConnectedDescriptor&, const char)’ 383 | IConnectableLayer* AddFullyConnectedLayer(const FullyConnectedDescriptor& fullyConnectedDescriptor, | ^~~~~~ /usr/local/include/armnn/INetwork.hpp:383:24: note: candidate expects 2 arguments, 4 provided

Urgency

Yes, It is blocked to build onnxruntime with Armnn support

Target platform

Jetson Orin

Build script

./build.sh --update --config Release --build --build_wheel --use_cuda --cuda_home /usr/local/cuda --cudnn_home /usr/lib/aarch64-linux-gnu --use_armnn

Error / output

work/onnx_armnn/onnxruntime/onnxruntime/core/providers/armnn/math/gemm.cc:5: /usr/local/include/armnn/INetwork.hpp:383:24: note: candidate: ‘armnn::IConnectableLayer armnn::INetwork::AddFullyConnectedLayer(const armnn::FullyConnectedDescriptor&, const char)’ 383 | IConnectableLayer* AddFullyConnectedLayer(const FullyConnectedDescriptor& fullyConnectedDescriptor, | ^~~~~~ /usr/local/include/armnn/INetwork.hpp:383:24: note: candidate expects 2 arguments, 4 provided

Visual Studio Version

No response

GCC / Compiler Version

No response

enggRavigupta commented 1 year ago

Can you tell which Tags/branch/commit of ArmNN SDK to use for building onnxruntime with armnn. The branch of onnxruntime is main and commit id is 2735e0d031

and to build onnx runtime command is ./build.sh --update --config Release --build --build_wheel --use_cuda --cuda_home /usr/local/cuda --cudnn_home /usr/lib/aarch64-linux-gnu --use_armnn

maxmarsc commented 1 year ago

I have the same issue, and others, when trying to build onnxruntime v1.14.1 for inference only, for aarch64 targets.

I use the aarch64-none-linux-gnu-g++ v11.3.rel1 C++ toolchain, with the following CMake toolchain file :

# targets
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
set(triple aarch64-linux-gnu)

# misc settings
set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")
set(GNU_ROOT "/usr/local/aarch64-none-linux-gnu")
set(CMAKE_SYSROOT "${GNU_ROOT}/aarch64-none-linux-gnu/libc")

# find paths
set(CMAKE_FIND_ROOT_PATH "${GNU_ROOT}")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH)

# compiler settings
set(CMAKE_C_COMPILER "${GNU_ROOT}/bin/aarch64-none-linux-gnu-gcc" CACHE INTERNAL "")
set(CMAKE_CXX_COMPILER "${GNU_ROOT}/bin/aarch64-none-linux-gnu-g++" CACHE INTERNAL "")

set(CMAKE_C_COMPILER_TARGET ${triple})
set(CMAKE_CXX_COMPILER_TARGET ${triple})

set(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN "${GNU_ROOT}/lib/gcc")
set(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN "${GNU_ROOT}/lib/gcc")

# CPU tuning : the RPI 0 2W uses a Cortex a53
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mtune=cortex-a53" CACHE STRING "")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mtune=cortex-a53" CACHE STRING "")

# Qemu emulation setup
set(CMAKE_CROSSCOMPILING_EMULATOR "qemu-aarch64-static;-L;${CMAKE_SYSROOT}" CACHE FILEPATH "Path to the emulator for the target system.")

# Include settings
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES
  ${GNU_ROOT}/aarch64-none-linux-gnu/include/c++/12.2.1
  ${GNU_ROOT}/aarch64-none-linux-gnu/libc/usr/include
  ${GNU_ROOT}/include
  ${GNU_ROOT}/aarch64-none-linux-gnu/include/c++/12.2.1/aarch64-none-linux-gnu
  ${GNU_ROOT}/lib/gcc/aarch64-none-linux-gnu/12.2.1/include
)

set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES
  ${GNU_ROOT}/aarch64-none-linux-gnu/libc/usr/include
)

The build command I use is the following :

./build.sh --arm64 --use_armnn --armnn_home <...> --armnn_libs <...> --acl_home <...> --acl_libs <...> --parallel 0 --skip_tests --disable_exceptions --disable_rtti --cmake_extra_defines USE_OPENMP=ON --cmake_extra_defines ONNX_CUSTOM_PROTOC_EXECUTABLE=<...> --cmake_extra_defines CMAKE_TOOLCHAIN_FILE=myToolchain.cmake

Here are all the errors I get from the compilation, including the one mentioned above :

[build] [ 38%] Building CXX object CMakeFiles/onnxruntime_test_utils.dir/foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/test/util/test_random_seed.cc.o
[build] /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/math/gemm.h:110:53: error: no matching function for call to ‘armnn::INetwork::AddFullyConnectedLayer(armnn::FullyConnectedDescriptor&, armnn::ConstTensor&, armnn::Optional<armnn::ConstTensor>, const char [9])’
[build]   110 |         fc_armnn = myNetwork->AddFullyConnectedLayer(fcDescriptor,
[build]       |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
[build]   111 |                                                      weights,
[build]       |                                                      ~~~~~~~~
[build]   112 |                                                      armnn::Optional<armnn::ConstTensor>(bias),
[build]       |                                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[build]   113 |                                                      "fc_armnn");
[build]       |                                                      ~~~~~~~~~~~
[build] In file included from /foo/bar/build/cmake/armnn/install/include/armnn/ArmNN.hpp:11,
[build]                  from /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/armnn_common.h:9,
[build]                  from /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/math/gemm.cc:5:
[build] /foo/bar/build/cmake/armnn/install/include/armnn/INetwork.hpp:465:24: note: candidate: ‘armnn::IConnectableLayer* armnn::INetwork::AddFullyConnectedLayer(const armnn::FullyConnectedDescriptor&, const char*)’
[build]   465 |     IConnectableLayer* AddFullyConnectedLayer(const FullyConnectedDescriptor& fullyConnectedDescriptor,
[build]       |                        ^~~~~~~~~~~~~~~~~~~~~~
[build] /foo/bar/build/cmake/armnn/install/include/armnn/INetwork.hpp:465:24: note:   candidate expects 2 arguments, 4 provided
[build] In file included from /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/math/gemm.cc:6:
[build] /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/math/gemm.h:115:53: error: no matching function for call to ‘armnn::INetwork::AddFullyConnectedLayer(armnn::FullyConnectedDescriptor&, armnn::ConstTensor&, armnn::EmptyOptional, const char [9])’
[build]   115 |         fc_armnn = myNetwork->AddFullyConnectedLayer(fcDescriptor,
[build]       |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
[build]   116 |                                                      weights,
[build]       |                                                      ~~~~~~~~
[build]   117 |                                                      armnn::EmptyOptional(),
[build]       |                                                      ~~~~~~~~~~~~~~~~~~~~~~~
[build]   118 |                                                      "fc_armnn");
[build]       |                                                      ~~~~~~~~~~~
[build] In file included from /foo/bar/build/cmake/armnn/install/include/armnn/ArmNN.hpp:11,
[build]                  from /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/armnn_common.h:9,
[build]                  from /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/math/gemm.cc:5:
[build] /foo/bar/build/cmake/armnn/install/include/armnn/INetwork.hpp:465:24: note: candidate: ‘armnn::IConnectableLayer* armnn::INetwork::AddFullyConnectedLayer(const armnn::FullyConnectedDescriptor&, const char*)’
[build]   465 |     IConnectableLayer* AddFullyConnectedLayer(const FullyConnectedDescriptor& fullyConnectedDescriptor,
[build]       |                        ^~~~~~~~~~~~~~~~~~~~~~
[build] /foo/bar/build/cmake/armnn/install/include/armnn/INetwork.hpp:465:24: note:   candidate expects 2 arguments, 4 provided
[build] [ 38%] Building CXX object _deps/onnx-build/CMakeFiles/onnx.dir/onnx/defs/nn/old.cc.o
[build] [ 38%] Building CXX object _deps/onnx-build/CMakeFiles/onnx.dir/onnx/defs/object_detection/defs.cc.o
[build] /foo/bar/build/source/onnx/onnx-runtime/build/Debug/_deps/onnx-src/onnx/defs/nn/defs.cc: At global scope:
[build] /foo/bar/build/source/onnx/onnx-runtime/build/Debug/_deps/onnx-src/onnx/defs/nn/defs.cc:1773:20: warning: ‘onnx::Dropout_ver13_doc’ defined but not used [-Wunused-variable]
[build]  1773 | static const char* Dropout_ver13_doc = R"DOC(
[build]       |                    ^~~~~~~~~~~~~~~~~
[build] [ 38%] Building CXX object CMakeFiles/onnx_test_runner_common.dir/foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/test/onnx/testcase_driver.cc.o
[build] /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.cc: In member function ‘onnxruntime::common::Status onnxruntime::armnn_ep::Conv<T>::Compute(onnxruntime::OpKernelContext*) const’:
[build] /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.cc:119:6: warning: suggest explicit braces to avoid ambiguous ‘else’ [-Wdangling-else]
[build]   119 |   if (B != nullptr) LOGS_DEFAULT(VERBOSE) << "B " << B->Shape().ToString().c_str();
[build]       |      ^
[build] In file included from /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.cc:9:
[build] /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.cc:122:66: error: cannot convert ‘std::vector<long int>’ to ‘onnxruntime::TensorShapeVector&’ {aka ‘absl::lts_20220623::InlinedVector<long int, 5>&’}
[build]   122 |   ORT_RETURN_IF_ERROR(conv_attrs_.ComputeKernelShape(W->Shape(), kernel_shape));
[build]       |                                                                  ^~~~~~~~~~~~
[build]       |                                                                  |
[build]       |                                                                  std::vector<long int>
[build] /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/include/onnxruntime/core/common/common.h:226:21: note: in definition of macro ‘ORT_RETURN_IF_ERROR_SESSIONID’
[build]   226 |     auto _status = (expr);                                                                                             \
[build]       |                     ^~~~
[build] /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.cc:122:3: note: in expansion of macro ‘ORT_RETURN_IF_ERROR’
[build]   122 |   ORT_RETURN_IF_ERROR(conv_attrs_.ComputeKernelShape(W->Shape(), kernel_shape));
[build]       |   ^~~~~~~~~~~~~~~~~~~
[build] In file included from /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/cpu/nn/conv.h:7,
[build]                  from /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.h:7,
[build]                  from /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.cc:14:
[build] /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/cpu/nn/conv_attributes.h:76:81: note:   initializing argument 2 of ‘onnxruntime::common::Status onnxruntime::ConvAttributes::ComputeKernelShape(const onnxruntime::TensorShape&, onnxruntime::TensorShapeVector&, bool) const’
[build]    76 |   Status ComputeKernelShape(const TensorShape& weight_shape, TensorShapeVector& kernel_shape, bool weight_channels_last = false) const {
[build]       |                                                              ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
[build] In file included from /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.cc:9:
[build] /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.cc:140:35: error: ‘const struct onnxruntime::ConvAttributes’ has no member named ‘InferOutputShape’; did you mean ‘InferPadsAndOutputShape’?
[build]   140 |   ORT_RETURN_IF_ERROR(conv_attrs_.InferOutputShape(input_shape, kernel_shape, strides, dilations, pads, Y_dims));
[build]       |                                   ^~~~~~~~~~~~~~~~
[build] /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/include/onnxruntime/core/common/common.h:226:21: note: in definition of macro ‘ORT_RETURN_IF_ERROR_SESSIONID’
[build]   226 |     auto _status = (expr);                                                                                             \
[build]       |                     ^~~~
[build] /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.cc:140:3: note: in expansion of macro ‘ORT_RETURN_IF_ERROR’
[build]   140 |   ORT_RETURN_IF_ERROR(conv_attrs_.InferOutputShape(input_shape, kernel_shape, strides, dilations, pads, Y_dims));
[build]       |   ^~~~~~~~~~~~~~~~~~~
[build] /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.cc:161:81: error: could not convert ‘pads’ from ‘onnxruntime::ConvAttributes::ConvPadVector’ {aka ‘absl::lts_20220623::InlinedVector<long int, 10, std::allocator<long int> >’} to ‘std::vector<long int>’
[build]   161 |     armnn::Convolution2dDescriptor convolutionDescriptor = createConvDescriptor(pads, dilations, strides, biasEnabled);
[build]       |                                                                                 ^~~~
[build]       |                                                                                 |
[build]       |                                                                                 onnxruntime::ConvAttributes::ConvPadVector {aka absl::lts_20220623::InlinedVector<long int, 10, std::allocator<long int> >}
[build] /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.cc:185:72: error: no matching function for call to ‘armnn::INetwork::AddDepthwiseConvolution2dLayer(armnn::DepthwiseConvolution2dDescriptor&, armnn::ConstTensor&, armnn::Optional<armnn::ConstTensor>, const char [28])’
[build]   185 |           convolution_armnn = myNetwork->AddDepthwiseConvolution2dLayer(depthwiseDescriptor,
[build]       |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
[build]   186 |                                                                         weights,
[build]       |                                                                         ~~~~~~~~
[build]   187 |                                                                         armnn::Optional<armnn::ConstTensor>(bias),
[build]       |                                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[build]   188 |                                                                         "depthwise_convolution_armnn");
[build]       |                                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[build] In file included from /foo/bar/build/cmake/armnn/install/include/armnn/ArmNN.hpp:11,
[build]                  from /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.h:10,
[build]                  from /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.cc:14:
[build] /foo/bar/build/cmake/armnn/install/include/armnn/INetwork.hpp:405:24: note: candidate: ‘armnn::IConnectableLayer* armnn::INetwork::AddDepthwiseConvolution2dLayer(const armnn::DepthwiseConvolution2dDescriptor&, const char*)’
[build]   405 |     IConnectableLayer* AddDepthwiseConvolution2dLayer(const DepthwiseConvolution2dDescriptor& convolution2dDescriptor,
[build]       |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[build] /foo/bar/build/cmake/armnn/install/include/armnn/INetwork.hpp:405:24: note:   candidate expects 2 arguments, 4 provided
[build] /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.cc:190:72: error: no matching function for call to ‘armnn::INetwork::AddDepthwiseConvolution2dLayer(armnn::DepthwiseConvolution2dDescriptor&, armnn::ConstTensor&, armnn::EmptyOptional, const char [28])’
[build]   190 |           convolution_armnn = myNetwork->AddDepthwiseConvolution2dLayer(depthwiseDescriptor,
[build]       |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
[build]   191 |                                                                         weights,
[build]       |                                                                         ~~~~~~~~
[build]   192 |                                                                         armnn::EmptyOptional(),
[build]       |                                                                         ~~~~~~~~~~~~~~~~~~~~~~~
[build]   193 |                                                                         "depthwise_convolution_armnn");
[build]       |                                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[build] In file included from /foo/bar/build/cmake/armnn/install/include/armnn/ArmNN.hpp:11,
[build]                  from /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.h:10,
[build]                  from /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.cc:14:
[build] /foo/bar/build/cmake/armnn/install/include/armnn/INetwork.hpp:405:24: note: candidate: ‘armnn::IConnectableLayer* armnn::INetwork::AddDepthwiseConvolution2dLayer(const armnn::DepthwiseConvolution2dDescriptor&, const char*)’
[build]   405 |     IConnectableLayer* AddDepthwiseConvolution2dLayer(const DepthwiseConvolution2dDescriptor& convolution2dDescriptor,
[build]       |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[build] /foo/bar/build/cmake/armnn/install/include/armnn/INetwork.hpp:405:24: note:   candidate expects 2 arguments, 4 provided
[build] /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.cc:209:61: error: no matching function for call to ‘armnn::INetwork::AddConvolution2dLayer(armnn::Convolution2dDescriptor&, armnn::ConstTensor&, armnn::Optional<armnn::ConstTensor>, const char [18])’
[build]   209 |         convolution_armnn = myNetwork->AddConvolution2dLayer(convolutionDescriptor,
[build]       |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
[build]   210 |                                                              weights,
[build]       |                                                              ~~~~~~~~
[build]   211 |                                                              armnn::Optional<armnn::ConstTensor>(bias),
[build]       |                                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[build]   212 |                                                              "convolution_armnn");
[build]       |                                                              ~~~~~~~~~~~~~~~~~~~~
[build] In file included from /foo/bar/build/cmake/armnn/install/include/armnn/ArmNN.hpp:11,
[build]                  from /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.h:10,
[build]                  from /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.cc:14:
[build] /foo/bar/build/cmake/armnn/install/include/armnn/INetwork.hpp:384:24: note: candidate: ‘armnn::IConnectableLayer* armnn::INetwork::AddConvolution2dLayer(const armnn::Convolution2dDescriptor&, const char*)’
[build]   384 |     IConnectableLayer* AddConvolution2dLayer(const Convolution2dDescriptor& convolution2dDescriptor,
[build]       |                        ^~~~~~~~~~~~~~~~~~~~~
[build] /foo/bar/build/cmake/armnn/install/include/armnn/INetwork.hpp:384:24: note:   candidate expects 2 arguments, 4 provided
[build] /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.cc:214:61: error: no matching function for call to ‘armnn::INetwork::AddConvolution2dLayer(armnn::Convolution2dDescriptor&, armnn::ConstTensor&, armnn::EmptyOptional, const char [18])’
[build]   214 |         convolution_armnn = myNetwork->AddConvolution2dLayer(convolutionDescriptor,
[build]       |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
[build]   215 |                                                              weights,
[build]       |                                                              ~~~~~~~~
[build]   216 |                                                              armnn::EmptyOptional(),
[build]       |                                                              ~~~~~~~~~~~~~~~~~~~~~~~
[build]   217 |                                                              "convolution_armnn");
[build]       |                                                              ~~~~~~~~~~~~~~~~~~~~
[build] In file included from /foo/bar/build/cmake/armnn/install/include/armnn/ArmNN.hpp:11,
[build]                  from /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.h:10,
[build]                  from /foo/bar/build/source/onnx/onnx-runtime/src/onnx-runtime/onnxruntime/core/providers/armnn/nn/conv.cc:14:
[build] /foo/bar/build/cmake/armnn/install/include/armnn/INetwork.hpp:384:24: note: candidate: ‘armnn::IConnectableLayer* armnn::INetwork::AddConvolution2dLayer(const armnn::Convolution2dDescriptor&, const char*)’
[build]   384 |     IConnectableLayer* AddConvolution2dLayer(const Convolution2dDescriptor& convolution2dDescriptor,
[build]       |                        ^~~~~~~~~~~~~~~~~~~~~
[build] /foo/bar/build/cmake/armnn/install/include/armnn/INetwork.hpp:384:24: note:   candidate expects 2 arguments, 4 provided

I supposed this is due to the fact that ArmNN support is kinda outdated and that we're supposed to use ArmNN and/or ArmCL 20.02, but they are 3 years old now, and rely on libraries that are 8 years old.

I'll try to compile with only ACL 20.02, but as far I know, the Eigen build is broken on v1.14.1 with ACL support