From: @zhanyuan1 Reviewed-by: @zhaizhiqiang,@guoqi1024 Signed-off-by: @zhaizhiqiangpull/15164/MERGE
| @@ -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}" | CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_GPU=ON -DUSE_CUDA=ON -DCUDA_PATH=$CUDA_PATH -DMS_REQUIRE_CUDA_VERSION=${CUDA_VERSION}" | ||||
| fi | fi | ||||
| if [[ "X$ENABLE_CPU" = "Xon" ]]; then | 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 | fi | ||||
| if [[ "X$COMPILE_MINDDATA" = "Xon" ]]; then | if [[ "X$COMPILE_MINDDATA" = "Xon" ]]; then | ||||
| CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_MINDDATA=ON" | CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_MINDDATA=ON" | ||||
| @@ -173,6 +173,11 @@ if(ENABLE_CPU) | |||||
| DESTINATION ${INSTALL_LIB_DIR} | DESTINATION ${INSTALL_LIB_DIR} | ||||
| COMPONENT mindspore | COMPONENT mindspore | ||||
| ) | ) | ||||
| install( | |||||
| TARGETS nnacl | |||||
| DESTINATION ${INSTALL_LIB_DIR} | |||||
| COMPONENT mindspore | |||||
| ) | |||||
| endif() | endif() | ||||
| if(ENABLE_MPI) | if(ENABLE_MPI) | ||||
| @@ -7,15 +7,13 @@ if(ENABLE_CPU) | |||||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}/backend/kernel_compiler/cpu) | include_directories(${CMAKE_CURRENT_SOURCE_DIR}/backend/kernel_compiler/cpu) | ||||
| if("${X86_64_SIMD}" STREQUAL "sse") | if("${X86_64_SIMD}" STREQUAL "sse") | ||||
| add_compile_definitions(ENABLE_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() | endif() | ||||
| if("${X86_64_SIMD}" STREQUAL "avx") | if("${X86_64_SIMD}" STREQUAL "avx") | ||||
| add_compile_definitions(ENABLE_SSE) | add_compile_definitions(ENABLE_SSE) | ||||
| add_compile_definitions(ENABLE_AVX) | 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() | endif() | ||||
| add_subdirectory(backend/kernel_compiler/cpu/nnacl) | |||||
| endif() | endif() | ||||
| if(ENABLE_ACL) | if(ENABLE_ACL) | ||||
| @@ -415,7 +413,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Darwin") | |||||
| endif() | endif() | ||||
| if(ENABLE_CPU) | 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() | endif() | ||||
| if(ENABLE_MINDDATA) | if(ENABLE_MINDDATA) | ||||
| @@ -29,30 +29,6 @@ if(ENABLE_D) | |||||
| endif() | endif() | ||||
| if(ENABLE_CPU) | 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} | file(GLOB CPU_SRC_LIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} | ||||
| "cpu/*.cc" | "cpu/*.cc" | ||||
| "cpu/mkldnn/*.cc" | "cpu/mkldnn/*.cc" | ||||
| @@ -129,7 +105,7 @@ if(ENABLE_GPU) | |||||
| # add_library(_mindspore_kernel_cuda_obj OBJECT ${CUDA_SRC_LIST}) | # add_library(_mindspore_kernel_cuda_obj OBJECT ${CUDA_SRC_LIST}) | ||||
| endif() | 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) | 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}) | ${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) | if("${CMAKE_BUILD_TYPE}" STREQUAL "Release" AND DEFINED ARCHS) | ||||
| set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstrict-aliasing \ | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstrict-aliasing \ | ||||
| -ffunction-sections -fdata-sections -ffast-math -Wno-shorten-64-to-32") | -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() | endif() | ||||
| if("${CMAKE_BUILD_TYPE}" STREQUAL "Release" AND NOT DEFINED ARCHS) | if("${CMAKE_BUILD_TYPE}" STREQUAL "Release" AND NOT DEFINED ARCHS) | ||||
| set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fomit-frame-pointer -fstrict-aliasing \ | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fomit-frame-pointer -fstrict-aliasing \ | ||||
| -ffunction-sections -fdata-sections -ffast-math") | -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() | ||||
| endif() | endif() | ||||
| if(ENABLE_CPU) | |||||
| set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") | |||||
| endif() | |||||
| if("${X86_64_SIMD}" STREQUAL "avx") | 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() | endif() | ||||
| ########################### files ########################### | ########################### files ########################### | ||||
| @@ -63,10 +64,16 @@ endif() | |||||
| ########################### build nnacl static library ######################## | ########################### build nnacl static library ######################## | ||||
| string(REPLACE "-fvisibility=hidden" "-fvisibility=default" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") | 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_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 ######################## | ########################### arm fp16 build optimize library ######################## | ||||
| if(ENABLE_FP16) | if(ENABLE_FP16) | ||||