forked from mindspore-Ecosystem/mindspore
[CPU] Build nnacl as a shared library
This commit is contained in:
parent
6e5a4a3f1b
commit
00631eb5a0
2
build.sh
2
build.sh
|
@ -467,7 +467,7 @@ build_mindspore()
|
|||
CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_GPU=ON -DUSE_CUDA=ON -DCUDA_PATH=$CUDA_PATH -DMS_REQUIRE_CUDA_VERSION=${CUDA_VERSION}"
|
||||
fi
|
||||
if [[ "X$ENABLE_CPU" = "Xon" ]]; then
|
||||
CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_CPU=ON"
|
||||
CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_CPU=ON -DX86_64_SIMD=${X86_64_SIMD}"
|
||||
fi
|
||||
if [[ "X$COMPILE_MINDDATA" = "Xon" ]]; then
|
||||
CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_MINDDATA=ON"
|
||||
|
|
|
@ -173,6 +173,11 @@ if(ENABLE_CPU)
|
|||
DESTINATION ${INSTALL_LIB_DIR}
|
||||
COMPONENT mindspore
|
||||
)
|
||||
install(
|
||||
TARGETS nnacl
|
||||
DESTINATION ${INSTALL_LIB_DIR}
|
||||
COMPONENT mindspore
|
||||
)
|
||||
endif()
|
||||
|
||||
if(ENABLE_MPI)
|
||||
|
|
|
@ -7,15 +7,13 @@ if(ENABLE_CPU)
|
|||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/backend/kernel_compiler/cpu)
|
||||
if("${X86_64_SIMD}" STREQUAL "sse")
|
||||
add_compile_definitions(ENABLE_SSE)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.2")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2")
|
||||
endif()
|
||||
if("${X86_64_SIMD}" STREQUAL "avx")
|
||||
add_compile_definitions(ENABLE_SSE)
|
||||
add_compile_definitions(ENABLE_AVX)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.1 -mavx -mavx2")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1 -mavx -mavx2")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx2")
|
||||
endif()
|
||||
add_subdirectory(backend/kernel_compiler/cpu/nnacl)
|
||||
endif()
|
||||
|
||||
if(ENABLE_ACL)
|
||||
|
@ -415,7 +413,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
|||
endif()
|
||||
|
||||
if(ENABLE_CPU)
|
||||
target_link_libraries(_c_expression PRIVATE mindspore::dnnl mindspore::mkldnn)
|
||||
target_link_libraries(_c_expression PRIVATE mindspore::dnnl mindspore::mkldnn nnacl)
|
||||
endif()
|
||||
|
||||
if(ENABLE_MINDDATA)
|
||||
|
|
|
@ -29,30 +29,6 @@ if(ENABLE_D)
|
|||
endif()
|
||||
|
||||
if(ENABLE_CPU)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
|
||||
file(GLOB NNACL_C_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
"cpu/nnacl/*.c"
|
||||
"cpu/nnacl/fp32/*.c"
|
||||
"cpu/nnacl/int8/*.c"
|
||||
"cpu/nnacl/infer/*.c"
|
||||
"cpu/nnacl/base/*.c"
|
||||
)
|
||||
if("${X86_64_SIMD}" STREQUAL "sse")
|
||||
file(GLOB NNACL_ASM_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
"cpu/nnacl/intrinsics/sse/*.c"
|
||||
)
|
||||
set_property(SOURCE ${NNACL_ASM_SRC} PROPERTY LANGUAGE C)
|
||||
endif()
|
||||
if("${X86_64_SIMD}" STREQUAL "avx")
|
||||
file(GLOB NNACL_ASM_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
"cpu/nnacl/intrinsics/sse/*.c"
|
||||
"cpu/nnacl/intrinsics/avx/*.c"
|
||||
"cpu/nnacl/assembly/avx/*.S"
|
||||
)
|
||||
set_property(SOURCE ${NNACL_ASM_SRC} PROPERTY LANGUAGE C)
|
||||
endif()
|
||||
set(NNACL_SRC ${NNACL_C_SRC} ${NNACL_ASM_SRC})
|
||||
|
||||
file(GLOB CPU_SRC_LIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
"cpu/*.cc"
|
||||
"cpu/mkldnn/*.cc"
|
||||
|
@ -129,7 +105,7 @@ if(ENABLE_GPU)
|
|||
# add_library(_mindspore_kernel_cuda_obj OBJECT ${CUDA_SRC_LIST})
|
||||
endif()
|
||||
|
||||
set_property(SOURCE ${KERNEL_SRC_LIST} ${NNACL_SRC} ${CPU_SRC_LIST} ${GPU_SRC_LIST} ${D_SRC_LIST}
|
||||
set_property(SOURCE ${KERNEL_SRC_LIST} ${CPU_SRC_LIST} ${GPU_SRC_LIST} ${D_SRC_LIST}
|
||||
PROPERTY COMPILE_DEFINITIONS SUBMODULE_ID=mindspore::SubModuleId::SM_KERNEL)
|
||||
add_library(_mindspore_backend_kernel_compiler_obj OBJECT ${KERNEL_SRC_LIST} ${NNACL_SRC} ${CPU_SRC_LIST}
|
||||
add_library(_mindspore_backend_kernel_compiler_obj OBJECT ${KERNEL_SRC_LIST} ${CPU_SRC_LIST}
|
||||
${GPU_SRC_LIST} ${D_SRC_LIST} ${QUANTUM_SRC_LIST})
|
||||
|
|
|
@ -7,19 +7,20 @@ if(PLATFORM_ARM32 OR PLATFORM_ARM64)
|
|||
if("${CMAKE_BUILD_TYPE}" STREQUAL "Release" AND DEFINED ARCHS)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstrict-aliasing \
|
||||
-ffunction-sections -fdata-sections -ffast-math -Wno-shorten-64-to-32")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstrict-aliasing \
|
||||
-ffunction-sections -fdata-sections -ffast-math -Wno-shorten-64-to-32")
|
||||
endif()
|
||||
if("${CMAKE_BUILD_TYPE}" STREQUAL "Release" AND NOT DEFINED ARCHS)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fomit-frame-pointer -fstrict-aliasing \
|
||||
-ffunction-sections -fdata-sections -ffast-math")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fomit-frame-pointer -fstrict-aliasing \
|
||||
-ffunction-sections -fdata-sections -ffast-math")
|
||||
endif()
|
||||
endif()
|
||||
if(ENABLE_CPU)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
|
||||
endif()
|
||||
if("${X86_64_SIMD}" STREQUAL "avx")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1 -mavx -mavx2")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.1 -mavx -mavx2")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.1 -mavx -mavx2 -mfma")
|
||||
endif()
|
||||
if("${X86_64_SIMD}" STREQUAL "sse")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.1")
|
||||
endif()
|
||||
|
||||
########################### files ###########################
|
||||
|
@ -63,10 +64,16 @@ endif()
|
|||
|
||||
########################### build nnacl static library ########################
|
||||
string(REPLACE "-fvisibility=hidden" "-fvisibility=default" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
|
||||
add_library(nnacl STATIC ${KERNEL_SRC} ${TRAIN_SRC} ${ASSEMBLY_SRC})
|
||||
if(ENABLE_CPU)
|
||||
add_library(nnacl SHARED ${KERNEL_SRC} ${TRAIN_SRC} ${ASSEMBLY_SRC})
|
||||
else()
|
||||
add_library(nnacl STATIC ${KERNEL_SRC} ${TRAIN_SRC} ${ASSEMBLY_SRC})
|
||||
endif()
|
||||
add_library(nnacl_mid OBJECT ${KERNEL_SRC} ${TRAIN_SRC} ${ASSEMBLY_SRC})
|
||||
add_dependencies(nnacl fbs_src)
|
||||
add_dependencies(nnacl_mid fbs_src)
|
||||
if(NOT ENABLE_CPU)
|
||||
add_dependencies(nnacl fbs_src)
|
||||
add_dependencies(nnacl_mid fbs_src)
|
||||
endif()
|
||||
|
||||
########################### arm fp16 build optimize library ########################
|
||||
if(ENABLE_FP16)
|
||||
|
|
Loading…
Reference in New Issue