alibaba / MNN

MNN is a blazing fast, lightweight deep learning framework, battle-tested by business-critical use cases in Alibaba
http://www.mnn.zone/
8.69k stars 1.66k forks source link

Build pymnn failed. 无法编译 pymnn #2640

Closed owlwang closed 9 months ago

owlwang commented 1 year ago

平台(如果交叉编译请再附上交叉编译目标平台):

Orangepi zero 3, 全志 H618 芯片 arm aarch64。

Linux orangepizero3 5.4.125 #1.0.2 SMP Fri Oct 13 09:28:28 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux

Python 3.10.12 cmake version 3.22.1

Github版本:

91ad3954184b2b77bd1d9d5a6947d4bf556c15e5

编译方式:

编译命令

orangepi@orangepizero3:~/MNN/pymnn/pip_package$ pwd
/home/orangepi/MNN/pymnn/pip_package
orangepi@orangepizero3:~/MNN/pymnn/pip_package$ python3 build_deps.py

编译中途会报错退出:

-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- 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
--
-- 3.19.0.0
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Performing Test protobuf_HAVE_BUILTIN_ATOMICS
-- Performing Test protobuf_HAVE_BUILTIN_ATOMICS - Success
-- Use Threadpool, forbid openmp
-- >>>>>>>>>>>>>
-- MNN BUILD INFO:
--  System: Linux
--  Processor: aarch64
--  Version: 2.7.2
--  Metal: OFF
--  OpenCL: ON
--  OpenGL: OFF
--  Vulkan: ON
--  ARM82: OFF
--  oneDNN: OFF
--  TensorRT: OFF
--  CoreML: OFF
--  NNAPI: OFF
--  CUDA: OFF
--  OpenMP: OFF
--  BF16:
--  ThreadPool: ON
--  Hidden: TRUE
--  Build Path: /home/orangepi/MNN/pymnn_build
--  CUDA PROFILE: OFF
-- WIN_USE_ASM:
-- Enabling AArch64 Assemblies
-- Onnx:
-- Configuring done
-- Generating done
-- Build files have been written to: /home/orangepi/MNN/pymnn_build
[  2%] Building CXX object CMakeFiles/MNNCore.dir/source/core/AutoTime.cpp.o
[  2%] Building CXX object tools/cv/CMakeFiles/MNNOpenCV.dir/source/imgproc/color.cpp.o
[  2%] Building CXX object CMakeFiles/MNNCV.dir/source/cv/ImageProcess.cpp.o
[  2%] Building CXX object CMakeFiles/MNNCore.dir/source/core/Backend.cpp.o
[  2%] Building CXX object tools/cv/CMakeFiles/MNNOpenCV.dir/source/imgproc/geometric.cpp.o
[  2%] Building CXX object CMakeFiles/MNNCore.dir/source/core/BackendRegister.cpp.o
[  2%] Building CXX object CMakeFiles/MNNCV.dir/source/cv/Matrix_CV.cpp.o
[  2%] Building CXX object tools/cv/CMakeFiles/MNNOpenCV.dir/source/imgproc/draw.cpp.o
[  2%] Built target MNNCV
[  2%] Building CXX object tools/cv/CMakeFiles/MNNOpenCV.dir/source/imgproc/filter.cpp.o
[  4%] Building CXX object CMakeFiles/MNNCore.dir/source/core/BufferAllocator.cpp.o
[  4%] Building CXX object CMakeFiles/MNNCore.dir/source/core/ConvolutionCommon.cpp.o
[  4%] Building CXX object tools/cv/CMakeFiles/MNNOpenCV.dir/source/imgproc/miscellaneous.cpp.o
[  4%] Building CXX object CMakeFiles/MNNCore.dir/source/core/Execution.cpp.o
[  6%] Building CXX object tools/cv/CMakeFiles/MNNOpenCV.dir/source/imgproc/structural.cpp.o
[  6%] Building CXX object tools/cv/CMakeFiles/MNNOpenCV.dir/source/imgproc/histograms.cpp.o
[  6%] Building CXX object tools/cv/CMakeFiles/MNNOpenCV.dir/source/calib3d/calib3d.cpp.o
[  6%] Building CXX object CMakeFiles/MNNCore.dir/source/core/FileLoader.cpp.o
[  6%] Building CXX object CMakeFiles/MNNCore.dir/source/core/Interpreter.cpp.o

