xref: /aosp_15_r20/external/pytorch/defs.bzl (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
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