|
@@ -59,7 +59,7 @@ option(MGE_WITH_ROCM "Enable ROCM support" OFF) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(NOT ${MGE_BIN_REDUCE} STREQUAL "") |
|
|
if(NOT ${MGE_BIN_REDUCE} STREQUAL "") |
|
|
message("build with BIN REDUCE") |
|
|
|
|
|
|
|
|
message(STATUS "build with BIN REDUCE") |
|
|
if(MGE_WITH_MINIMUM_SIZE) |
|
|
if(MGE_WITH_MINIMUM_SIZE) |
|
|
set(MGE_ENABLE_RTTI OFF) |
|
|
set(MGE_ENABLE_RTTI OFF) |
|
|
set(MGE_ENABLE_LOGGING OFF) |
|
|
set(MGE_ENABLE_LOGGING OFF) |
|
@@ -73,14 +73,14 @@ if(NOT ${MGE_BIN_REDUCE} STREQUAL "") |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
if(MGE_WITH_MIDOUT_PROFILE) |
|
|
if(MGE_WITH_MIDOUT_PROFILE) |
|
|
message("build with MIDOUT PROFILE") |
|
|
|
|
|
|
|
|
message(STATUS "build with MIDOUT PROFILE") |
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMIDOUT_PROFILING") |
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMIDOUT_PROFILING") |
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DMIDOUT_PROFILING") |
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DMIDOUT_PROFILING") |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
if (APPLE) |
|
|
if (APPLE) |
|
|
set (BUILD_SHARED_LIBS OFF) |
|
|
set (BUILD_SHARED_LIBS OFF) |
|
|
message("build static for xcode framework require") |
|
|
|
|
|
|
|
|
message(STATUS "build static for xcode framework require") |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
if (MGE_USE_SYSTEM_LIB) |
|
|
if (MGE_USE_SYSTEM_LIB) |
|
@@ -92,8 +92,8 @@ if (MGB_WITH_FLATBUFFERS) |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
if(CMAKE_TOOLCHAIN_FILE) |
|
|
if(CMAKE_TOOLCHAIN_FILE) |
|
|
message("We are cross compiling.") |
|
|
|
|
|
message("config FLATBUFFERS_FLATC_EXECUTABLE to: ${PROJECT_SOURCE_DIR}/build_dir/host_flatc/install/bin/flatc") |
|
|
|
|
|
|
|
|
message(STATUS "We are cross compiling.") |
|
|
|
|
|
message(STATUS "config FLATBUFFERS_FLATC_EXECUTABLE to: ${PROJECT_SOURCE_DIR}/build_dir/host_flatc/install/bin/flatc") |
|
|
set(FLATBUFFERS_FLATC_EXECUTABLE "${PROJECT_SOURCE_DIR}/build_dir/host_flatc/install/bin/flatc") |
|
|
set(FLATBUFFERS_FLATC_EXECUTABLE "${PROJECT_SOURCE_DIR}/build_dir/host_flatc/install/bin/flatc") |
|
|
if(ANDROID_TOOLCHAIN_ROOT) |
|
|
if(ANDROID_TOOLCHAIN_ROOT) |
|
|
if(NOT "${ANDROID_ARCH_NAME}" STREQUAL "") |
|
|
if(NOT "${ANDROID_ARCH_NAME}" STREQUAL "") |
|
@@ -127,7 +127,7 @@ if(CMAKE_TOOLCHAIN_FILE) |
|
|
else() |
|
|
else() |
|
|
message(FATAL_ERROR "Unknown cross-compiling settings.") |
|
|
message(FATAL_ERROR "Unknown cross-compiling settings.") |
|
|
endif() |
|
|
endif() |
|
|
message("CONFIG MGE_ARCH TO ${MGE_ARCH}") |
|
|
|
|
|
|
|
|
message(STATUS "CONFIG MGE_ARCH TO ${MGE_ARCH}") |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
if(${MGE_ARCH} STREQUAL "AUTO") |
|
|
if(${MGE_ARCH} STREQUAL "AUTO") |
|
@@ -147,7 +147,7 @@ endif() |
|
|
if((${MGE_ARCH} STREQUAL "x86_64" OR ${MGE_ARCH} STREQUAL "i386" OR ${MGE_ARCH} STREQUAL "armv7" OR ${MGE_ARCH} STREQUAL "aarch64") AND NOT APPLE) |
|
|
if((${MGE_ARCH} STREQUAL "x86_64" OR ${MGE_ARCH} STREQUAL "i386" OR ${MGE_ARCH} STREQUAL "armv7" OR ${MGE_ARCH} STREQUAL "aarch64") AND NOT APPLE) |
|
|
option(MGE_ENABLE_CPUINFO "Build cpuinfo library for check runtime." ON) |
|
|
option(MGE_ENABLE_CPUINFO "Build cpuinfo library for check runtime." ON) |
|
|
if(MGE_ENABLE_CPUINFO) |
|
|
if(MGE_ENABLE_CPUINFO) |
|
|
message("-- Enable cpuinfo runtime check and little kernel optimize.") |
|
|
|
|
|
|
|
|
message(STATUS "Enable cpuinfo runtime check and little kernel optimize.") |
|
|
add_definitions(-DMGB_ENABLE_CPUINFO_CHECK) |
|
|
add_definitions(-DMGB_ENABLE_CPUINFO_CHECK) |
|
|
include(cmake/cpuinfo.cmake) |
|
|
include(cmake/cpuinfo.cmake) |
|
|
endif() |
|
|
endif() |
|
@@ -163,8 +163,8 @@ if(MSVC OR WIN32) |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
add_compile_definitions(NOMINMAX=1 _USE_MATH_DEFINES=1 WIN32=1) |
|
|
add_compile_definitions(NOMINMAX=1 _USE_MATH_DEFINES=1 WIN32=1) |
|
|
message("-- into windows build...") |
|
|
|
|
|
message("-- CMAKE_C_COMPILER_ID: ${CMAKE_C_COMPILER_ID}") |
|
|
|
|
|
|
|
|
message(STATUS "into windows build...") |
|
|
|
|
|
message(VERBOSE "CMAKE_C_COMPILER_ID: ${CMAKE_C_COMPILER_ID}") |
|
|
if (${CMAKE_C_COMPILER_ID} STREQUAL "Clang-cl") |
|
|
if (${CMAKE_C_COMPILER_ID} STREQUAL "Clang-cl") |
|
|
message(FATAL_ERROR "only support clang-cl for windows build, pls check detail: scripts/cmake-build/BUILD_README.md") |
|
|
message(FATAL_ERROR "only support clang-cl for windows build, pls check detail: scripts/cmake-build/BUILD_README.md") |
|
|
endif() |
|
|
endif() |
|
@@ -187,12 +187,12 @@ if(MSVC OR WIN32) |
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WIN_FLAGS}") |
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WIN_FLAGS}") |
|
|
|
|
|
|
|
|
#FIXME: fix halide JIT on windows |
|
|
#FIXME: fix halide JIT on windows |
|
|
message("-- disable jit, halide and mlir on windows host build...") |
|
|
|
|
|
|
|
|
message(STATUS "disable jit, halide and mlir on windows host build...") |
|
|
set(MGE_WITH_HALIDE OFF) |
|
|
set(MGE_WITH_HALIDE OFF) |
|
|
set(MGE_WITH_JIT OFF) |
|
|
set(MGE_WITH_JIT OFF) |
|
|
set(MGE_WITH_JIT_MLIR OFF) |
|
|
set(MGE_WITH_JIT_MLIR OFF) |
|
|
#FIXME: fix MegRay on windows |
|
|
#FIXME: fix MegRay on windows |
|
|
message("-- Disable distributed build on windows host build...") |
|
|
|
|
|
|
|
|
message(STATUS "Disable distributed build on windows host build...") |
|
|
set(MGE_WITH_DISTRIBUTED OFF) |
|
|
set(MGE_WITH_DISTRIBUTED OFF) |
|
|
else() |
|
|
else() |
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra") |
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra") |
|
@@ -209,7 +209,7 @@ endif() |
|
|
|
|
|
|
|
|
CHECK_CXX_COMPILER_FLAG(-fuse-ld=gold CXX_SUPPORT_GOLD) |
|
|
CHECK_CXX_COMPILER_FLAG(-fuse-ld=gold CXX_SUPPORT_GOLD) |
|
|
if(CXX_SUPPORT_GOLD AND NOT ANDROID AND NOT APPLE AND NOT MSVC AND NOT WIN32) |
|
|
if(CXX_SUPPORT_GOLD AND NOT ANDROID AND NOT APPLE AND NOT MSVC AND NOT WIN32) |
|
|
message("-- Using GNU gold linker.") |
|
|
|
|
|
|
|
|
message(STATUS "Using GNU gold linker.") |
|
|
set(MGE_COMMON_LINKER_FLAGS "-fuse-ld=gold") |
|
|
set(MGE_COMMON_LINKER_FLAGS "-fuse-ld=gold") |
|
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${MGE_COMMON_LINKER_FLAGS}") |
|
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${MGE_COMMON_LINKER_FLAGS}") |
|
|
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${MGE_COMMON_LINKER_FLAGS}") |
|
|
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${MGE_COMMON_LINKER_FLAGS}") |
|
@@ -249,12 +249,12 @@ endif() |
|
|
|
|
|
|
|
|
if(NOT MGE_WITH_CUDA) |
|
|
if(NOT MGE_WITH_CUDA) |
|
|
if(NOT MGE_ARCH STREQUAL "x86_64" AND NOT MGE_ARCH STREQUAL "i386") |
|
|
if(NOT MGE_ARCH STREQUAL "x86_64" AND NOT MGE_ARCH STREQUAL "i386") |
|
|
message("-- Disable JIT support, as the MGE_ARCH is not X86 and CUDA is not enabled.") |
|
|
|
|
|
|
|
|
message(STATUS "Disable JIT support, as the MGE_ARCH is not X86 and CUDA is not enabled.") |
|
|
set(MGE_WITH_JIT OFF) |
|
|
set(MGE_WITH_JIT OFF) |
|
|
set(MGE_WITH_JIT_MLIR OFF) |
|
|
set(MGE_WITH_JIT_MLIR OFF) |
|
|
endif() |
|
|
endif() |
|
|
set(MGE_WITH_HALIDE OFF) |
|
|
set(MGE_WITH_HALIDE OFF) |
|
|
message("-- Disable TensorRT support, as CUDA is not enabled.") |
|
|
|
|
|
|
|
|
message(STATUS "Disable TensorRT support, as CUDA is not enabled.") |
|
|
set(MGE_WITH_TRT OFF) |
|
|
set(MGE_WITH_TRT OFF) |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
@@ -299,14 +299,14 @@ if(MGE_BUILD_IMPERATIVE_RT) |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
if(NOT MGE_WITH_CUDA) |
|
|
if(NOT MGE_WITH_CUDA) |
|
|
message("-- Disable distributed support, as CUDA is not enabled.") |
|
|
|
|
|
|
|
|
message(STATUS "Disable distributed support, as CUDA is not enabled.") |
|
|
set(MGE_WITH_DISTRIBUTED OFF) |
|
|
set(MGE_WITH_DISTRIBUTED OFF) |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
if(MGE_INFERENCE_ONLY) |
|
|
if(MGE_INFERENCE_ONLY) |
|
|
message("-- Disable distributed support for inference only build.") |
|
|
|
|
|
|
|
|
message(STATUS "Disable distributed support for inference only build.") |
|
|
set(MGE_WITH_DISTRIBUTED OFF) |
|
|
set(MGE_WITH_DISTRIBUTED OFF) |
|
|
message("-- Disable imperative_rt python module for inference only build.") |
|
|
|
|
|
|
|
|
message(STATUS "Disable imperative_rt python module for inference only build.") |
|
|
set(MGE_BUILD_IMPERATIVE_RT OFF) |
|
|
set(MGE_BUILD_IMPERATIVE_RT OFF) |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
@@ -394,8 +394,8 @@ if(MGE_WITH_CUDA) |
|
|
if(MGE_WITH_TRT) |
|
|
if(MGE_WITH_TRT) |
|
|
if(MSVC OR WIN32) |
|
|
if(MSVC OR WIN32) |
|
|
list(APPEND MGE_CUDA_LIBS ${TRT_LIBRARY} ${CUDNN_LIBRARY}) |
|
|
list(APPEND MGE_CUDA_LIBS ${TRT_LIBRARY} ${CUDNN_LIBRARY}) |
|
|
message("-- windows TRT_LIBRARY: ${TRT_LIBRARY}") |
|
|
|
|
|
message("-- windows CUDNN_LIBRARY: ${CUDNN_LIBRARY}") |
|
|
|
|
|
|
|
|
message(STATUS "windows TRT_LIBRARY: ${TRT_LIBRARY}") |
|
|
|
|
|
message(STATUS "windows CUDNN_LIBRARY: ${CUDNN_LIBRARY}") |
|
|
else() |
|
|
else() |
|
|
list(APPEND MGE_CUDA_LIBS -Wl,--whole-archive libnvinfer libcudnn -Wl,--no-whole-archive) |
|
|
list(APPEND MGE_CUDA_LIBS -Wl,--whole-archive libnvinfer libcudnn -Wl,--no-whole-archive) |
|
|
endif() |
|
|
endif() |
|
@@ -513,7 +513,7 @@ find_program(CCACHE_BIN ccache) |
|
|
if(CCACHE_BIN) |
|
|
if(CCACHE_BIN) |
|
|
set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_BIN}) |
|
|
set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_BIN}) |
|
|
if(MGE_WITH_CUDA AND NOT ${CMAKE_VERSION} VERSION_LESS "3.10.0") |
|
|
if(MGE_WITH_CUDA AND NOT ${CMAKE_VERSION} VERSION_LESS "3.10.0") |
|
|
message("-- Using ccache as CMAKE_CUDA_COMPILER_LAUNCHER") |
|
|
|
|
|
|
|
|
message(STATUS "Using ccache as CMAKE_CUDA_COMPILER_LAUNCHER") |
|
|
set(CMAKE_CUDA_COMPILER_LAUNCHER ${CCACHE_BIN}) |
|
|
set(CMAKE_CUDA_COMPILER_LAUNCHER ${CCACHE_BIN}) |
|
|
endif() |
|
|
endif() |
|
|
endif() |
|
|
endif() |
|
@@ -571,7 +571,7 @@ IF(APPLE) |
|
|
set(CMAKE_USE_WIN32_THREADS_INIT 0) |
|
|
set(CMAKE_USE_WIN32_THREADS_INIT 0) |
|
|
set(CMAKE_USE_PTHREADS_INIT 1) |
|
|
set(CMAKE_USE_PTHREADS_INIT 1) |
|
|
set(THREADS_PREFER_PTHREAD_FLAG ON) |
|
|
set(THREADS_PREFER_PTHREAD_FLAG ON) |
|
|
message("-- disable jit, halide and mlir on macos host build...") |
|
|
|
|
|
|
|
|
message(STATUS "disable jit, halide and mlir on macos host build...") |
|
|
set(MGE_WITH_HALIDE OFF) |
|
|
set(MGE_WITH_HALIDE OFF) |
|
|
set(MGE_WITH_JIT OFF) |
|
|
set(MGE_WITH_JIT OFF) |
|
|
set(MGE_WITH_JIT_MLIR OFF) |
|
|
set(MGE_WITH_JIT_MLIR OFF) |
|
@@ -648,7 +648,7 @@ endif() |
|
|
# Enable Naive |
|
|
# Enable Naive |
|
|
if(MGE_ARCH STREQUAL "naive") |
|
|
if(MGE_ARCH STREQUAL "naive") |
|
|
set(MEGDNN_NAIVE 1) |
|
|
set(MEGDNN_NAIVE 1) |
|
|
message(WARNING "MEGDNN_NAIVE is enabled; MegDNN performance is degraded.") |
|
|
|
|
|
|
|
|
message(STATUS "MEGDNN_NAIVE is enabled; MegDNN performance is degraded.") |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
if(MGE_ARCH STREQUAL "x86_64" OR MGE_ARCH STREQUAL "i386") |
|
|
if(MGE_ARCH STREQUAL "x86_64" OR MGE_ARCH STREQUAL "i386") |
|
@@ -685,7 +685,7 @@ if(MGE_ARCH STREQUAL "aarch64") |
|
|
set(MEGDNN_64_BIT 1) |
|
|
set(MEGDNN_64_BIT 1) |
|
|
set(MARCH "-march=armv8-a") |
|
|
set(MARCH "-march=armv8-a") |
|
|
if(MGE_ARMV8_2_FEATURE_FP16) |
|
|
if(MGE_ARMV8_2_FEATURE_FP16) |
|
|
message("Enable fp16 feature support in armv8.2") |
|
|
|
|
|
|
|
|
message(STATUS "Enable fp16 feature support in armv8.2") |
|
|
if(NOT ${MGE_DISABLE_FLOAT16}) |
|
|
if(NOT ${MGE_DISABLE_FLOAT16}) |
|
|
set(MEGDNN_ENABLE_FP16_NEON 1) |
|
|
set(MEGDNN_ENABLE_FP16_NEON 1) |
|
|
endif() |
|
|
endif() |
|
@@ -693,7 +693,7 @@ if(MGE_ARCH STREQUAL "aarch64") |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
if(MGE_ARMV8_2_FEATURE_DOTPROD) |
|
|
if(MGE_ARMV8_2_FEATURE_DOTPROD) |
|
|
message("Enable dotprod feature support in armv8.2") |
|
|
|
|
|
|
|
|
message(STATUS "Enable dotprod feature support in armv8.2") |
|
|
if(MGE_ARMV8_2_FEATURE_FP16) |
|
|
if(MGE_ARMV8_2_FEATURE_FP16) |
|
|
set(MARCH "-march=armv8.2-a+fp16+dotprod") |
|
|
set(MARCH "-march=armv8.2-a+fp16+dotprod") |
|
|
else() |
|
|
else() |
|
@@ -786,7 +786,7 @@ endif() |
|
|
|
|
|
|
|
|
if(MGE_BUILD_IMPERATIVE_RT) |
|
|
if(MGE_BUILD_IMPERATIVE_RT) |
|
|
add_subdirectory(imperative) |
|
|
add_subdirectory(imperative) |
|
|
message("-- Enable imperative python wrapper runtime") |
|
|
|
|
|
|
|
|
message(STATUS "Enable imperative python wrapper runtime") |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
if(MGE_WITH_TEST AND MGE_ENABLE_RTTI) |
|
|
if(MGE_WITH_TEST AND MGE_ENABLE_RTTI) |
|
@@ -860,7 +860,7 @@ if(MSVC OR WIN32) |
|
|
if(${CompilerFlag} MATCHES "/MD") |
|
|
if(${CompilerFlag} MATCHES "/MD") |
|
|
string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}") |
|
|
string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}") |
|
|
set(${CompilerFlag} "${${CompilerFlag}}" CACHE STRING "msvc compiler flags" FORCE) |
|
|
set(${CompilerFlag} "${${CompilerFlag}}" CACHE STRING "msvc compiler flags" FORCE) |
|
|
message("MSVC flags: ${CompilerFlag}:${${CompilerFlag}}") |
|
|
|
|
|
|
|
|
message(VERBOSE "MSVC flags: ${CompilerFlag}:${${CompilerFlag}}") |
|
|
endif() |
|
|
endif() |
|
|
endforeach() |
|
|
endforeach() |
|
|
endif() |
|
|
endif() |
|
|