[  6%] Building CXX object CMakeFiles/MNNCore.dir/source/core/MNNMemoryUtils.cpp.o
[  6%] Building CXX object tools/cv/CMakeFiles/MNNOpenCV.dir/source/imgcodecs/imgcodecs.cpp.o
[  6%] Building CXX object CMakeFiles/MNNCore.dir/source/core/OpCommonUtils.cpp.o
[  6%] Building CXX object CMakeFiles/MNNCore.dir/source/core/Pipeline.cpp.o
[  6%] Building CXX object tools/cv/CMakeFiles/MNNOpenCV.dir/source/core/core.cpp.o
[  6%] Building CXX object CMakeFiles/MNNCore.dir/source/core/RuntimeFactory.cpp.o
[  6%] Building CXX object CMakeFiles/MNNMath.dir/source/math/Matrix.cpp.o
[  6%] Built target MNNOpenCV
[  6%] Building CXX object CMakeFiles/MNNMath.dir/source/math/WingoradGenerater.cpp.o
[  6%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/ConvertUtils.cpp.o
[  6%] Built target MNNMath
[  6%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryBatchMatMul.cpp.o
In file included from /home/orangepi/MNN/include/MNN/Tensor.hpp:14,
                 from /home/orangepi/MNN/include/MNN/Interpreter.hpp:18,
                 from /home/orangepi/MNN/source/core/Schedule.hpp:13,
                 from /home/orangepi/MNN/source/core/Pipeline.hpp:12,
                 from /home/orangepi/MNN/source/core/Pipeline.cpp:10:
/home/orangepi/MNN/source/core/Pipeline.cpp: In member function ‘MNN::ErrorCode MNN::Pipeline::allocMemory(bool, bool)’:
/home/orangepi/MNN/source/core/Pipeline.cpp:964:86: warning: ‘this’ pointer is null [-Wnonnull]
  964 |                 MNN_ERROR("Resize error for type = %s, name = %s \n", iter.info->type().c_str(), iter.info->name().c_str());
      |                                                                       ~~~~~~~~~~~~~~~^~
/home/orangepi/MNN/include/MNN/MNNDefine.h:33:49: note: in definition of macro ‘MNN_ERROR’
   33 | #define MNN_ERROR(format, ...) printf(format, ##__VA_ARGS__)
      |                                                 ^~~~~~~~~~~
/home/orangepi/MNN/source/core/Pipeline.cpp:104:20: note: in a call to non-static member function ‘const string& MNN::OperatorInfo::type() const’
  104 | const std::string& OperatorInfo::type() const {
      |                    ^~~~~~~~~~~~
[  6%] Building CXX object CMakeFiles/MNNUtils.dir/source/utils/InitNet.cpp.o
[  6%] Building CXX object CMakeFiles/MNNCore.dir/source/core/Schedule.cpp.o
[  6%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryBinary.cpp.o
[  6%] Building CXX object CMakeFiles/MNNUtils.dir/source/utils/JNIHelper.cpp.o
[  6%] Built target MNNUtils
[  6%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryBroadcastTo.cpp.o
[  6%] Building CXX object CMakeFiles/MNNCore.dir/source/core/Session.cpp.o
[  8%] Building CXX object CMakeFiles/MNNCore.dir/source/core/Tensor.cpp.o
[  8%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryComputer.cpp.o
[  8%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryComputerUtils.cpp.o
[  8%] Building CXX object CMakeFiles/MNNCore.dir/source/core/TensorUtils.cpp.o
[  8%] Building CXX object CMakeFiles/MNNCore.dir/source/core/WrapExecution.cpp.o
[  8%] Building CXX object CMakeFiles/MNNCPU.dir/source/backend/cpu/CPUArgMax.cpp.o
[  8%] Built target MNNCore
[  8%] Building CXX object CMakeFiles/MNNCPU.dir/source/backend/cpu/CPUBackend.cpp.o
Scanning dependencies of target MNNARM64
[  8%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNAddC4WithStride.S.o
[  8%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNAvgPoolInt8.S.o
[  8%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNAxByClampBroadcastC4.S.o
[  8%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNBilinearLineC8.S.o
[  8%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNBilinearSampleC8.S.o
[  8%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNBinaryAddInt8.S.o
[ 10%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNBinaryMaxInt8.S.o
[ 10%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNBinaryMinInt8.S.o
[ 10%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNBinaryMulInt8.S.o
[ 10%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNBinarySqdInt8.S.o
[ 10%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNBinarySubInt8.S.o
[ 10%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNBlitC1ToFloatRGBA.S.o
[ 10%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNBlitC3ToFloatRGBA.S.o
[ 10%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNConvDwF23MulTransUnit.S.o
[ 10%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNConvDwF23SourceTransUnit.S.o
[ 10%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNConvRunForLineDepthWiseInt8.S.o
[ 12%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNConvRunForLineDepthWiseUint8.S.o
[ 12%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNConvRunForLineDepthwise.S.o
[ 12%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryConcat.cpp.o
[ 12%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNConvRunForUnitDepthWise.S.o
[ 12%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNConvRunForUnitDepthWiseUint8.S.o
[ 12%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNCopyC4WithStride.S.o
[ 12%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNCubicLineC16.S.o
[ 12%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNCubicSampleC16.S.o
[ 12%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNDeconvRunForUnitDepthWise.S.o
[ 12%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNExpC8.S.o
[ 12%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNFloat2Int8.S.o
[ 14%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNGelu.S.o
[ 14%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNGemmInt8AddBiasScale_16x4_Unit.S.o
[ 14%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNGemmInt8AddBiasScale_16x4_Unit_FAST.S.o
[ 14%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNGemmInt8AddBiasScale_ARMV82_Unit.S.o
[ 14%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNGemmInt8AddBiasScale_ARMV86_Unit.S.o
[ 14%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNGemmint8to32_8x4_Unit.S.o
[ 14%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNInt8ScaleToFloat.S.o
[ 14%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNLineDepthWiseInt8AddBiasScaleUnit.S.o
[ 14%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNLineDepthWiseInt8AddBiasScale_ARMV82_Unit3X3.S.o
[ 14%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNLoadU8AndSum.S.o
[ 14%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNMatrixAdd.S.o
[ 17%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNMatrixMax.S.o
[ 17%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNMatrixProd.S.o
[ 17%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNMatrixSub.S.o
[ 17%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNMaxFloat.S.o
[ 17%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNMaxPoolInt8.S.o
[ 17%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNMinFloat.S.o
[ 17%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNNV21ToBGRAUnit.S.o
[ 17%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNNV21ToBGRUnit.S.o
[ 17%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNNV21ToRGBAUnit.S.o
[ 17%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNNV21ToRGBUnit.S.o
[ 19%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNPackC4.S.o
[ 19%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNPackC4ForMatMul_A.S.o
[ 19%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNPackC8.S.o
[ 19%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNPackedMatMul.S.o
[ 19%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNPackedMatMulRemain.S.o
[ 19%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNPackedSparseMatMulEpx1.S.o
[ 19%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNPackedSparseMatMulEpx4.S.o
[ 19%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNPackedSparseQuantMatMulEpx1.S.o
[ 19%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNPackedSparseQuantMatMulEpx4.S.o
[ 19%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNPowC8.S.o
[ 21%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNQuanToDestUint8.S.o
[ 21%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNReluInt8.S.o
[ 21%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNReluWithSlopeChannel.S.o
[ 21%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNReluWithSlopeChannelInt8.S.o
[ 21%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNSamplerC1BilinearOpt.S.o
[ 21%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNSamplerC1NearestOpt.S.o
[ 21%] Building CXX object CMakeFiles/MNNCPU.dir/source/backend/cpu/CPUBinary.cpp.o
[ 21%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNSamplerC4BilinearOpt.S.o
[ 21%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNSamplerC4NearestOpt.S.o
[ 21%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNScaleAddInt8.S.o
[ 21%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNScaleAndAddBias.S.o
[ 23%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNScaleAndAddBiasInt8.S.o
[ 23%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNSoftmax.S.o
[ 23%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNStrassenMergeCFunction.S.o
[ 23%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNTranspose32Bit4x4.S.o
[ 23%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNUInt8ToInt16WithOffsetC4Common.S.o
[ 23%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNUInt8ToInt16WithOffsetC4Fast.S.o
[ 23%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNUnPackC4.S.o
[ 23%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNVectorTop1Float.S.o
[ 23%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNVectorTop1Int32.S.o
[ 23%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNWinogradMatrixProductLeft.S.o
[ 23%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/MNNWinogradMatrixProductRight.S.o
[ 25%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/low_memory/MNNPackedMatMulRemain_int4.S.o
[ 25%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/low_memory/MNNPackedMatMulRemain_int8.S.o
[ 25%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/low_memory/MNNPackedMatMul_int4.S.o
[ 25%] Building ASM object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/arm64/low_memory/MNNPackedMatMul_int8.S.o
[ 25%] Building CXX object CMakeFiles/MNNARM64.dir/source/backend/cpu/arm/CommonOptFunctionNeon.cpp.o
[ 25%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryConv2D.cpp.o
In file included from /home/orangepi/MNN/source/backend/cpu/CPUBinary.cpp:18:
/home/orangepi/MNN/source/math/Vec.hpp: In static member function ‘static void MNN::Math::Vec<int, 4>::transpose4(MNN::Math::Vec<int, 4>::VecType&, MNN::Math::Vec<int, 4>::VecType&, MNN::Math::Vec<int, 4>::VecType&, MNN::Math::Vec<int, 4>::VecType&)’:
/home/orangepi/MNN/source/math/Vec.hpp:288:97: note: use ‘-flax-vector-conversions’ to permit conversions between vectors with differing element types or numbers of subparts
  288 |         vec0.value = vtrn1q_s64(reinterpret_cast<int64x2_t>(m0), reinterpret_cast<int64x2_t>(m2));
      |                                                                                                 ^
/home/orangepi/MNN/source/math/Vec.hpp:288:32: error: cannot convert ‘int64x2_t’ to ‘int32x4_t’ in assignment
  288 |         vec0.value = vtrn1q_s64(reinterpret_cast<int64x2_t>(m0), reinterpret_cast<int64x2_t>(m2));
      |                      ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                |
      |                                int64x2_t
/home/orangepi/MNN/source/math/Vec.hpp:289:32: error: cannot convert ‘int64x2_t’ to ‘int32x4_t’ in assignment
  289 |         vec1.value = vtrn1q_s64(reinterpret_cast<int64x2_t>(m1), reinterpret_cast<int64x2_t>(m3));
      |                      ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                |
      |                                int64x2_t
/home/orangepi/MNN/source/math/Vec.hpp:290:32: error: cannot convert ‘int64x2_t’ to ‘int32x4_t’ in assignment
  290 |         vec2.value = vtrn2q_s64(reinterpret_cast<int64x2_t>(m0), reinterpret_cast<int64x2_t>(m2));
      |                      ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                |
      |                                int64x2_t
/home/orangepi/MNN/source/math/Vec.hpp:291:32: error: cannot convert ‘int64x2_t’ to ‘int32x4_t’ in assignment
  291 |         vec3.value = vtrn2q_s64(reinterpret_cast<int64x2_t>(m1), reinterpret_cast<int64x2_t>(m3));
      |                      ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                |
      |                                int64x2_t
In file included from /home/orangepi/MNN/source/backend/cpu/CPUBinary.cpp:18:
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator<(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:508:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  508 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator>(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:513:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  513 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator<=(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:518:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  518 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator>=(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:523:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  523 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator==(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:528:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  528 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
[ 25%] Built target MNNARM64
[ 27%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryConv2DBackPropFilter.cpp.o
make[3]: *** [CMakeFiles/MNNCPU.dir/build.make:104: CMakeFiles/MNNCPU.dir/source/backend/cpu/CPUBinary.cpp.o] Error 1
make[2]: *** [CMakeFiles/Makefile2:416: CMakeFiles/MNNCPU.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
[ 27%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryConv3D.cpp.o
[ 27%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryConvUtils.cpp.o
[ 27%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryConvert.cpp.o
[ 27%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryCosineSimilarity.cpp.o
[ 27%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryCrop.cpp.o
[ 27%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryCumSum.cpp.o
[ 27%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryDepthToSpace.cpp.o
[ 27%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryDet.cpp.o
[ 27%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryDilation2D.cpp.o
[ 29%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryELU.cpp.o
[ 29%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryFill.cpp.o
[ 29%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryGather.cpp.o
[ 29%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryImageOp.cpp.o
[ 29%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryInnerProduct.cpp.o
[ 29%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryLRN.cpp.o
[ 29%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryLSTM.cpp.o
[ 29%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryOPRegister.cpp.o
[ 29%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryPermute.cpp.o
[ 29%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryPoolGrad.cpp.o
[ 31%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryPooling3D.cpp.o
[ 31%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryReduce.cpp.o
[ 31%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryReshape.cpp.o
[ 31%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryReverseSequence.cpp.o
[ 31%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryScatter.cpp.o
[ 31%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometrySelect.cpp.o
[ 31%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryShape.cpp.o
[ 31%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometrySlice.cpp.o
[ 31%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometrySpaceToBatchND.cpp.o
[ 31%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometrySpatialProduct.cpp.o
[ 34%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryStridedSlice.cpp.o
[ 34%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryTensorArray.cpp.o
[ 34%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryThreshold.cpp.o
[ 34%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryTile.cpp.o
[ 34%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryTopK.cpp.o
[ 34%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryUnary.cpp.o
[ 34%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeArgMax.cpp.o
[ 34%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeBatchToSpaceND.cpp.o
[ 34%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeBinaryOp.cpp.o
[ 34%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeBroadcastTo.cpp.o
[ 34%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeCast.cpp.o
[ 36%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeConcat.cpp.o
[ 36%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeConvTranspose3D.cpp.o
[ 36%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeConvolution.cpp.o
[ 36%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeConvolution3D.cpp.o
[ 36%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeCosineSimilarity.cpp.o
[ 36%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeCrop.cpp.o
[ 36%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeCropAndResize.cpp.o
[ 36%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeDeconvolution.cpp.o
[ 36%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeDepthToSpace.cpp.o
[ 36%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeDequantize.cpp.o
[ 38%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeDet.cpp.o
[ 38%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeDetectionOutput.cpp.o
[ 38%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeDetectionPostProcess.cpp.o
[ 38%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeExpandDims.cpp.o
[ 38%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeFill.cpp.o
[ 38%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeGatherND.cpp.o
[ 38%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeGatherV2.cpp.o
[ 38%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeGridSample.cpp.o
[ 38%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeHistogram.cpp.o
[ 38%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeInnerProduct.cpp.o
[ 40%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeInterp.cpp.o
[ 40%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeLSTM.cpp.o
[ 40%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeLinSpace.cpp.o
[ 40%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeMatMul.cpp.o
[ 40%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeMoments.cpp.o
[ 40%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeNonMaxSuppressionV2.cpp.o
[ 40%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeOneHot.cpp.o
[ 40%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapePack.cpp.o
[ 40%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapePadding.cpp.o
[ 40%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapePermute.cpp.o
[ 40%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapePlugin.cpp.o
[ 42%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapePool.cpp.o
[ 42%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapePool3D.cpp.o
[ 42%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapePriorbox.cpp.o
[ 42%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeProposal.cpp.o
[ 42%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeQuantizedAvgPool.cpp.o
[ 42%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeQuantizedMaxPool.cpp.o
[ 42%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeRNNSequenceGRU.cpp.o
[ 42%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeROIAlign.cpp.o
[ 42%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeROIPooling.cpp.o
[ 42%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeRandomUniform.cpp.o
[ 44%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeRange.cpp.o
[ 44%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeReduction.cpp.o
[ 44%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeRegister.cpp.o
[ 44%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeReshape.cpp.o
[ 44%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeResize.cpp.o
[ 44%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeScatterNd.cpp.o
[ 44%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeSegmentMean.cpp.o
[ 44%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeSelect.cpp.o
[ 44%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeSetDiff1D.cpp.o
[ 44%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeShape.cpp.o
[ 46%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeSize.cpp.o
[ 46%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeSlice.cpp.o
[ 46%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeSliceTf.cpp.o
[ 46%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeSpaceToBatchND.cpp.o
[ 46%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeSpaceToDepth.cpp.o
[ 46%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeSqueeze.cpp.o
[ 46%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeStridedSlice.cpp.o
[ 46%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeSvd.cpp.o
[ 46%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeTensorArray.cpp.o
[ 46%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeTensorConvert.cpp.o
[ 48%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeTile.cpp.o
[ 48%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeTopKV2.cpp.o
[ 48%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeTranspose.cpp.o
[ 48%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeUnique.cpp.o
[ 48%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeUnpack.cpp.o
[ 48%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeUnravelIndex.cpp.o
[ 48%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/ShapeWhere.cpp.o
[ 48%] Building CXX object CMakeFiles/MNNTransform.dir/source/shape/SizeComputer.cpp.o
[ 48%] Built target MNNTransform
make[1]: *** [CMakeFiles/Makefile2:486: CMakeFiles/MNN.dir/rule] Error 2
make: *** [Makefile:260: MNN] Error 2
owlwang commented 1 year ago

似乎和 https://github.com/alibaba/MNN/issues/2638 是一样的问题

jxt1234 commented 12 months ago

已知问题,等同步后看下有没修复

owlwang commented 11 months ago

@jxt1234

已经更新最新代码, 依旧报错,没有修复。

In file included from /home/orangepi/MNN/source/backend/cpu/CPUBinary.cpp:18:
/home/orangepi/MNN/source/math/Vec.hpp: In static member function ‘static void MNN::Math::Vec<int, 4>::transpose4(MNN::Math::Vec<int, 4>::VecType&, MNN::Math::Vec<int, 4>::VecType&, MNN::Math::Vec<int, 4>::VecType&, MNN::Math::Vec<int, 4>::VecType&)’:
/home/orangepi/MNN/source/math/Vec.hpp:288:97: note: use ‘-flax-vector-conversions’ to permit conversions between vectors with differing element types or numbers of subparts
  288 |         vec0.value = vtrn1q_s64(reinterpret_cast<int64x2_t>(m0), reinterpret_cast<int64x2_t>(m2));
      |                                                                                                 ^
/home/orangepi/MNN/source/math/Vec.hpp:288:32: error: cannot convert ‘int64x2_t’ to ‘int32x4_t’ in assignment
  288 |         vec0.value = vtrn1q_s64(reinterpret_cast<int64x2_t>(m0), reinterpret_cast<int64x2_t>(m2));
      |                      ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                |
      |                                int64x2_t
/home/orangepi/MNN/source/math/Vec.hpp:289:32: error: cannot convert ‘int64x2_t’ to ‘int32x4_t’ in assignment
  289 |         vec1.value = vtrn1q_s64(reinterpret_cast<int64x2_t>(m1), reinterpret_cast<int64x2_t>(m3));
      |                      ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                |
      |                                int64x2_t
/home/orangepi/MNN/source/math/Vec.hpp:290:32: error: cannot convert ‘int64x2_t’ to ‘int32x4_t’ in assignment
  290 |         vec2.value = vtrn2q_s64(reinterpret_cast<int64x2_t>(m0), reinterpret_cast<int64x2_t>(m2));
      |                      ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                |
      |                                int64x2_t
/home/orangepi/MNN/source/math/Vec.hpp:291:32: error: cannot convert ‘int64x2_t’ to ‘int32x4_t’ in assignment
  291 |         vec3.value = vtrn2q_s64(reinterpret_cast<int64x2_t>(m1), reinterpret_cast<int64x2_t>(m3));
      |                      ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                |
      |                                int64x2_t
In file included from /home/orangepi/MNN/source/backend/cpu/CPUBinary.cpp:18:
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator<(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:508:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  508 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator>(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:513:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  513 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator<=(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:518:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  518 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator>=(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:523:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  523 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator==(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:528:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  528 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
[  6%] Building CXX object tools/cv/CMakeFiles/MNNOpenCV.dir/source/calib3d/calib3d.cpp.o
[  6%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryComputer.cpp.o
make[3]: *** [CMakeFiles/MNNCPU.dir/build.make:104: CMakeFiles/MNNCPU.dir/source/backend/cpu/CPUBinary.cpp.o] Error 1
make[2]: *** [CMakeFiles/Makefile2:416: CMakeFiles/MNNCPU.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
[  6%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryComputerUtils.cpp.o
      |                                int64x2_t
In file included from /home/orangepi/MNN/source/backend/cpu/CPUBinary.cpp:18:
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator<(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:508:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  508 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator>(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:513:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}                                                                                                               513 |         VecType dst = { vbslq_s32(res, one, zero) };                                                                                                                           |                                        ^
                                                                                                                            |                                                   |
                                                                                                                            |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator<=(const VecType&) const’:
                                                                                                                                                         /home/orangepi/MNN/source/math/Vec.hpp:518:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
                                                                                                           518 |         VecType dst = { vbslq_s32(res, one, zero) };
                                                                                                               |                                                   ^
                                                                                                               |                                                   |
                                                                                                               |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator>=(const VecType&) const’:
                                                                                                                                                         /home/orangepi/MNN/source/math/Vec.hpp:523:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
                                                                                                           523 |         VecType dst = { vbslq_s32(res, one, zero) };
                                                                                                               |                                                   ^
                                                                                                               |                                                   |
                                                                                                               |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator==(const VecType&) const’:
                                                                                                                                                         /home/orangepi/MNN/source/math/Vec.hpp:528:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
                                                                                                           528 |         VecType dst = { vbslq_s32(res, one, zero) };
                                                                                                               |                                                   ^
                                                                                                               |                                                   |
                                                                                                               |                                                   <brace-enclosed initializer list>
[  6%] Building CXX object tools/cv/CMakeFiles/MNNOpenCV.dir/source/calib3d/calib3d.cpp.o
[  6%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryComputer.cpp.o
make[3]: *** [CMakeFiles/MNNCPU.dir/build.make:104: CMakeFiles/MNNCPU.dir/source/backend/cpu/CPUBinary.cpp.o] Error 1
make[2]: *** [CMakeFiles/Makefile2:416: CMakeFiles/MNNCPU.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
[  6%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryComputerUtils.cpp.o
  291 |         vec3.value = vtrn2q_s64(reinterpret_cast<int64x2_t>(m1), reinterpret_cast<int64x2_t>(m3));
      |                      ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                |
      |                                int64x2_t
In file included from /home/orangepi/MNN/source/backend/cpu/CPUBinary.cpp:18:
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator<(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:508:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  508 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator>(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:513:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  513 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator<=(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:518:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  518 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator>=(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:523:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  523 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator==(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:528:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  528 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
[  6%] Building CXX object tools/cv/CMakeFiles/MNNOpenCV.dir/source/calib3d/calib3d.cpp.o
[  6%] Building CXX object CMakeFiles/MNNTransform.dir/source/geometry/GeometryComputer.cpp.o
make[3]: *** [CMakeFiles/MNNCPU.dir/build.make:104: CMakeFiles/MNNCPU.dir/source/backend/cpu/CPUBinary.cpp.o] Error 1
make[2]: *** [CMakeFiles/Makefile2:416: CMakeFiles/MNNCPU.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
owlwang commented 11 months ago

我看到昨天有更新,所以pull了下最新的代码。但是还是有error存在。无法编译。

@jxt1234 请问是这个commit吗?

commit: https://github.com/alibaba/MNN/commit/8d5d8b8844893d4cc1d6e0d3572870b8d53867e3

error msg:

In file included from /home/orangepi/MNN/source/backend/cpu/CPUBinary.cpp:18:
/home/orangepi/MNN/source/math/Vec.hpp: In static member function ‘static void MNN::Math::Vec<int, 4>::transpose4(MNN::Math::Vec<int, 4>::VecType&, MNN::Math::Vec<int, 4>::VecType&, MNN::Math::Vec<int, 4>::VecType&, MNN::Math::Vec<int, 4>::VecType&)’:
/home/orangepi/MNN/source/math/Vec.hpp:288:97: note: use ‘-flax-vector-conversions’ to permit conversions between vectors with differing element types or numbers of subparts
  288 |         vec0.value = vtrn1q_s64(reinterpret_cast<int64x2_t>(m0), reinterpret_cast<int64x2_t>(m2));
      |                                                                                                 ^
/home/orangepi/MNN/source/math/Vec.hpp:288:32: error: cannot convert ‘int64x2_t’ to ‘int32x4_t’ in assignment
  288 |         vec0.value = vtrn1q_s64(reinterpret_cast<int64x2_t>(m0), reinterpret_cast<int64x2_t>(m2));
      |                      ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                |
      |                                int64x2_t
/home/orangepi/MNN/source/math/Vec.hpp:289:32: error: cannot convert ‘int64x2_t’ to ‘int32x4_t’ in assignment
  289 |         vec1.value = vtrn1q_s64(reinterpret_cast<int64x2_t>(m1), reinterpret_cast<int64x2_t>(m3));
      |                      ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                |
      |                                int64x2_t
/home/orangepi/MNN/source/math/Vec.hpp:290:32: error: cannot convert ‘int64x2_t’ to ‘int32x4_t’ in assignment
  290 |         vec2.value = vtrn2q_s64(reinterpret_cast<int64x2_t>(m0), reinterpret_cast<int64x2_t>(m2));
      |                      ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                |
      |                                int64x2_t
/home/orangepi/MNN/source/math/Vec.hpp:291:32: error: cannot convert ‘int64x2_t’ to ‘int32x4_t’ in assignment
  291 |         vec3.value = vtrn2q_s64(reinterpret_cast<int64x2_t>(m1), reinterpret_cast<int64x2_t>(m3));
      |                      ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                |
      |                                int64x2_t
In file included from /home/orangepi/MNN/source/backend/cpu/CPUBinary.cpp:18:
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator<(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:508:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  508 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator>(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:513:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  513 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator<=(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:518:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  518 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator>=(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:523:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  523 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
/home/orangepi/MNN/source/math/Vec.hpp: In member function ‘MNN::Math::Vec<float, 4>::VecType MNN::Math::Vec<float, 4>::operator==(const VecType&) const’:
/home/orangepi/MNN/source/math/Vec.hpp:528:51: error: could not convert ‘{vbslq_s32(res, ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::one), ((int32x4_t)((const MNN::Math::Vec<float, 4>*)this)->MNN::Math::Vec<float, 4>::zero))}’ from ‘<brace-enclosed initializer list>’ to ‘MNN::Math::Vec<float, 4>::VecType’ {aka ‘MNN::Math::Vec<float, 4>’}
  528 |         VecType dst = { vbslq_s32(res, one, zero) };
      |                                                   ^
      |                                                   |
      |                                                   <brace-enclosed initializer list>
github-actions[bot] commented 9 months ago

Marking as stale. No activity in 60 days.