aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/core/ops/sendrecv_ops.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tensorflow/core/ops/sendrecv_ops.cc')
-rw-r--r--tensorflow/core/ops/sendrecv_ops.cc99
1 files changed, 99 insertions, 0 deletions
diff --git a/tensorflow/core/ops/sendrecv_ops.cc b/tensorflow/core/ops/sendrecv_ops.cc
new file mode 100644
index 0000000000..51158263c1
--- /dev/null
+++ b/tensorflow/core/ops/sendrecv_ops.cc
@@ -0,0 +1,99 @@
+#include "tensorflow/core/framework/op.h"
+
+namespace tensorflow {
+
+REGISTER_OP("_Send")
+ .Input("tensor: T")
+ .Attr("T: type")
+ .Attr("tensor_name: string")
+ .Attr("send_device: string")
+ .Attr("send_device_incarnation: int")
+ .Attr("recv_device: string")
+ .Attr("client_terminated: bool = false")
+ .Doc(R"doc(
+Sends the named tensor from send_device to recv_device.
+
+tensor: The tensor to send.
+tensor_name: The name of the tensor to send.
+send_device: The name of the device sending the tensor.
+send_device_incarnation: The current incarnation of send_device.
+recv_device: The name of the device receiving the tensor.
+client_terminated: If set to true, this indicates that the node was added
+ to the graph as a result of a client-side feed or fetch of Tensor data,
+ in which case the corresponding send or recv is expected to be managed
+ locally by the caller.
+)doc");
+
+REGISTER_OP("_Recv")
+ .Output("tensor: tensor_type")
+ .Attr("tensor_type: type")
+ .Attr("tensor_name: string")
+ .Attr("send_device: string")
+ .Attr("send_device_incarnation: int")
+ .Attr("recv_device: string")
+ .Attr("client_terminated: bool = false")
+ .Doc(R"doc(
+Receives the named tensor from send_device on recv_device.
+
+tensor: The tensor to receive.
+tensor_name: The name of the tensor to receive.
+send_device: The name of the device sending the tensor.
+send_device_incarnation: The current incarnation of send_device.
+recv_device: The name of the device receiving the tensor.
+client_terminated: If set to true, this indicates that the node was added
+ to the graph as a result of a client-side feed or fetch of Tensor data,
+ in which case the corresponding send or recv is expected to be managed
+ locally by the caller.
+)doc");
+
+REGISTER_OP("_HostSend")
+ .Input("tensor: T")
+ .Attr("T: type")
+ .Attr("tensor_name: string")
+ .Attr("send_device: string")
+ .Attr("send_device_incarnation: int")
+ .Attr("recv_device: string")
+ .Attr("client_terminated: bool = false")
+ .Doc(R"doc(
+Sends the named tensor from send_device to recv_device.
+
+_HostSend requires its input on host memory whereas _Send requires its
+input on device memory.
+
+tensor: The tensor to send.
+tensor_name: The name of the tensor to send.
+send_device: The name of the device sending the tensor.
+send_device_incarnation: The current incarnation of send_device.
+recv_device: The name of the device receiving the tensor.
+client_terminated: If set to true, this indicates that the node was added
+ to the graph as a result of a client-side feed or fetch of Tensor data,
+ in which case the corresponding send or recv is expected to be managed
+ locally by the caller.
+)doc");
+
+REGISTER_OP("_HostRecv")
+ .Output("tensor: tensor_type")
+ .Attr("tensor_type: type")
+ .Attr("tensor_name: string")
+ .Attr("send_device: string")
+ .Attr("send_device_incarnation: int")
+ .Attr("recv_device: string")
+ .Attr("client_terminated: bool = false")
+ .Doc(R"doc(
+Receives the named tensor from send_device on recv_device.
+
+_HostRecv requires its input on host memory whereas _Recv requires its
+input on device memory.
+
+tensor: The tensor to receive.
+tensor_name: The name of the tensor to receive.
+send_device: The name of the device sending the tensor.
+send_device_incarnation: The current incarnation of send_device.
+recv_device: The name of the device receiving the tensor.
+client_terminated: If set to true, this indicates that the node was added
+ to the graph as a result of a client-side feed or fetch of Tensor data,
+ in which case the corresponding send or recv is expected to be managed
+ locally by the caller.
+)doc");
+
+} // end namespace tensorflow