Tencent / ncnn

ncnn is a high-performance neural network inference framework optimized for the mobile platform
Other
20.55k stars 4.18k forks source link

编译Debug版本时候出错误 #5295

Closed llhe110 closed 10 months ago

llhe110 commented 10 months ago

请问现在的代码支持编译Debug版本吗? (1)编译Release版本可以成功。 cmake -DCMAKE_BUILD_TYPE=Release -DNCNN_VULKAN=OFF -DNCNN_BUILD_EXAMPLES=ON .. make -j4 (2)但是编译Debug版本的时候会出现错误。

运行命令: cmake -DCMAKE_BUILD_TYPE=Debug -DNCNN_VULKAN=OFF -DNCNN_BUILD_EXAMPLES=ON .. llhe@llhe-virtual-machine:~/rscratch/workSpace/ncnnAcc/SW/ncnn/build$ cmake -DCMAKE_BUILD_TYPE=Debug -DNCNN_VULKAN=OFF -DNCNN_BUILD_EXAMPLES=ON .. -- CMAKE_INSTALL_PREFIX = /home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/build/install -- NCNN_VERSION_STRING = 1.0.20240117 CMake Deprecation Warning at CMakeLists.txt:24 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

CMake Warning at CMakeLists.txt:525 (message): The compiler does not support avx vnni extension. NCNN_AVXVNNI will be OFF.

CMake Warning at CMakeLists.txt:553 (message): The compiler does not support avx512 extension. NCNN_AVX512 will be OFF.

-- Target arch: x86 64bit -- OpenCV library: /usr/local -- version: 3.4.12 -- libraries: opencv_core;opencv_highgui;opencv_imgproc;opencv_imgcodecs;opencv_videoio -- include path: /usr/local/include;/usr/local/include/opencv CMake Deprecation Warning at tools/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

-- Could NOT find protobuf (missing: protobuf_DIR) -- Could NOT find protobuf (missing: protobuf_DIR) -- Configuring done (0.4s) -- Generating done (0.3s) -- Build files have been written to: /home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/build

然后运行命令: make -j4 错误如下:

llhe@llhe-virtual-machine:~/rscratch/workSpace/ncnnAcc/SW/ncnn/build$ make -j4
[  0%] Built target ncnn-generate-spirv
[  0%] Built target mxnet2ncnn
[  0%] Built target ncnnmerge
[  1%] Built target caffe2ncnn
[  1%] Built target darknet2ncnn
[  1%] Built target onnx2ncnn
[  1%] Building CXX object src/CMakeFiles/ncnn.dir/layer/x86/crop_x86_fma.cpp.o
[  1%] Building CXX object src/CMakeFiles/ncnn.dir/layer/x86/crop_x86.cpp.o
[  2%] Building CXX object src/CMakeFiles/ncnn.dir/layer/crop.cpp.o
[  2%] Building CXX object src/CMakeFiles/ncnn.dir/layer/x86/convolution_x86_avx2.cpp.o
[  2%] Building CXX object src/CMakeFiles/ncnn.dir/layer/x86/crop_x86_avx.cpp.o
[  3%] Building CXX object src/CMakeFiles/ncnn.dir/layer/deconvolution.cpp.o
[  3%] Building CXX object src/CMakeFiles/ncnn.dir/layer/x86/deconvolution_x86.cpp.o
In file included from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/immintrin.h:60:0,
                 from /home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/mat.h:26,
                 from /home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_x86_avx2.cpp:16:
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h: In function ‘void ncnn::convolution_transform_kernel_packed_int8(const ncnn::Mat&, ncnn::Mat&, int, int, int, int)’:
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:451:52: error: last argument must be scale 1, 2, 4, 8
                 __m256i _w01 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)(kptr0 + k), _vindex01, sizeof(signed char)), _sindex88);
                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:452:52: error: last argument must be scale 1, 2, 4, 8
                 __m256i _w23 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)(kptr4 + k), _vindex01, sizeof(signed char)), _sindex88);
                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:474:32: error: last argument must be scale 1, 2, 4, 8
                 __m256i _w32 = _mm256_i32gather_epi32((const int*)(kptr0 + k), _vindex, sizeof(signed char));
                                ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:589:52: error: last argument must be scale 1, 2, 4, 8
                 __m256i _w01 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)(kptr0 + k), _vindex01, sizeof(signed char)), _sindex88);
                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:630:48: error: last argument must be scale 1, 2, 4, 8
                 __m128i _w0 = _mm_shuffle_epi8(_mm_i32gather_epi32((const int*)(kptr0 + k), _vindex, sizeof(signed char)), _sindex8);
                                                ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:705:52: error: last argument must be scale 1, 2, 4, 8
                 __m256i _w00 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)(kptr0 + k), _vindex0, sizeof(signed char)), _sindex88);
                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:706:52: error: last argument must be scale 1, 2, 4, 8
                 __m256i _w11 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)(kptr1 + k), _vindex0, sizeof(signed char)), _sindex88);
                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:754:48: error: last argument must be scale 1, 2, 4, 8
                 __m128i _w0 = _mm_shuffle_epi8(_mm_i32gather_epi32((const int*)(kptr0 + k), _vindex, sizeof(signed char)), _sindex8);
                                                ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:835:52: error: last argument must be scale 1, 2, 4, 8
                 __m256i _w00 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)(kptr + k), _vindex, sizeof(signed char)), _sindex88);
                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h: In function ‘void ncnn::convolution_packed_int8(const ncnn::Mat&, ncnn::Mat&, const ncnn::Mat&, int, int, int, int, int, int, const ncnn::Option&)’:
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:3007:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val0_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r0s, _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:3008:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val1_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r1s, _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:3009:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val2_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r2s, _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:3010:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val3_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r3s, _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:3430:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val0_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r0s, _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:3431:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val1_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r1s, _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:3740:66: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r0s, _vindex, sizeof(signed char)), _sindex88);
                                                                  ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:4087:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val0_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r0s, _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:4088:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val1_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r1s, _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:4089:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val2_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r2s, _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:4090:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val3_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r3s, _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:4398:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val0_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r0s, _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:4399:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val1_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r1s, _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:4619:66: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r0s, _vindex, sizeof(signed char)), _sindex88);
                                                                  ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:4872:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val0_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r0s, _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:4873:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val1_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r1s, _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:4874:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val2_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r2s, _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:4875:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val3_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r3s, _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:5133:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val0_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r0s, _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:5134:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val1_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r1s, _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:5313:66: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r0s, _vindex, sizeof(signed char)), _sindex88);
                                                                  ^
