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

28 lines
1.2 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()
option(MNN_OPTIMIZE_INT8_SSE "use sse to compute int8" OFF)
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/*)
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})
add_dependencies(MNNX8664 MNNAVX MNNSSE)
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()
2020-11-05 16:41:56 +08:00
target_compile_options(MNNSSE PRIVATE -msse4.1 -mfma)
target_compile_options(MNNAVX PRIVATE -mavx2 -mfma -DMNN_X86_USE_ASM)
target_compile_options(MNNX8664 PRIVATE -msse4.1 -DMNN_X86_USE_ASM)
endif()
2020-01-17 10:20:15 +08:00
list(APPEND MNN_OBJECTS_TO_LINK $<TARGET_OBJECTS:MNNX8664> $<TARGET_OBJECTS:MNNAVX> $<TARGET_OBJECTS:MNNSSE>)
2019-12-27 22:16:57 +08:00
endif()