aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/compiler/tf2xla/xla_compiler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tensorflow/compiler/tf2xla/xla_compiler.cc')
-rw-r--r--tensorflow/compiler/tf2xla/xla_compiler.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/tensorflow/compiler/tf2xla/xla_compiler.cc b/tensorflow/compiler/tf2xla/xla_compiler.cc
index d5094e8ec5..b2c57e8880 100644
--- a/tensorflow/compiler/tf2xla/xla_compiler.cc
+++ b/tensorflow/compiler/tf2xla/xla_compiler.cc
@@ -194,6 +194,17 @@ Status XlaCompiler::CompileFunction(const XlaCompiler::CompileOptions& options,
std::unique_ptr<Graph> graph = GetGraph(fbody);
+ // Clear the "_kernel" attribute if it is set to "host". This is used to
+ // indicate that a computation should happen on the host instead of the
+ // accelerator, but doesn't make sense in XLA.
+ const char* const kKernelAttr = "_kernel";
+ for (Node* n : graph->nodes()) {
+ string value;
+ if (GetNodeAttrSimple(n->attrs(), kKernelAttr, &value) && value == "host") {
+ n->ClearAttr(kKernelAttr);
+ }
+ }
+
// _Arg and _Retval nodes don't exist in the stored subgraph for the function;
// they are added by the function body looked up. Therefore, they don't have
// core assignments here.