|
- /**
- * \file src/megbrain_build_config.h.in
- * MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
- *
- * Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- */
-
- #ifndef _HEADER_MGB_BUILD_CONFIG
- #define _HEADER_MGB_BUILD_CONFIG
-
- #cmakedefine01 MGB_CUDA
- #cmakedefine01 MGB_ROCM
- #cmakedefine01 MGB_CAMBRICON
- #cmakedefine01 MGB_ATLAS
- #cmakedefine01 MGB_ASSERT_LOC
- #cmakedefine01 MGB_ENABLE_DEBUG_UTIL
- #cmakedefine01 MGB_ENABLE_LOGGING
- #cmakedefine01 MGB_ENABLE_GRAD
- #cmakedefine01 MGB_ENABLE_CPUINFO
- #cmakedefine01 MGB_ENABLE_DOT
- #cmakedefine01 MGB_VERBOSE_TYPEINFO_NAME
- #cmakedefine01 MGB_BUILD_SLIM_SERVING
- #cmakedefine01 MGB_ENABLE_EXCEPTION
- #cmakedefine01 MGB_JIT
- #cmakedefine01 MGB_JIT_MLIR
- #cmakedefine01 MGB_JIT_HALIDE
- #cmakedefine01 MGB_ENABLE_TENSOR_RT
- #cmakedefine01 MGB_ENABLE_JSON
- #cmakedefine01 MGB_HAVE_THREAD
- #cmakedefine01 MGB_ENABLE_OPR_MM
- #cmakedefine01 MGB_ENABLE_FBS_SERIALIZATION
- #cmakedefine01 MGB_IS_DEV
- #cmakedefine01 MGB_CUSTOM_OP
- // DNN related flags
- // Platform macro's
- #cmakedefine01 MEGDNN_WITH_CUDA
-
- #cmakedefine01 MEGDNN_WITH_ROCM
- #cmakedefine01 MEGDNN_ARMV7
- #cmakedefine01 MEGDNN_AARCH64
- #cmakedefine01 MEGDNN_ENABLE_FP16_NEON
-
- #cmakedefine01 MEGDNN_X86_WITH_MKL
- #cmakedefine01 MEGDNN_X86_WITH_OPENBLAS
- #cmakedefine01 MEGDNN_X86_WITH_MKL_DNN
- #cmakedefine01 MEGDNN_ENABLE_RTTI
- #cmakedefine01 MEGDNN_ENABLE_LOGGING
- #cmakedefine01 MEGDNN_ENABLE_MANGLING
- #cmakedefine01 MEGDNN_ENABLE_EXCEPTIONS
- #cmakedefine01 MEGDNN_NAIVE
- #cmakedefine01 MEGDNN_X86
- #cmakedefine01 MEGDNN_X86_64
- #cmakedefine01 MEGDNN_64_BIT
- #cmakedefine01 MEGDNN_THREADS_512
- #cmakedefine01 MEGDNN_ENABLE_MULTI_THREADS
-
- // whether atlas is available
- #ifndef MGB_ATLAS
- #define MGB_ATLAS 0
- #endif
-
- // whether cuda is available
- #ifndef MGB_CUDA
- #define MGB_CUDA 1
- #endif
-
- // whether to include file/line location for assert message
- #ifndef MGB_ASSERT_LOC
- #define MGB_ASSERT_LOC 1
- #endif
-
- // whether to enable utils/debug.h and other debug methods
- #ifndef MGB_ENABLE_DEBUG_UTIL
- #define MGB_ENABLE_DEBUG_UTIL 1
- #endif
-
- // whether to enable logging
- #ifndef MGB_ENABLE_LOGGING
- #define MGB_ENABLE_LOGGING 1
- #endif
-
- // whether to enable registering opr grad functions
- #ifndef MGB_ENABLE_GRAD
- #define MGB_ENABLE_GRAD 1
- #endif
-
- // whether to enable cpuinfo
- #ifndef MGB_ENABLE_CPUINFO
- #define MGB_ENABLE_CPUINFO 1
- #endif
-
- //! use one MACRO indicate enable_arm_dotprod
- #if __ARM_FEATURE_DOTPROD
- #ifdef MGB_ENABLE_DOT
- #undef MGB_ENABLE_DOT
- #endif
- #define MGB_ENABLE_DOT 1
- #endif
-
- //! ENABLE MGB DOT should enable CPUINFO
- #if MGB_ENABLE_DOT
- #if !defined(MGB_ENABLE_CPUINFO) || !MGB_ENABLE_CPUINFO
- #ifdef MGB_ENABLE_CPUINFO
- #undef MGB_ENABLE_CPUINFO
- #endif
- #define MGB_ENABLE_CPUINFO 1
- #endif
- #endif
-
- //! IOS disabled cpuinfo and dotprod, cpuinfo has some problem on ios
- #ifdef IOS
- #undef MGB_ENABLE_CPUINFO
- #define MGB_ENABLE_CPUINFO 0
- #undef MGB_ENABLE_DOT
- #endif
-
- // whether to include actual class name in mgb::Typeinfo object; if this is
- // disabled, mgb::serialization::OprRegistry::find_opr_by_name would not work.
- #ifndef MGB_VERBOSE_TYPEINFO_NAME
- #define MGB_VERBOSE_TYPEINFO_NAME 1
- #endif
-
- // whether to enbale configuing megbrain internals through env vars
- #ifndef MGB_ENABLE_GETENV
- #define MGB_ENABLE_GETENV MGB_ASSERT_LOC
- #endif
-
- // whether to remove unnecessary features when used for serving
- #ifndef MGB_BUILD_SLIM_SERVING
- #define MGB_BUILD_SLIM_SERVING 0
- #endif
-
- // whether to enable exception
- #ifndef MGB_ENABLE_EXCEPTION
- #if __EXCEPTIONS
- #define MGB_ENABLE_EXCEPTION 1
- #else
- #define MGB_ENABLE_EXCEPTION 0
- #endif
- #endif
-
- // whether <thread> is available and usable
- #ifndef MGB_HAVE_THREAD
- #define MGB_HAVE_THREAD 1
- #endif
-
- // whether to trade thread safety for memory usage
- #ifndef MGB_THREAD_SAFE
- #define MGB_THREAD_SAFE MGB_HAVE_THREAD
- #endif
-
- // whether to enable JIT
- #ifndef MGB_JIT
- #define MGB_JIT 1
- #endif
- #ifndef MGB_JIT_HALIDE
- #define MGB_JIT_HALIDE 0
- #endif
-
- #ifndef MGB_CUSTOM_OP
- #define MGB_CUSTOM_OP 0
- #endif
-
- #ifndef MEGDNN_WITH_CAMBRICON
- #define MEGDNN_WITH_CAMBRICON 0
- #endif
-
- #ifndef MGB_CAMBRICON
- #define MGB_CAMBRICON MEGDNN_WITH_CAMBRICON
- #endif
-
- // whether to enable TensorRT support
- #ifndef MGB_ENABLE_TENSOR_RT
- #define MGB_ENABLE_TENSOR_RT MGB_CUDA
- #endif
-
- // whether to enable fastrun profile
- #ifndef MGB_ENABLE_FASTRUN
- #define MGB_ENABLE_FASTRUN 1
- #endif
-
- /* ================= following are more finegrind controls ================= */
-
- // whether to enable json dumper
- #ifndef MGB_ENABLE_JSON
- #define MGB_ENABLE_JSON !MGB_BUILD_SLIM_SERVING
- #endif
-
- // whether to enable distributed communication
- #ifndef MGB_ENABLE_OPR_MM
- #define MGB_ENABLE_OPR_MM 0
- #endif
-
- /* ================= DNN related flags ================= */
-
- // whether to use mkl lib
- #ifndef MEGDNN_X86_WITH_MKL
- #define MEGDNN_X86_WITH_MKL 0
- #endif
-
- // whether to enable rtti
- #ifndef MEGDNN_ENABLE_RTTI
- #define MEGDNN_ENABLE_RTTI 1
- #endif
-
- // whether to enable mangling
- #ifndef MEGDNN_ENABLE_MANGLING
- #define MEGDNN_ENABLE_MANGLING !MEGDNN_ENABLE_RTTI
- #endif
-
- // whether to enable logging
- #ifndef MEGDNN_ENABLE_LOGGING
- #define MEGDNN_ENABLE_LOGGING MGB_ENABLE_LOGGING
- #endif
-
- // whether to enable exception
- #ifndef MEGDNN_ENABLE_EXCEPTIONS
- #define MEGDNN_ENABLE_EXCEPTIONS MGB_ENABLE_EXCEPTION
- #endif
-
- // whether to build naive
- #ifndef MEGDNN_NAIVE
- #define MEGDNN_NAIVE 0
- #endif
-
- // whether to build x86
- #ifndef MEGDNN_X86
- #define MEGDNN_X86 0
- #endif
-
- // whether to use cuda thread 512
- #ifndef MEGDNN_THREADS_512
- #define MEGDNN_THREADS_512 0
- #endif
-
- // whether to enable intra-op multi threads
- #ifndef MEGDNN_ENABLE_MULTI_THREADS
- #define MEGDNN_ENABLE_MULTI_THREADS 1
- #endif
-
- #ifndef MEGDNN_X86_WITH_OPENBLAS
- #define MEGDNN_X86_WITH_OPENBLAS 0
- #endif
-
- #ifndef MEGDNN_X86_WITH_MKL_DNN
- #define MEGDNN_X86_WITH_MKL_DNN 0
- #endif
-
- #ifdef WIN32
- #ifdef MGE_DLL_EXPORT
- #define MGE_WIN_DECLSPEC_FUC __declspec(dllexport)
- #define MGE_WIN_DECLSPEC_DATA __declspec(dllexport)
- #elif defined(MGE_WINDOWS_STATIC_LINK)
- #define MGE_WIN_DECLSPEC_FUC
- #define MGE_WIN_DECLSPEC_DATA
- #else
- #define MGE_WIN_DECLSPEC_FUC
- #define MGE_WIN_DECLSPEC_DATA __declspec(dllimport)
- #endif
- #else
- #define MGE_WIN_DECLSPEC_FUC
- #define MGE_WIN_DECLSPEC_DATA
- #endif
-
- #endif // _HEADER_MGB_BUILD_CONFIG
|