diff --git a/BUCK.oss b/BUCK.oss index fb2e03ac8dd..13d5518801a 100644 --- a/BUCK.oss +++ b/BUCK.oss @@ -52,7 +52,7 @@ cxx_library( "**/*.pb.h", ], ), - compiler_flags = ['-Os', '-fexceptions', '-frtti', '-Wno-shadow', '-Wno-unknown-pragmas', '-Wno-unused-variable', '-Wno-sign-compare', '-Icaffe2', '-Imodules', '-DEIGEN_NO_DEBUG', '-DCAFFE2_USE_GOOGLE_GLOG','-DGEMMLOWP_ALLOW_SLOW_SCALAR_FALLBACK=1', '-DCAFFE2_IS_XPLAT_BUILD', '-DSTRIP_ERROR_MESSAGES', '-DUSE_INTERNAL_PTHREADPOOL_IMPL'], + compiler_flags = ['-Os', '-fexceptions', '-frtti', '-Wno-shadow', '-Wno-unknown-pragmas', '-Wno-unused-variable', '-Wno-sign-compare', '-Icaffe2', '-Imodules', '-DEIGEN_NO_DEBUG', '-DCAFFE2_USE_LITE_PROTO', '-DCAFFE2_USE_GOOGLE_GLOG', '-DCAFFE2_RNN_NO_TEXT_FORMAT', '-DGEMMLOWP_ALLOW_SLOW_SCALAR_FALLBACK=1', '-DCAFFE2_IS_XPLAT_BUILD', '-DSTRIP_ERROR_MESSAGES', '-DUSE_INTERNAL_PTHREADPOOL_IMPL', '-DCAFFE2_USE_HPTT'], preferred_linkage = "static", platform_preprocessor_flags = [['windows', ['-D_WINDOWS', '-D_WIN32', '-DWIN32', '-DNOMINMAX', '-D_CRT_SECURE_NO_WARNINGS', '-D_USE_MATH_DEFINES']], ['windows.*64$', ['-D_WIN64']]], preprocessor_flags = ['-DUSE_INTERNAL_PTHREADPOOL_IMPL'], diff --git a/buckbuild.bzl b/buckbuild.bzl index 0d0f56007ae..4954e10d561 100644 --- a/buckbuild.bzl +++ b/buckbuild.bzl @@ -246,6 +246,7 @@ def get_aten_preprocessor_flags(): ATEN_PREPROCESSOR_FLAGS = _COMMON_PREPROCESSOR_FLAGS + [ "-DCPU_CAPABILITY_DEFAULT", "-DCPU_CAPABILITY=DEFAULT", + "-DCAFFE2_USE_LITE_PROTO", "-DATEN_CUDNN_ENABLED_FBXPLAT=0", "-DATEN_MKLDNN_ENABLED_FBXPLAT=0", "-DATEN_MKLDNN_ACL_ENABLED_FBXPLAT=0", diff --git a/build.bzl b/build.bzl index 50cd7923493..8fd15f4e9c4 100644 --- a/build.bzl +++ b/build.bzl @@ -16,9 +16,11 @@ def define_targets(rules): src = "caffe2/core/macros.h.in", out = "caffe2/core/macros.h", definitions = [ + "CAFFE2_BUILD_SHARED_LIBS", "CAFFE2_PERF_WITH_AVX", "CAFFE2_PERF_WITH_AVX2", "CAFFE2_PERF_WITH_AVX512", + "CAFFE2_USE_EXCEPTION_PTR", "CAFFE2_USE_CUDNN", "USE_MKLDNN", "CAFFE2_USE_ITT", diff --git a/caffe2/core/macros.h.in b/caffe2/core/macros.h.in index bb38257d5bb..2497effd863 100644 --- a/caffe2/core/macros.h.in +++ b/caffe2/core/macros.h.in @@ -5,16 +5,25 @@ #pragma once +#cmakedefine CAFFE2_BUILD_SHARED_LIBS +#cmakedefine CAFFE2_FORCE_FALLBACK_CUDA_MPI #cmakedefine CAFFE2_HAS_MKL_DNN +#cmakedefine CAFFE2_HAS_MKL_SGEMM_PACK #cmakedefine CAFFE2_PERF_WITH_AVX #cmakedefine CAFFE2_PERF_WITH_AVX2 #cmakedefine CAFFE2_PERF_WITH_AVX512 +#cmakedefine CAFFE2_THREADPOOL_MAIN_IMBALANCE +#cmakedefine CAFFE2_THREADPOOL_STATS +#cmakedefine CAFFE2_USE_EXCEPTION_PTR +#cmakedefine CAFFE2_USE_ACCELERATE #cmakedefine CAFFE2_USE_CUDNN +#cmakedefine CAFFE2_USE_EIGEN_FOR_BLAS #cmakedefine CAFFE2_USE_FBCODE #cmakedefine CAFFE2_USE_GOOGLE_GLOG #cmakedefine CAFFE2_USE_LITE_PROTO #cmakedefine CAFFE2_USE_MKL #cmakedefine USE_MKLDNN +#cmakedefine CAFFE2_USE_NVTX #cmakedefine CAFFE2_USE_ITT #ifndef EIGEN_MPL2_ONLY @@ -43,13 +52,19 @@ {"USE_GLOO", "${USE_GLOO}"}, \ {"USE_NNPACK", "${USE_NNPACK}"}, \ {"USE_OPENMP", "${USE_OPENMP}"}, \ + {"FORCE_FALLBACK_CUDA_MPI", "${CAFFE2_FORCE_FALLBACK_CUDA_MPI}"}, \ {"HAS_MKL_DNN", "${CAFFE2_HAS_MKL_DNN}"}, \ + {"HAS_MKL_SGEMM_PACK", "${CAFFE2_HAS_MKL_SGEMM_PACK}"}, \ {"PERF_WITH_AVX", "${CAFFE2_PERF_WITH_AVX}"}, \ {"PERF_WITH_AVX2", "${CAFFE2_PERF_WITH_AVX2}"}, \ {"PERF_WITH_AVX512", "${CAFFE2_PERF_WITH_AVX512}"}, \ + {"USE_EXCEPTION_PTR", "${CAFFE2_USE_EXCEPTION_PTR}"}, \ + {"USE_ACCELERATE", "${CAFFE2_USE_ACCELERATE}"}, \ + {"USE_EIGEN_FOR_BLAS", "${CAFFE2_USE_EIGEN_FOR_BLAS}"}, \ {"USE_LITE_PROTO", "${CAFFE2_USE_LITE_PROTO}"}, \ {"USE_MKL", "${CAFFE2_USE_MKL}"}, \ {"USE_MKLDNN", "${USE_MKLDNN}"}, \ + {"USE_NVTX", "${CAFFE2_USE_NVTX}"}, \ {"USE_ITT", "${CAFFE2_USE_ITT}"}, \ {"USE_ROCM_KERNEL_ASSERT", "${USE_ROCM_KERNEL_ASSERT}"}, \ {"USE_CUSPARSELT", "${USE_CUSPARSELT}"}, \ diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake index 49661044406..091317acb27 100644 --- a/cmake/Dependencies.cmake +++ b/cmake/Dependencies.cmake @@ -161,6 +161,7 @@ message(STATUS "Trying to find preferred BLAS backend of choice: " ${BLAS}) if(BLAS STREQUAL "Eigen") # Eigen is header-only and we do not have any dependent libraries + set(CAFFE2_USE_EIGEN_FOR_BLAS ON) elseif(BLAS STREQUAL "ATLAS") find_package(Atlas REQUIRED) include_directories(SYSTEM ${ATLAS_INCLUDE_DIRS}) @@ -200,6 +201,7 @@ elseif(BLAS STREQUAL "MKL") set(BLAS_LIBRARIES ${MKL_LIBRARIES}) else() message(WARNING "MKL could not be found. Defaulting to Eigen") + set(CAFFE2_USE_EIGEN_FOR_BLAS ON) set(CAFFE2_USE_MKL OFF) endif() elseif(BLAS STREQUAL "NVPL") @@ -937,6 +939,7 @@ if(USE_MPI) message(STATUS "Found OpenMPI with CUDA support built.") else() message(WARNING "OpenMPI found, but it is not built with CUDA support.") + set(CAFFE2_FORCE_FALLBACK_CUDA_MPI 1) endif() endif() else() diff --git a/cmake/MiscCheck.cmake b/cmake/MiscCheck.cmake index 53da086b14b..433d96ebfd2 100644 --- a/cmake/MiscCheck.cmake +++ b/cmake/MiscCheck.cmake @@ -2,6 +2,8 @@ include(CheckCXXSourceCompiles) include(CheckCXXCompilerFlag) include(CMakePushCheckState) +set(CAFFE2_USE_EXCEPTION_PTR 1) + # ---[ Check if we want to turn off deprecated warning due to glog. if(USE_GLOG) cmake_push_check_state(RESET) @@ -107,6 +109,9 @@ if(IOS AND (${IOS_ARCH} MATCHES "armv7*")) add_definitions("-Wno-deprecated-declarations") endif() +# ---[ Create CAFFE2_BUILD_SHARED_LIBS for macros.h.in usage. +set(CAFFE2_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}) + if(USE_NATIVE_ARCH) check_cxx_compiler_flag("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE) if(COMPILER_SUPPORTS_MARCH_NATIVE)