diff --git a/CMakeLists.txt b/CMakeLists.txt index 19d500e53..282e57468 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -241,12 +241,12 @@ else() check_cxx_compiler_flag("-mxop" NCNN_COMPILER_SUPPORT_X86_XOP) check_cxx_compiler_flag("-mf16c" NCNN_COMPILER_SUPPORT_X86_F16C) check_cxx_compiler_flag("-mfma -mf16c -mavx2" NCNN_COMPILER_SUPPORT_X86_AVX2) - check_cxx_compiler_flag("-mfma -mf16c -mavx512f -mavx512vl" NCNN_COMPILER_SUPPORT_X86_AVX512) + check_cxx_compiler_flag("-mfma -mf16c -mavx512f -mavx512bw -mavx512vl" NCNN_COMPILER_SUPPORT_X86_AVX512) set(CMAKE_REQUIRED_FLAGS "-mfma -mf16c -mavx2 -mavxvnni") check_cxx_source_compiles("#include \nint main() { __m256i _s, _a, _b; _s = _mm256_dpwssd_epi32(_s, _a, _b); return 0; }" NCNN_COMPILER_SUPPORT_X86_AVX_VNNI) - set(CMAKE_REQUIRED_FLAGS "-mfma -mf16c -mavx512f -mavx512vl -mavx512vnni") + set(CMAKE_REQUIRED_FLAGS "-mfma -mf16c -mavx512f -mavx512bw -mavx512vl -mavx512vnni") check_cxx_source_compiles("#include \nint main() { __m256i _s, _a, _b; _s = _mm256_dpwssd_epi32(_s, _a, _b); return 0; }" NCNN_COMPILER_SUPPORT_X86_AVX512_VNNI) unset(CMAKE_REQUIRED_FLAGS) diff --git a/cmake/ncnn_add_layer.cmake b/cmake/ncnn_add_layer.cmake index d60a368cc..e00e0f89c 100644 --- a/cmake/ncnn_add_layer.cmake +++ b/cmake/ncnn_add_layer.cmake @@ -186,7 +186,7 @@ macro(ncnn_add_layer class) endif() else() if(NCNN_AVX512) - ncnn_add_arch_opt_layer(${class} avx512 "-mavx512f -mavx512vl -mfma -mf16c") + ncnn_add_arch_opt_layer(${class} avx512 "-mavx512f -mavx512bw -mavx512vl -mfma -mf16c") endif() if(NCNN_FMA) ncnn_add_arch_opt_layer(${class} fma "-mavx -mfma") @@ -195,7 +195,7 @@ macro(ncnn_add_layer class) ncnn_add_arch_opt_layer(${class} avx "-mavx") endif() if(NCNN_AVX512VNNI) - ncnn_add_arch_opt_source(${class} avx512vnni "-mavx512f -mavx512vl -mfma -mf16c -mavx512vnni") + ncnn_add_arch_opt_source(${class} avx512vnni "-mavx512f -mavx512bw -mavx512vl -mfma -mf16c -mavx512vnni") endif() if(NCNN_AVXVNNI) ncnn_add_arch_opt_source(${class} avxvnni "-mavx2 -mfma -mf16c -mavxvnni") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bfe168b4c..58ab120b8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -340,7 +340,7 @@ if(NCNN_TARGET_ARCH STREQUAL "x86") target_compile_options(ncnn PRIVATE /D__AVX512VNNI__) endif() else() - target_compile_options(ncnn PRIVATE -mavx512f -mavx512vl -mfma -mf16c) + target_compile_options(ncnn PRIVATE -mavx512f -mavx512bw -mavx512vl -mfma -mf16c) if(NCNN_AVX512VNNI) target_compile_options(ncnn PRIVATE -mavx512vnni) endif()