aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/compiler/xla/service/logical_buffer_analysis.cc
diff options
context:
space:
mode:
authorGravatar HyoukJoong Lee <hyouklee@google.com>2017-11-09 14:48:37 -0800
committerGravatar Andrew Selle <aselle@andyselle.com>2017-11-10 16:14:40 -0800
commit51895becce83ef4dc8bac263377d158fc50e4d53 (patch)
tree81ba187df17b1c2a3b0784f776f68fc43060f544 /tensorflow/compiler/xla/service/logical_buffer_analysis.cc
parent2bb46f6376c35ec86279e80a24dc06b068b41556 (diff)
Change for asynchronous Send and Recv by splitting Send into {Send, SendDone}
and Recv into {Recv, RecvDone}. See operation_semantics.md for the updated semantics. PiperOrigin-RevId: 175216012
Diffstat (limited to 'tensorflow/compiler/xla/service/logical_buffer_analysis.cc')
-rw-r--r--tensorflow/compiler/xla/service/logical_buffer_analysis.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/tensorflow/compiler/xla/service/logical_buffer_analysis.cc b/tensorflow/compiler/xla/service/logical_buffer_analysis.cc
index b92017c6cb..02dc49e78c 100644
--- a/tensorflow/compiler/xla/service/logical_buffer_analysis.cc
+++ b/tensorflow/compiler/xla/service/logical_buffer_analysis.cc
@@ -104,6 +104,21 @@ Status LogicalBufferAnalysis::HandleBitcast(HloInstruction*) {
return Status::OK();
}
+Status LogicalBufferAnalysis::HandleRecvDone(HloInstruction*) {
+ // RecvDone doesn't create a new buffer but rather aliases its input (Recv)
+ // tuple element at {0} to its output.
+ return Status::OK();
+}
+
+Status LogicalBufferAnalysis::HandleSend(HloInstruction* send) {
+ // Send creates new buffers for the top-level tuple and the context (tuple
+ // element at {1}). Tuple element at {0} is an alias of the Send operand, so
+ // we don't need to create a new Logical Buffer for that.
+ NewLogicalBuffer(send, /*index=*/{});
+ NewLogicalBuffer(send, /*index=*/{1});
+ return Status::OK();
+}
+
Status LogicalBufferAnalysis::HandleTuple(HloInstruction* tuple) {
// A Tuple instruction only creates the top-level buffer.
NewLogicalBuffer(tuple, /*index=*/{});