Browse Source

add -mavx512bw flag for avx512 build (#3671)

tags/20220420
nihui GitHub 4 years ago
parent
commit
a9c59bb93c
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 5 deletions
  1. +2
    -2
      CMakeLists.txt
  2. +2
    -2
      cmake/ncnn_add_layer.cmake
  3. +1
    -1
      src/CMakeLists.txt

+ 2
- 2
CMakeLists.txt View File

@@ -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 <immintrin.h>\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 <immintrin.h>\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)


+ 2
- 2
cmake/ncnn_add_layer.cmake View File

@@ -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")


+ 1
- 1
src/CMakeLists.txt View File

@@ -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()


Loading…
Cancel
Save