MNN/source/backend/cpu/x86_x64/CMakeLists.txt

34 lines
1.5 KiB
CMake
Raw Normal View History

2020-02-26 09:57:17 +08:00
if(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64)|(X86_64)|(x64)|(X64)|(amd64)|(AMD64)|(i686)")
2019-12-27 22:16:57 +08:00
if (APPLE)
add_definitions(-fno-stack-check) # Workaround a Xcode 11.X bug
endif()
2020-02-26 09:57:17 +08:00
message(STATUS "${CMAKE_SYSTEM_PROCESSOR}: Open SSE")
2019-12-27 22:16:57 +08:00
add_definitions(-DMNN_USE_SSE)
2020-07-04 01:21:30 +08:00
FILE(GLOB MNN_X8664_SRC ${CMAKE_CURRENT_LIST_DIR}/*)
2020-11-05 16:41:56 +08:00
if (MSVC)
FILE(GLOB MNN_AVX_SRC ${CMAKE_CURRENT_LIST_DIR}/avx/*.cpp)
else()
FILE(GLOB MNN_AVX_SRC ${CMAKE_CURRENT_LIST_DIR}/avx/*)
2021-01-06 16:29:37 +08:00
if (MNN_AVX512)
FILE(GLOB MNN_AVX512_SRC ${CMAKE_CURRENT_LIST_DIR}/avx512/*)
add_library(MNNAVX512 OBJECT ${MNN_AVX512_SRC})
target_compile_options(MNNAVX512 PRIVATE -m64 -mavx512f -mavx512dq -mavx512vl -mavx512bw -mfma -DMNN_X86_USE_ASM -mavx512vnni)
endif()
2020-11-05 16:41:56 +08:00
endif()
2020-05-13 16:27:53 +08:00
FILE(GLOB MNN_SSE_SRC ${CMAKE_CURRENT_LIST_DIR}/sse/*)
2019-12-27 22:16:57 +08:00
add_library(MNNX8664 OBJECT ${MNN_X8664_SRC})
2020-01-17 10:20:15 +08:00
add_library(MNNAVX OBJECT ${MNN_AVX_SRC})
add_library(MNNSSE OBJECT ${MNN_SSE_SRC})
2020-11-05 16:41:56 +08:00
if(MSVC)
target_compile_options(MNNAVX PRIVATE /arch:AVX)
2020-01-17 10:20:15 +08:00
else()
target_compile_options(MNNSSE PRIVATE -msse4.1)
2020-11-05 16:41:56 +08:00
target_compile_options(MNNAVX PRIVATE -mavx2 -mfma -DMNN_X86_USE_ASM)
endif()
2021-01-06 16:29:37 +08:00
list(APPEND MNN_OBJECTS_TO_LINK $<TARGET_OBJECTS:MNNX8664> $<TARGET_OBJECTS:MNNAVX> $<TARGET_OBJECTS:MNNSSE>)
if (MNN_AVX512)
target_compile_options(MNNX8664 PRIVATE -DMNN_AVX512)
list(APPEND MNN_OBJECTS_TO_LINK $<TARGET_OBJECTS:MNNAVX512>)
endif()
2019-12-27 22:16:57 +08:00
endif()