OnnxStream
OnnxStream copied to clipboard
Error building the Stable Diffusion example: cmake
Everything works fine until the cmake starts failing: cmake --build . --config Release
cmake -DMAX_SPEED=ON -DXNNPACK_DIR=<DIRECTORY_WHERE_XNNPACK_WAS_CLONED> ..
cmake --build . --config Release
I'm using: Linux ubuntu 6.1.0-1023-rockchip https://github.com/vitoplantamura/OnnxStream/issues/23-Ubuntu SMP Wed Aug 14 23:55:18 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux
gcc version 13.2.0 (Ubuntu 13.2.0-23ubuntu4)
Device: Orange PI 5B 16GB Model
Updated gcc gcc (Ubuntu 14-20240412-0ubuntu1) 14.0.1 20240412 (experimental) [master r14-9935-g67e1433a94f]
Still the same errors.
The error message(s):
$ cmake --build . --config Release
[ 33%] Building CXX object CMakeFiles/sd.dir/onnxstream.cpp.o
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp: In destructor ‘onnxstream::XnnPack::~XnnPack()’:
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:520:21: warning: ‘throw’ will always call ‘terminate’ [-Wterminate]
520 | throw std::runtime_error("failed to delete operator");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:520:21: note: in C++11 destructors default to ‘noexcept’
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp: In member function ‘std::pair<std::vector<long unsigned int>, std::vector<T, onnxstream::Mallocator<T> > > onnxstream::XnnPack::softmax(std::vector<long unsigned int>&, T*, T*, Qu8SoftmaxData*’:
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:1806:47: error: too few arguments to function ‘xnn_status xnn_create_softmax_nc_qu8(size_t, size_t, size_t, float, uint8_t, float, uint32_t, xnn_operator**)’
1806 | status = xnn_create_softmax_nc_qu8(
| ~~~~~~~~~~~~~~~~~~~~~~~~~^
1807 | qu8_data->input_scale,
| ~~~~~~~~~~~~~~~~~~~~~~
1808 | qu8_data->output_zero_point,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1809 | qu8_data->output_scale,
| ~~~~~~~~~~~~~~~~~~~~~~~
1810 | 0 /* flags */, &softmax_op);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:22:
/home/ubuntu/AI/XNNPACK/include/xnnpack.h:4972:17: note: declared here
4972 | enum xnn_status xnn_create_softmax_nc_qu8(
| ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/bits/stl_algobase.h:64,
from /usr/include/c++/13/vector:62,
from /home/ubuntu/AI/OnnxStream/src/onnxstream.h:4,
from /home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:1:
/usr/include/c++/13/bits/stl_pair.h: In instantiation of ‘constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = float&; _T2 = float&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = float; typename decay<_Tp>::type = float; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = float; typename decay<_Tp2>::type = float]’:
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:3005:30: required from here
/usr/include/c++/13/bits/stl_pair.h:922:5: note: parameter passing for argument of type ‘std::pair<float, float>’ when C++17 is enabled changed to match C++14 in GCC 10.1
922 | make_pair(_T1&& __x, _T2&& __y)
| ^~~~~~~~~
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp: In instantiation of ‘std::pair<std::vector<long unsigned int>, std::vector<T, onnxstream::Mallocator<T> > > onnxstream::XnnPack::sigmoid(std::vector<long unsigned int>&, onnxstream::tensor_vector<T>&) [with T = float; onnxstream::tensor_vector<T> = std::vector<float, onnxstream::Mallocator<float> >]’:
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:4100:49: required from here
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:1137:41: error: invalid conversion from ‘xnn_status (*)(size_t, size_t, size_t, uint32_t, xnn_operator**)’ {aka ‘xnn_status (*)(long unsigned int, long unsigned int, long unsigned int, unsigned int, xnn_operator**)’} to ‘xnn_status (*)(uint32_t, xnn_operator**)’ {aka ‘xnn_status (*)(unsigned int, xnn_operator**)’} [-fpermissive]
1137 | xnn_create_sigmoid_nc_xxx = &xnn_create_sigmoid_nc_f32;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| xnn_status (*)(size_t, size_t, size_t, uint32_t, xnn_operator**) {aka xnn_status (*)(long unsigned int, long unsigned int, long unsigned int, unsigned int, xnn_operator**)}
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:1138:42: error: invalid conversion from ‘xnn_status (*)(xnn_operator_t, size_t, pthreadpool_t)’ {aka ‘xnn_status (*)(xnn_operator*, long unsigned int, pthreadpool*)’} to ‘xnn_status (*)(xnn_operator_t, size_t, size_t, size_t, size_t, pthreadpool_t)’ {aka ‘xnn_status (*)(xnn_operator*, long unsigned int, long unsigned int, long unsigned int, long unsigned int, pthreadpool*)’} [-fpermissive]
1138 | xnn_reshape_sigmoid_nc_xxx = &xnn_reshape_sigmoid_nc_f32;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| xnn_status (*)(xnn_operator_t, size_t, pthreadpool_t) {aka xnn_status (*)(xnn_operator*, long unsigned int, pthreadpool*)}
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp: In instantiation of ‘std::pair<std::vector<long unsigned int>, std::vector<T, onnxstream::Mallocator<T> > > onnxstream::XnnPack::sigmoid(std::vector<long unsigned int>&, onnxstream::tensor_vector<T>&) [with T = short unsigned int; onnxstream::tensor_vector<T> = std::vector<short unsigned int, onnxstream::Mallocator<short unsigned int> >]’:
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:4113:49: required from here
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:1143:41: error: invalid conversion from ‘xnn_status (*)(size_t, size_t, size_t, uint32_t, xnn_operator**)’ {aka ‘xnn_status (*)(long unsigned int, long unsigned int, long unsigned int, unsigned int, xnn_operator**)’} to ‘xnn_status (*)(uint32_t, xnn_operator**)’ {aka ‘xnn_status (*)(unsigned int, xnn_operator**)’} [-fpermissive]
1143 | xnn_create_sigmoid_nc_xxx = &xnn_create_sigmoid_nc_f16;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| xnn_status (*)(size_t, size_t, size_t, uint32_t, xnn_operator**) {aka xnn_status (*)(long unsigned int, long unsigned int, long unsigned int, unsigned int, xnn_operator**)}
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:1144:42: error: invalid conversion from ‘xnn_status (*)(xnn_operator_t, size_t, pthreadpool_t)’ {aka ‘xnn_status (*)(xnn_operator*, long unsigned int, pthreadpool*)’} to ‘xnn_status (*)(xnn_operator_t, size_t, size_t, size_t, size_t, pthreadpool_t)’ {aka ‘xnn_status (*)(xnn_operator*, long unsigned int, long unsigned int, long unsigned int, long unsigned int, pthreadpool*)’} [-fpermissive]
1144 | xnn_reshape_sigmoid_nc_xxx = &xnn_reshape_sigmoid_nc_f16;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| xnn_status (*)(xnn_operator_t, size_t, pthreadpool_t) {aka xnn_status (*)(xnn_operator*, long unsigned int, pthreadpool*)}
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp: In instantiation of ‘std::pair<std::vector<long unsigned int>, std::vector<T, onnxstream::Mallocator<T> > > onnxstream::XnnPack::convolution_nhwc(std::vector<long unsigned int>&, onnxstream::tensor_vector<T>&, std::vector<long unsigned int>&, onnxstream::tensor_vector<T>&, std::vector<long unsigned int>&, U*, size_t, std::vector<int>&, std::vector<int>&, std::vector<int>&, std::vector<int>&, int, Qu8ConvData*) [with T = float; U = float; onnxstream::tensor_vector<T> = std::vector<float, onnxstream::Mallocator<float> >; size_t = long unsigned int]’:
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:4256:72: required from here
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:1257:50: error: invalid conversion from ‘xnn_status (*)(xnn_operator_t, size_t, size_t, size_t, size_t*, size_t*, pthreadpool_t)’ {aka ‘xnn_status (*)(xnn_operator*, long unsigned int, long unsigned int, long unsigned int, long unsigned int*, long unsigned int*, pthreadpool*)’} to ‘xnn_status (*)(xnn_operator_t, size_t, size_t, size_t, size_t*, size_t*, size_t*, size_t*, pthreadpool_t)’ {aka ‘xnn_status (*)(xnn_operator*, long unsigned int, long unsigned int, long unsigned int, long unsigned int*, long unsigned int*, long unsigned int*, long unsigned int*, pthreadpool*)’} [-fpermissive]
1257 | xnn_reshape_convolution2d_nhwc_xxx = &xnn_reshape_convolution2d_nhwc_f32;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| xnn_status (*)(xnn_operator_t, size_t, size_t, size_t, size_t*, size_t*, pthreadpool_t) {aka xnn_status (*)(xnn_operator*, long unsigned int, long unsigned int, long unsigned int, long unsigned int*, long unsigned int*, pthreadpool*)}
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:1258:48: error: invalid conversion from ‘xnn_status (*)(xnn_operator_t, const float*, float*)’ {aka ‘xnn_status (*)(xnn_operator*, const float*, float*)’} to ‘xnn_status (*)(xnn_operator_t, void*, const xnn_ptr_type*, xnn_ptr_type*)’ {aka ‘xnn_status (*)(xnn_operator*, void*, const float*, float*)’} [-fpermissive]
1258 | xnn_setup_convolution2d_nhwc_xxx = &xnn_setup_convolution2d_nhwc_f32;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| xnn_status (*)(xnn_operator_t, const float*, float*) {aka xnn_status (*)(xnn_operator*, const float*, float*)}
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp: In instantiation of ‘std::pair<std::vector<long unsigned int>, std::vector<T, onnxstream::Mallocator<T> > > onnxstream::XnnPack::convolution_nhwc(std::vector<long unsigned int>&, onnxstream::tensor_vector<T>&, std::vector<long unsigned int>&, onnxstream::tensor_vector<T>&, std::vector<long unsigned int>&, U*, size_t, std::vector<int>&, std::vector<int>&, std::vector<int>&, std::vector<int>&, int, Qu8ConvData*) [with T = short unsigned int; U = short unsigned int; onnxstream::tensor_vector<T> = std::vector<short unsigned int, onnxstream::Mallocator<short unsigned int> >; size_t = long unsigned int]’:
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:4276:78: required from here
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:1263:50: error: invalid conversion from ‘xnn_status (*)(xnn_operator_t, size_t, size_t, size_t, size_t*, size_t*, pthreadpool_t)’ {aka ‘xnn_status (*)(xnn_operator*, long unsigned int, long unsigned int, long unsigned int, long unsigned int*, long unsigned int*, pthreadpool*)’} to ‘xnn_status (*)(xnn_operator_t, size_t, size_t, size_t, size_t*, size_t*, size_t*, size_t*, pthreadpool_t)’ {aka ‘xnn_status (*)(xnn_operator*, long unsigned int, long unsigned int, long unsigned int, long unsigned int*, long unsigned int*, long unsigned int*, long unsigned int*, pthreadpool*)’} [-fpermissive]
1263 | xnn_reshape_convolution2d_nhwc_xxx = &xnn_reshape_convolution2d_nhwc_f16;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| xnn_status (*)(xnn_operator_t, size_t, size_t, size_t, size_t*, size_t*, pthreadpool_t) {aka xnn_status (*)(xnn_operator*, long unsigned int, long unsigned int, long unsigned int, long unsigned int*, long unsigned int*, pthreadpool*)}
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:1264:48: error: invalid conversion from ‘xnn_status (*)(xnn_operator_t, const void*, void*)’ {aka ‘xnn_status (*)(xnn_operator*, const void*, void*)’} to ‘xnn_status (*)(xnn_operator_t, void*, const xnn_ptr_type*, xnn_ptr_type*)’ {aka ‘xnn_status (*)(xnn_operator*, void*, const void*, void*)’} [-fpermissive]
1264 | xnn_setup_convolution2d_nhwc_xxx = &xnn_setup_convolution2d_nhwc_f16;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| xnn_status (*)(xnn_operator_t, const void*, void*) {aka xnn_status (*)(xnn_operator*, const void*, void*)}
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp: In instantiation of ‘std::pair<std::vector<long unsigned int>, std::vector<T, onnxstream::Mallocator<T> > > onnxstream::XnnPack::convolution_nhwc(std::vector<long unsigned int>&, onnxstream::tensor_vector<T>&, std::vector<long unsigned int>&, onnxstream::tensor_vector<T>&, std::vector<long unsigned int>&, U*, size_t, std::vector<int>&, std::vector<int>&, std::vector<int>&, std::vector<int>&, int, Qu8ConvData*) [with T = unsigned char; U = int; onnxstream::tensor_vector<T> = std::vector<unsigned char, onnxstream::Mallocator<unsigned char> >; size_t = long unsigned int]’:
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:4329:76: required from here
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:1269:50: error: invalid conversion from ‘xnn_status (*)(xnn_operator_t, size_t, size_t, size_t, size_t*, size_t*, pthreadpool_t)’ {aka ‘xnn_status (*)(xnn_operator*, long unsigned int, long unsigned int, long unsigned int, long unsigned int*, long unsigned int*, pthreadpool*)’} to ‘xnn_status (*)(xnn_operator_t, size_t, size_t, size_t, size_t*, size_t*, size_t*, size_t*, pthreadpool_t)’ {aka ‘xnn_status (*)(xnn_operator*, long unsigned int, long unsigned int, long unsigned int, long unsigned int*, long unsigned int*, long unsigned int*, long unsigned int*, pthreadpool*)’} [-fpermissive]
1269 | xnn_reshape_convolution2d_nhwc_xxx = &xnn_reshape_convolution2d_nhwc_qu8;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| xnn_status (*)(xnn_operator_t, size_t, size_t, size_t, size_t*, size_t*, pthreadpool_t) {aka xnn_status (*)(xnn_operator*, long unsigned int, long unsigned int, long unsigned int, long unsigned int*, long unsigned int*, pthreadpool*)}
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:1270:48: error: invalid conversion from ‘xnn_status (*)(xnn_operator_t, const uint8_t*, uint8_t*)’ {aka ‘xnn_status (*)(xnn_operator*, const unsigned char*, unsigned char*)’} to ‘xnn_status (*)(xnn_operator_t, void*, const xnn_ptr_type*, xnn_ptr_type*)’ {aka ‘xnn_status (*)(xnn_operator*, void*, const unsigned char*, unsigned char*)’} [-fpermissive]
1270 | xnn_setup_convolution2d_nhwc_xxx = &xnn_setup_convolution2d_nhwc_qu8;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| xnn_status (*)(xnn_operator_t, const uint8_t*, uint8_t*) {aka xnn_status (*)(xnn_operator*, const unsigned char*, unsigned char*)}
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp: In instantiation of ‘std::pair<std::vector<long unsigned int>, std::vector<T, onnxstream::Mallocator<T> > > onnxstream::XnnPack::softmax(std::vector<long unsigned int>&, T*, T*, Qu8SoftmaxData*) [with T = float]’:
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:5581:53: required from here
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:1776:41: error: invalid conversion from ‘xnn_status (*)(size_t, size_t, size_t, uint32_t, xnn_operator**)’ {aka ‘xnn_status (*)(long unsigned int, long unsigned int, long unsigned int, unsigned int, xnn_operator**)’} to ‘xnn_status (*)(uint32_t, xnn_operator**)’ {aka ‘xnn_status (*)(unsigned int, xnn_operator**)’} [-fpermissive]
1776 | xnn_create_softmax_nc_xxx = &xnn_create_softmax_nc_f32;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| xnn_status (*)(size_t, size_t, size_t, uint32_t, xnn_operator**) {aka xnn_status (*)(long unsigned int, long unsigned int, long unsigned int, unsigned int, xnn_operator**)}
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:1777:42: error: invalid conversion from ‘xnn_status (*)(xnn_operator_t, size_t, pthreadpool_t)’ {aka ‘xnn_status (*)(xnn_operator*, long unsigned int, pthreadpool*)’} to ‘xnn_status (*)(xnn_operator_t, size_t, size_t, size_t, size_t, pthreadpool_t)’ {aka ‘xnn_status (*)(xnn_operator*, long unsigned int, long unsigned int, long unsigned int, long unsigned int, pthreadpool*)’} [-fpermissive]
1777 | xnn_reshape_softmax_nc_xxx = &xnn_reshape_softmax_nc_f32;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| xnn_status (*)(xnn_operator_t, size_t, pthreadpool_t) {aka xnn_status (*)(xnn_operator*, long unsigned int, pthreadpool*)}
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp: In instantiation of ‘std::pair<std::vector<long unsigned int>, std::vector<T, onnxstream::Mallocator<T> > > onnxstream::XnnPack::softmax(std::vector<long unsigned int>&, T*, T*, Qu8SoftmaxData*) [with T = short unsigned int]’:
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:5594:53: required from here
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:1782:41: error: invalid conversion from ‘xnn_status (*)(size_t, size_t, size_t, uint32_t, xnn_operator**)’ {aka ‘xnn_status (*)(long unsigned int, long unsigned int, long unsigned int, unsigned int, xnn_operator**)’} to ‘xnn_status (*)(uint32_t, xnn_operator**)’ {aka ‘xnn_status (*)(unsigned int, xnn_operator**)’} [-fpermissive]
1782 | xnn_create_softmax_nc_xxx = &xnn_create_softmax_nc_f16;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| xnn_status (*)(size_t, size_t, size_t, uint32_t, xnn_operator**) {aka xnn_status (*)(long unsigned int, long unsigned int, long unsigned int, unsigned int, xnn_operator**)}
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:1783:42: error: invalid conversion from ‘xnn_status (*)(xnn_operator_t, size_t, pthreadpool_t)’ {aka ‘xnn_status (*)(xnn_operator*, long unsigned int, pthreadpool*)’} to ‘xnn_status (*)(xnn_operator_t, size_t, size_t, size_t, size_t, pthreadpool_t)’ {aka ‘xnn_status (*)(xnn_operator*, long unsigned int, long unsigned int, long unsigned int, long unsigned int, pthreadpool*)’} [-fpermissive]
1783 | xnn_reshape_softmax_nc_xxx = &xnn_reshape_softmax_nc_f16;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| xnn_status (*)(xnn_operator_t, size_t, pthreadpool_t) {aka xnn_status (*)(xnn_operator*, long unsigned int, pthreadpool*)}
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp: In instantiation of ‘std::pair<std::vector<long unsigned int>, std::vector<T, onnxstream::Mallocator<T> > > onnxstream::XnnPack::softmax(std::vector<long unsigned int>&, T*, T*, Qu8SoftmaxData*) [with T = unsigned char]’:
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:5613:62: required from here
/home/ubuntu/AI/OnnxStream/src/onnxstream.cpp:1789:42: error: invalid conversion from ‘xnn_status (*)(xnn_operator_t, size_t, pthreadpool_t)’ {aka ‘xnn_status (*)(xnn_operator*, long unsigned int, pthreadpool*)’} to ‘xnn_status (*)(xnn_operator_t, size_t, size_t, size_t, size_t, pthreadpool_t)’ {aka ‘xnn_status (*)(xnn_operator*, long unsigned int, long unsigned int, long unsigned int, long unsigned int, pthreadpool*)’} [-fpermissive]
1789 | xnn_reshape_softmax_nc_xxx = &xnn_reshape_softmax_nc_qu8;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| xnn_status (*)(xnn_operator_t, size_t, pthreadpool_t) {aka xnn_status (*)(xnn_operator*, long unsigned int, pthreadpool*)}
gmake[2]: *** [CMakeFiles/sd.dir/build.make:90: CMakeFiles/sd.dir/onnxstream.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/sd.dir/all] Error 2
gmake: *** [Makefile:91: all] Error 2