1*da0073e9SAndroid Build Coastguard Workerdef get_blas_gomp_arch_deps(): 2*da0073e9SAndroid Build Coastguard Worker return [ 3*da0073e9SAndroid Build Coastguard Worker ("x86_64", [ 4*da0073e9SAndroid Build Coastguard Worker "fbsource//third-party/mkl:{}".format(native.read_config("fbcode", "mkl_lp64", "mkl_lp64_omp")), 5*da0073e9SAndroid Build Coastguard Worker ]), 6*da0073e9SAndroid Build Coastguard Worker ("aarch64", [ 7*da0073e9SAndroid Build Coastguard Worker "third-party//OpenBLAS:OpenBLAS", 8*da0073e9SAndroid Build Coastguard Worker "third-party//openmp:omp", 9*da0073e9SAndroid Build Coastguard Worker ]), 10*da0073e9SAndroid Build Coastguard Worker ] 11*da0073e9SAndroid Build Coastguard Worker 12*da0073e9SAndroid Build Coastguard Workerdefault_compiler_flags = [ 13*da0073e9SAndroid Build Coastguard Worker "-Wall", 14*da0073e9SAndroid Build Coastguard Worker "-Wextra", 15*da0073e9SAndroid Build Coastguard Worker "-Wno-unused-function", 16*da0073e9SAndroid Build Coastguard Worker "-Wno-unused-parameter", 17*da0073e9SAndroid Build Coastguard Worker "-Wno-error=strict-aliasing", 18*da0073e9SAndroid Build Coastguard Worker "-Wno-shadow-compatible-local", 19*da0073e9SAndroid Build Coastguard Worker "-Wno-maybe-uninitialized", # aten is built with gcc as part of HHVM 20*da0073e9SAndroid Build Coastguard Worker "-Wno-unknown-pragmas", 21*da0073e9SAndroid Build Coastguard Worker "-Wno-strict-overflow", 22*da0073e9SAndroid Build Coastguard Worker # See https://fb.facebook.com/groups/fbcode/permalink/1813348245368673/ 23*da0073e9SAndroid Build Coastguard Worker # These trigger on platform007 24*da0073e9SAndroid Build Coastguard Worker "-Wno-stringop-overflow", 25*da0073e9SAndroid Build Coastguard Worker "-Wno-class-memaccess", 26*da0073e9SAndroid Build Coastguard Worker "-DHAVE_MMAP", 27*da0073e9SAndroid Build Coastguard Worker "-DUSE_GCC_ATOMICS=1", 28*da0073e9SAndroid Build Coastguard Worker "-D_FILE_OFFSET_BITS=64", 29*da0073e9SAndroid Build Coastguard Worker "-DHAVE_SHM_OPEN=1", 30*da0073e9SAndroid Build Coastguard Worker "-DHAVE_SHM_UNLINK=1", 31*da0073e9SAndroid Build Coastguard Worker "-DHAVE_MALLOC_USABLE_SIZE=1", 32*da0073e9SAndroid Build Coastguard Worker "-DCPU_CAPABILITY_DEFAULT", 33*da0073e9SAndroid Build Coastguard Worker "-DTH_INDEX_BASE=0", 34*da0073e9SAndroid Build Coastguard Worker "-DMAGMA_V2", 35*da0073e9SAndroid Build Coastguard Worker "-DNO_CUDNN_DESTROY_HANDLE", 36*da0073e9SAndroid Build Coastguard Worker "-DUSE_FBGEMM", 37*da0073e9SAndroid Build Coastguard Worker "-DUSE_PYTORCH_QNNPACK", 38*da0073e9SAndroid Build Coastguard Worker # The dynamically loaded NVRTC trick doesn't work in fbcode, 39*da0073e9SAndroid Build Coastguard Worker # and it's not necessary anyway, because we have a stub 40*da0073e9SAndroid Build Coastguard Worker # nvrtc library which we load canonically anyway 41*da0073e9SAndroid Build Coastguard Worker "-DUSE_DIRECT_NVRTC", 42*da0073e9SAndroid Build Coastguard Worker "-DUSE_RUY_QMATMUL", 43*da0073e9SAndroid Build Coastguard Worker] + select({ 44*da0073e9SAndroid Build Coastguard Worker # XNNPACK depends on an updated version of pthreadpool interface, whose implementation 45*da0073e9SAndroid Build Coastguard Worker # includes <pthread.h> - a header not available on Windows. 46*da0073e9SAndroid Build Coastguard Worker "DEFAULT": ["-DUSE_XNNPACK"], 47*da0073e9SAndroid Build Coastguard Worker "ovr_config//os:windows": [], 48*da0073e9SAndroid Build Coastguard Worker}) + (["-O1"] if native.read_config("fbcode", "build_mode_test_label", "") == "dev-nosan" else []) 49*da0073e9SAndroid Build Coastguard Worker 50*da0073e9SAndroid Build Coastguard Workercompiler_specific_flags = { 51*da0073e9SAndroid Build Coastguard Worker "clang": [ 52*da0073e9SAndroid Build Coastguard Worker "-Wno-absolute-value", 53*da0073e9SAndroid Build Coastguard Worker "-Wno-pass-failed", 54*da0073e9SAndroid Build Coastguard Worker "-Wno-braced-scalar-init", 55*da0073e9SAndroid Build Coastguard Worker ], 56*da0073e9SAndroid Build Coastguard Worker "gcc": [ 57*da0073e9SAndroid Build Coastguard Worker "-Wno-error=array-bounds", 58*da0073e9SAndroid Build Coastguard Worker ], 59*da0073e9SAndroid Build Coastguard Worker} 60*da0073e9SAndroid Build Coastguard Worker 61*da0073e9SAndroid Build Coastguard Workerdef get_cpu_parallel_backend_flags(): 62*da0073e9SAndroid Build Coastguard Worker parallel_backend = native.read_config("pytorch", "parallel_backend", "openmp") 63*da0073e9SAndroid Build Coastguard Worker defs = [] 64*da0073e9SAndroid Build Coastguard Worker if parallel_backend == "openmp": 65*da0073e9SAndroid Build Coastguard Worker defs.append("-DAT_PARALLEL_OPENMP_FBCODE=1") 66*da0073e9SAndroid Build Coastguard Worker elif parallel_backend == "native": 67*da0073e9SAndroid Build Coastguard Worker defs.append("-DAT_PARALLEL_NATIVE_FBCODE=1") 68*da0073e9SAndroid Build Coastguard Worker else: 69*da0073e9SAndroid Build Coastguard Worker fail("Unsupported parallel backend: " + parallel_backend) 70*da0073e9SAndroid Build Coastguard Worker if native.read_config("pytorch", "exp_single_thread_pool", "0") == "1": 71*da0073e9SAndroid Build Coastguard Worker defs.append("-DAT_EXPERIMENTAL_SINGLE_THREAD_POOL=1") 72*da0073e9SAndroid Build Coastguard Worker mkl_ver = native.read_config("fbcode", "mkl_lp64", "mkl_lp64_omp") 73*da0073e9SAndroid Build Coastguard Worker if mkl_ver == "mkl_lp64_seq": 74*da0073e9SAndroid Build Coastguard Worker defs.append("-DATEN_MKL_SEQUENTIAL_FBCODE=1") 75*da0073e9SAndroid Build Coastguard Worker return defs 76*da0073e9SAndroid Build Coastguard Worker 77*da0073e9SAndroid Build Coastguard Workerdef is_cpu_static_dispatch_build(): 78*da0073e9SAndroid Build Coastguard Worker mode = native.read_config("fbcode", "caffe2_static_dispatch_mode", "none") 79*da0073e9SAndroid Build Coastguard Worker return mode == "cpu" 80