[  3%] Building CXX object src/CMakeFiles/ncnn.dir/layer/x86/deconvolution_x86_fma.cpp.o
[  3%] Building CXX object src/CMakeFiles/ncnn.dir/layer/x86/deconvolution_x86_avx.cpp.o
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h: In function ‘<built-in>’:
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:2673:66: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r0s, _vindex, sizeof(signed char)), _sindex88);
                                                                  ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:2407:64: error: last argument must be scale 1, 2, 4, 8
                         __m256i _val0_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r0s, _vindex, sizeof(signed char)), _sindex88);
                                                                ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:2408:64: error: last argument must be scale 1, 2, 4, 8
                         __m256i _val1_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r1s, _vindex, sizeof(signed char)), _sindex88);
                                                                ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:2038:64: error: last argument must be scale 1, 2, 4, 8
                         __m256i _val0_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r0s, _vindex, sizeof(signed char)), _sindex88);
                                                                ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:2039:64: error: last argument must be scale 1, 2, 4, 8
                         __m256i _val1_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r1s, _vindex, sizeof(signed char)), _sindex88);
                                                                ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:2040:64: error: last argument must be scale 1, 2, 4, 8
                         __m256i _val2_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r2s, _vindex, sizeof(signed char)), _sindex88);
                                                                ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_packed_int8.h:2041:64: error: last argument must be scale 1, 2, 4, 8
                         __m256i _val3_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r3s, _vindex, sizeof(signed char)), _sindex88);
                                                                ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_3x3_winograd_int8.h: In function ‘<built-in>’:
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_3x3_winograd_int8.h:3663:64: error: last argument must be scale 1, 2, 4, 8
                         __m256i _val0_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r0, _vindex, sizeof(signed char)), _sindex88);
                                                                ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_3x3_winograd_int8.h:3677:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val3_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)(r0 + 3), _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_3x3_winograd_int8.h:3672:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val2_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)(r0 + 2), _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_3x3_winograd_int8.h:3667:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val1_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)(r0 + 1), _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_3x3_winograd_int8.h: In function ‘<built-in>’:
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_3x3_winograd_int8.h:4931:64: error: last argument must be scale 1, 2, 4, 8
                         __m256i _val0_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)r0, _vindex, sizeof(signed char)), _sindex88);
                                                                ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_3x3_winograd_int8.h:4955:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val5_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)(r0 + 5), _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_3x3_winograd_int8.h:4950:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val4_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)(r0 + 4), _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_3x3_winograd_int8.h:4945:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val3_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)(r0 + 3), _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_3x3_winograd_int8.h:4940:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val2_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)(r0 + 2), _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
/home/llhe/rscratch/workSpace/ncnnAcc/SW/ncnn/src/layer/x86/convolution_3x3_winograd_int8.h:4935:68: error: last argument must be scale 1, 2, 4, 8
                             __m256i _val1_32 = _mm256_shuffle_epi8(_mm256_i32gather_epi32((const int*)(r0 + 1), _vindex, sizeof(signed char)), _sindex88);
                                                                    ^
src/CMakeFiles/ncnn.dir/build.make:1565: recipe for target 'src/CMakeFiles/ncnn.dir/layer/x86/convolution_x86_avx2.cpp.o' failed
make[2]: *** [src/CMakeFiles/ncnn.dir/layer/x86/convolution_x86_avx2.cpp.o] Error 1
make[2]: *** 正在等待未完成的任务....
CMakeFiles/Makefile2:323: recipe for target 'src/CMakeFiles/ncnn.dir/all' failed
make[1]: *** [src/CMakeFiles/ncnn.dir/all] Error 2
Makefile:135: recipe for target 'all' failed
make: *** [all] Error 2
nihui commented 10 months ago

https://github.com/Tencent/ncnn/pull/5326

nihui commented 10 months ago

fixed in https://github.com/Tencent/ncnn/commit/d38bdbdb84698f990595bea8be08b514510b6c76 Thanks for your report