Home | History | Annotate | Download | only in mpi
      1 # Description:
      2 #   MPI based communication interfaces and implementations for TensorFlow.
      3 
      4 package(default_visibility = [
      5     "//tensorflow:__subpackages__",
      6 ])
      7 
      8 licenses(["notice"])  # Apache 2.0
      9 
     10 exports_files(["LICENSE"])
     11 
     12 filegroup(
     13     name = "all_files",
     14     srcs = glob(
     15         ["**/*"],
     16         exclude = [
     17             "**/METADATA",
     18             "**/OWNERS",
     19         ],
     20     ),
     21     visibility = ["//tensorflow:__subpackages__"],
     22 )
     23 
     24 filegroup(
     25     name = "c_srcs",
     26     data = glob([
     27         "**/*.cc",
     28         "**/*.h",
     29     ]),
     30 )
     31 
     32 # For platform specific build config
     33 load(
     34     "//tensorflow/core:platform/default/build_config.bzl",
     35     "tf_proto_library_cc",
     36 )
     37 
     38 tf_proto_library_cc(
     39     name = "mpi_msg_proto",
     40     srcs = ["mpi_msg.proto"],
     41     cc_api_version = 2,
     42     protodeps = ["//tensorflow/core:worker_proto"],
     43     visibility = [
     44         "//tensorflow:__subpackages__",
     45     ],
     46 )
     47 
     48 cc_library(
     49     name = "mpi_utils",
     50     srcs = ["mpi_utils.cc"],
     51     hdrs = ["mpi_utils.h"],
     52     deps = [
     53         "//tensorflow/core:core_cpu_internal",
     54         "//tensorflow/core:framework",
     55         "//tensorflow/core:lib",
     56         "//third_party/mpi",
     57     ],
     58 )
     59 
     60 cc_library(
     61     name = "mpi_rendezvous_mgr",
     62     srcs = ["mpi_rendezvous_mgr.cc"],
     63     hdrs = ["mpi_rendezvous_mgr.h"],
     64     deps = [
     65         ":mpi_msg_proto_cc",
     66         ":mpi_utils",
     67         "//tensorflow/core:core_cpu_internal",
     68         "//tensorflow/core:framework",
     69         "//tensorflow/core:gpu_runtime",
     70         "//tensorflow/core:lib",
     71         "//tensorflow/core:protos_cc",
     72         "//tensorflow/core:worker_proto_cc",
     73         "//tensorflow/core/distributed_runtime:base_rendezvous_mgr",
     74         "//tensorflow/core/distributed_runtime:recent_request_ids",
     75         "//tensorflow/core/distributed_runtime:request_id",
     76         "//tensorflow/core/distributed_runtime:session_mgr",
     77         "//tensorflow/core/distributed_runtime:tensor_coding",
     78         "//tensorflow/core/distributed_runtime:worker_env",
     79         "//third_party/mpi",
     80     ],
     81 )
     82 
     83 cc_library(
     84     name = "mpi_server_lib",
     85     srcs = ["mpi_server_lib.cc"],
     86     hdrs = ["mpi_server_lib.h"],
     87     linkstatic = 1,  # Seems to be needed since alwayslink is broken in bazel
     88     deps = [
     89         ":mpi_rendezvous_mgr",
     90         "//tensorflow/core/distributed_runtime/rpc:grpc_server_lib",
     91     ],
     92     alwayslink = 1,
     93 )
     94