|  | def get_blas_gomp_arch_deps(): | 
|  | return [ | 
|  | ("x86_64", [ | 
|  | "third-party//IntelComposerXE:{}".format(native.read_config("fbcode", "mkl_lp64", "mkl_lp64_omp")), | 
|  | ]), | 
|  | ("aarch64", [ | 
|  | "third-party//OpenBLAS:OpenBLAS", | 
|  | "third-party//openmp:omp", | 
|  | ]), | 
|  | ] | 
|  |  | 
|  | default_compiler_flags = [ | 
|  | "-Wall", | 
|  | "-Wextra", | 
|  | "-Wno-unused-function", | 
|  | "-Wno-unused-parameter", | 
|  | "-Wno-error=strict-aliasing", | 
|  | "-Wno-shadow-compatible-local", | 
|  | "-Wno-maybe-uninitialized",  # aten is built with gcc as part of HHVM | 
|  | "-Wno-unknown-pragmas", | 
|  | "-Wno-strict-overflow", | 
|  | # See https://fb.facebook.com/groups/fbcode/permalink/1813348245368673/ | 
|  | # These trigger on platform007 | 
|  | "-Wno-stringop-overflow", | 
|  | "-Wno-class-memaccess", | 
|  | "-DHAVE_MMAP", | 
|  | "-DUSE_GCC_ATOMICS=1", | 
|  | "-D_FILE_OFFSET_BITS=64", | 
|  | "-DHAVE_SHM_OPEN=1", | 
|  | "-DHAVE_SHM_UNLINK=1", | 
|  | "-DHAVE_MALLOC_USABLE_SIZE=1", | 
|  | "-DTH_HAVE_THREAD", | 
|  | "-DCPU_CAPABILITY_DEFAULT", | 
|  | "-DTH_INDEX_BASE=0", | 
|  | "-DMAGMA_V2", | 
|  | "-DNO_CUDNN_DESTROY_HANDLE", | 
|  | "-DUSE_EXPERIMENTAL_CUDNN_V8_API",  # enable cudnn v8 api | 
|  | "-DUSE_FBGEMM", | 
|  | "-DUSE_QNNPACK", | 
|  | "-DUSE_PYTORCH_QNNPACK", | 
|  | # The dynamically loaded NVRTC trick doesn't work in fbcode, | 
|  | # and it's not necessary anyway, because we have a stub | 
|  | # nvrtc library which we load canonically anyway | 
|  | "-DUSE_DIRECT_NVRTC", | 
|  | "-DUSE_RUY_QMATMUL", | 
|  | ] + select({ | 
|  | # XNNPACK depends on an updated version of pthreadpool interface, whose implementation | 
|  | # includes <pthread.h> - a header not available on Windows. | 
|  | "DEFAULT": ["-DUSE_XNNPACK"], | 
|  | "ovr_config//os:windows": [], | 
|  | }) + (["-O1"] if native.read_config("fbcode", "build_mode_test_label", "") == "dev-nosan" else []) | 
|  |  | 
|  | compiler_specific_flags = { | 
|  | "clang": [ | 
|  | "-Wno-absolute-value", | 
|  | "-Wno-pass-failed", | 
|  | "-Wno-braced-scalar-init", | 
|  | ], | 
|  | "gcc": [ | 
|  | "-Wno-error=array-bounds", | 
|  | ], | 
|  | } | 
|  |  | 
|  | def get_cpu_parallel_backend_flags(): | 
|  | parallel_backend = native.read_config("pytorch", "parallel_backend", "openmp") | 
|  | defs = [] | 
|  | if parallel_backend == "openmp": | 
|  | defs.append("-DAT_PARALLEL_OPENMP_FBCODE=1") | 
|  | elif parallel_backend == "tbb": | 
|  | defs.append("-DAT_PARALLEL_NATIVE_TBB_FBCODE=1") | 
|  | elif parallel_backend == "native": | 
|  | defs.append("-DAT_PARALLEL_NATIVE_FBCODE=1") | 
|  | else: | 
|  | fail("Unsupported parallel backend: " + parallel_backend) | 
|  | if native.read_config("pytorch", "exp_single_thread_pool", "0") == "1": | 
|  | defs.append("-DAT_EXPERIMENTAL_SINGLE_THREAD_POOL=1") | 
|  | mkl_ver = native.read_config("fbcode", "mkl_lp64", "mkl_lp64_omp") | 
|  | if mkl_ver == "mkl_lp64_seq": | 
|  | defs.append("-DATEN_MKL_SEQUENTIAL_FBCODE=1") | 
|  | return defs | 
|  |  | 
|  | def is_cpu_static_dispatch_build(): | 
|  | mode = native.read_config("fbcode", "caffe2_static_dispatch_mode", "none") | 
|  | return mode == "cpu" |