xref: /aosp_15_r20/external/pytorch/third_party/gloo.BUILD (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Workerload("@rules_cc//cc:defs.bzl", "cc_library")
2*da0073e9SAndroid Build Coastguard Workerload("@pytorch//tools/rules:cu.bzl", "cu_library")
3*da0073e9SAndroid Build Coastguard Workerload("@pytorch//third_party:substitution.bzl", "template_rule")
4*da0073e9SAndroid Build Coastguard Workerload("@pytorch//tools/config:defs.bzl", "if_cuda")
5*da0073e9SAndroid Build Coastguard Worker
6*da0073e9SAndroid Build Coastguard Workertemplate_rule(
7*da0073e9SAndroid Build Coastguard Worker    name = "gloo_config_cmake_macros",
8*da0073e9SAndroid Build Coastguard Worker    src = "gloo/config.h.in",
9*da0073e9SAndroid Build Coastguard Worker    out = "gloo/config.h",
10*da0073e9SAndroid Build Coastguard Worker    substitutions = {
11*da0073e9SAndroid Build Coastguard Worker        "@GLOO_VERSION_MAJOR@": "0",
12*da0073e9SAndroid Build Coastguard Worker        "@GLOO_VERSION_MINOR@": "5",
13*da0073e9SAndroid Build Coastguard Worker        "@GLOO_VERSION_PATCH@": "0",
14*da0073e9SAndroid Build Coastguard Worker        "cmakedefine01 GLOO_USE_CUDA": "define GLOO_USE_CUDA 1",
15*da0073e9SAndroid Build Coastguard Worker        "cmakedefine01 GLOO_USE_NCCL": "define GLOO_USE_NCCL 0",
16*da0073e9SAndroid Build Coastguard Worker        "cmakedefine01 GLOO_USE_ROCM": "define GLOO_USE_ROCM 0",
17*da0073e9SAndroid Build Coastguard Worker        "cmakedefine01 GLOO_USE_RCCL": "define GLOO_USE_RCCL 0",
18*da0073e9SAndroid Build Coastguard Worker        "cmakedefine01 GLOO_USE_REDIS": "define GLOO_USE_REDIS 0",
19*da0073e9SAndroid Build Coastguard Worker        "cmakedefine01 GLOO_USE_IBVERBS": "define GLOO_USE_IBVERBS 0",
20*da0073e9SAndroid Build Coastguard Worker        "cmakedefine01 GLOO_USE_MPI": "define GLOO_USE_MPI 0",
21*da0073e9SAndroid Build Coastguard Worker        "cmakedefine01 GLOO_USE_AVX": "define GLOO_USE_AVX 0",
22*da0073e9SAndroid Build Coastguard Worker        "cmakedefine01 GLOO_USE_LIBUV": "define GLOO_USE_LIBUV 0",
23*da0073e9SAndroid Build Coastguard Worker        # The `GLOO_HAVE_TRANSPORT_TCP_TLS` line should go above the `GLOO_HAVE_TRANSPORT_TCP` in order to properly substitute the template.
24*da0073e9SAndroid Build Coastguard Worker        "cmakedefine01 GLOO_HAVE_TRANSPORT_TCP_TLS": "define GLOO_HAVE_TRANSPORT_TCP_TLS 1",
25*da0073e9SAndroid Build Coastguard Worker        "cmakedefine01 GLOO_HAVE_TRANSPORT_TCP": "define GLOO_HAVE_TRANSPORT_TCP 1",
26*da0073e9SAndroid Build Coastguard Worker        "cmakedefine01 GLOO_HAVE_TRANSPORT_IBVERBS": "define GLOO_HAVE_TRANSPORT_IBVERBS 0",
27*da0073e9SAndroid Build Coastguard Worker        "cmakedefine01 GLOO_HAVE_TRANSPORT_UV": "define GLOO_HAVE_TRANSPORT_UV 0",
28*da0073e9SAndroid Build Coastguard Worker    },
29*da0073e9SAndroid Build Coastguard Worker)
30*da0073e9SAndroid Build Coastguard Worker
31*da0073e9SAndroid Build Coastguard Workercc_library(
32*da0073e9SAndroid Build Coastguard Worker    name = "gloo_headers",
33*da0073e9SAndroid Build Coastguard Worker    hdrs = glob(
34*da0073e9SAndroid Build Coastguard Worker        [
35*da0073e9SAndroid Build Coastguard Worker            "gloo/*.h",
36*da0073e9SAndroid Build Coastguard Worker            "gloo/common/*.h",
37*da0073e9SAndroid Build Coastguard Worker            "gloo/rendezvous/*.h",
38*da0073e9SAndroid Build Coastguard Worker            "gloo/transport/*.h",
39*da0073e9SAndroid Build Coastguard Worker            "gloo/transport/tcp/*.h",
40*da0073e9SAndroid Build Coastguard Worker            "gloo/transport/tcp/tls/*.h",
41*da0073e9SAndroid Build Coastguard Worker        ],
42*da0073e9SAndroid Build Coastguard Worker        exclude = [
43*da0073e9SAndroid Build Coastguard Worker            "gloo/rendezvous/redis_store.h",
44*da0073e9SAndroid Build Coastguard Worker        ],
45*da0073e9SAndroid Build Coastguard Worker    ) + ["gloo/config.h"],
46*da0073e9SAndroid Build Coastguard Worker    includes = [
47*da0073e9SAndroid Build Coastguard Worker        ".",
48*da0073e9SAndroid Build Coastguard Worker    ],
49*da0073e9SAndroid Build Coastguard Worker)
50*da0073e9SAndroid Build Coastguard Worker
51*da0073e9SAndroid Build Coastguard Workercu_library(
52*da0073e9SAndroid Build Coastguard Worker    name = "gloo_cuda",
53*da0073e9SAndroid Build Coastguard Worker    srcs = [
54*da0073e9SAndroid Build Coastguard Worker        "gloo/cuda.cu",
55*da0073e9SAndroid Build Coastguard Worker        "gloo/cuda_private.cu",
56*da0073e9SAndroid Build Coastguard Worker    ],
57*da0073e9SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
58*da0073e9SAndroid Build Coastguard Worker    deps = [
59*da0073e9SAndroid Build Coastguard Worker        ":gloo_headers",
60*da0073e9SAndroid Build Coastguard Worker    ],
61*da0073e9SAndroid Build Coastguard Worker    alwayslink = True,
62*da0073e9SAndroid Build Coastguard Worker)
63*da0073e9SAndroid Build Coastguard Worker
64*da0073e9SAndroid Build Coastguard Workercc_library(
65*da0073e9SAndroid Build Coastguard Worker    name = "gloo",
66*da0073e9SAndroid Build Coastguard Worker    srcs = glob(
67*da0073e9SAndroid Build Coastguard Worker        [
68*da0073e9SAndroid Build Coastguard Worker            "gloo/*.cc",
69*da0073e9SAndroid Build Coastguard Worker            "gloo/common/*.cc",
70*da0073e9SAndroid Build Coastguard Worker            "gloo/rendezvous/*.cc",
71*da0073e9SAndroid Build Coastguard Worker            "gloo/transport/*.cc",
72*da0073e9SAndroid Build Coastguard Worker            "gloo/transport/tcp/*.cc",
73*da0073e9SAndroid Build Coastguard Worker        ],
74*da0073e9SAndroid Build Coastguard Worker        exclude = [
75*da0073e9SAndroid Build Coastguard Worker            "gloo/cuda*.cc",
76*da0073e9SAndroid Build Coastguard Worker            "gloo/common/win.cc",
77*da0073e9SAndroid Build Coastguard Worker            "gloo/rendezvous/redis_store.cc",
78*da0073e9SAndroid Build Coastguard Worker        ]
79*da0073e9SAndroid Build Coastguard Worker    ) + if_cuda(glob(["gloo/cuda*.cc"])),
80*da0073e9SAndroid Build Coastguard Worker    copts = [
81*da0073e9SAndroid Build Coastguard Worker        "-std=c++17",
82*da0073e9SAndroid Build Coastguard Worker    ],
83*da0073e9SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
84*da0073e9SAndroid Build Coastguard Worker    deps = [":gloo_headers"] + if_cuda(
85*da0073e9SAndroid Build Coastguard Worker        [":gloo_cuda"],
86*da0073e9SAndroid Build Coastguard Worker        [],
87*da0073e9SAndroid Build Coastguard Worker    ),
88*da0073e9SAndroid Build Coastguard Worker)
89