diff options
author | A. Unique TensorFlower <gardener@tensorflow.org> | 2018-10-08 09:06:04 -0700 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2018-10-08 09:10:28 -0700 |
commit | 5f308cb408eb46ec9af0546be6b9ae1d5166b185 (patch) | |
tree | f6da0324d24a19486ceee4d91989198099394a06 /tensorflow/core/grappler/op_types.cc | |
parent | 75f57a8b7836a1ed3cda8ba81c88f6caf15cf0c6 (diff) |
Optimize PinToHostOptimizer by adding cache, also add PinToHostOptimizer to benchmarks.
original runtime: 4.83492736816 secs
w/ cache runtime: 2.19033999443 secs
PiperOrigin-RevId: 216195286
Diffstat (limited to 'tensorflow/core/grappler/op_types.cc')
-rw-r--r-- | tensorflow/core/grappler/op_types.cc | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/tensorflow/core/grappler/op_types.cc b/tensorflow/core/grappler/op_types.cc index 1b5a215987..cbf5c8e038 100644 --- a/tensorflow/core/grappler/op_types.cc +++ b/tensorflow/core/grappler/op_types.cc @@ -102,15 +102,19 @@ bool IsConjugateTranspose(const NodeDef& node) { } bool IsControlFlow(const NodeDef& node) { - // clang-format off - return node.op() == "ControlTrigger" || - node.op() == "Enter" || - node.op() == "Exit" || - node.op() == "LoopCond" || - node.op() == "Merge" || - node.op() == "NextIteration" || - node.op() == "Switch"; - // clang-format on + // TODO(williamchan): Add a microbenchmark to compare FlatSet vs. iterative + // string comparison. + static const gtl::FlatSet<string>* const kControFlowOps = + CHECK_NOTNULL((new gtl::FlatSet<string>{ + "ControlTrigger", + "Enter", + "Exit", + "LoopCond", + "Merge", + "NextIteration", + "Switch", + })); + return kControFlowOps->count(node.op()) > 0; } bool IsConv2D(const NodeDef& node) { return node.op() == "Conv2D"; } |