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-25 15:50:58 +08:00
|
|
|
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)
|
2020-04-14 22:52:24 +08:00
|
|
|
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)
|
2020-02-25 15:50:58 +08:00
|
|
|
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()
|