aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/core/grappler/utils
Commit message (Collapse)AuthorAge
* Bunch of micro move optimizationsGravatar Piotr Padlewski2018-09-28
| | | | PiperOrigin-RevId: 215018984
* Add PinToHostOptimizer to grappler: force small ops to happen on CPU (instead ofGravatar A. Unique TensorFlower2018-09-22
| | | | | | GPU). This avoids many unnecessary CPU<->GPU memcpy and syncs. PiperOrigin-RevId: 214108484
* Fix bug in Pow optimizer rule when broadcasting is involved.Gravatar A. Unique TensorFlower2018-09-20
| | | | | | Minor cleanup by moving the helper function ShapesEqual to GraphProperties and adding unit tests for it. PiperOrigin-RevId: 213876779
* Correct argument name in declaration of StronglyConnectedComponentsGravatar James Keeling2018-09-12
| | | | | | | | This now matches the definition. I fixed it here rather than in the definition as it seems every call to this function names the variable "num_components". I also tidied up the comment a little. PiperOrigin-RevId: 212668416
* Move GrapplerFunctionItem arguments.Gravatar Piotr Padlewski2018-09-04
| | | | | | This patch uses take by value and move idiom to optimize copying of constructor arguments. PiperOrigin-RevId: 211553877
* Add graphdef version number to GrapplerFunctionItem.Gravatar Doe Hyun Yoon2018-08-23
| | | | | | | | This solves te problem when passing a scalar tensor to function op input, as Placeholer shape inference outputs unknown shape for scalar if graphdef version is < 24. PiperOrigin-RevId: 210007276
* Preserve function description through Grappler optimizations.Gravatar Jiri Simsa2018-08-09
| | | | PiperOrigin-RevId: 208119717
* Adds a function to sort a graph in reverse topological order.Gravatar A. Unique TensorFlower2018-08-03
| | | | PiperOrigin-RevId: 207340526
* Allow Capital letters in function output name in ExpandFunctionDefInput inGravatar A. Unique TensorFlower2018-08-02
| | | | | | grappler functions. PiperOrigin-RevId: 207171072
* Generalize assumptions in IdentifyLoops and StronglyConnectedComponents.Gravatar A. Unique TensorFlower2018-07-02
| | | | PiperOrigin-RevId: 203066657
* Use the right attributes when creating placeholder nodes.Gravatar Benoit Steiner2018-05-22
| | | | PiperOrigin-RevId: 197673355
* Remove unused inclusionsGravatar A. Unique TensorFlower2018-05-16
| | | | PiperOrigin-RevId: 196906815
* Remove unused BUILD dependenciesGravatar A. Unique TensorFlower2018-05-15
| | | | PiperOrigin-RevId: 196742598
* Resolve inlined function input/output types from GrapplerFunctionItem.Gravatar A. Unique TensorFlower2018-05-14
| | | | | | Remove duplicated code to resolve type from attributes. PiperOrigin-RevId: 196558061
* Specialize functions only once per unique context.Gravatar A. Unique TensorFlower2018-05-07
| | | | PiperOrigin-RevId: 195710562
* Simplified shape inference.Gravatar Benoit Steiner2018-05-01
| | | | PiperOrigin-RevId: 194975603
* Replace GrapplerFunctionItem input with a constant.Gravatar A. Unique TensorFlower2018-04-27
| | | | PiperOrigin-RevId: 194579253
* Format header guards under tensorflow/core/grappler.Gravatar A. Unique TensorFlower2018-04-26
| | | | PiperOrigin-RevId: 194387041
* Remove unused function from FunctionDefLibrary.Gravatar A. Unique TensorFlower2018-04-23
| | | | PiperOrigin-RevId: 193974712
* Automated g4 rollback of changelist 193605910Gravatar A. Unique TensorFlower2018-04-20
| | | | PiperOrigin-RevId: 193751624
* Updating Generate Random Tensor to generate tensors whose values are small ↵Gravatar A. Unique TensorFlower2018-04-20
| | | | | | and do not cause overflow for arithmetic operations. PiperOrigin-RevId: 193723661
* Optimize Graph function library.Gravatar A. Unique TensorFlower2018-04-19
| | | | PiperOrigin-RevId: 193605910
* Create specialized functions in optimized graph for each function ↵Gravatar A. Unique TensorFlower2018-04-18
| | | | | | instantiation context. PiperOrigin-RevId: 193399263
* Convert GrapplerFunctionItem to (Specialized)FunctionDef.Gravatar A. Unique TensorFlower2018-04-12
| | | | PiperOrigin-RevId: 192704808
* Added a utility to compute a topo ordering of a graphGravatar Benoit Steiner2018-04-12
| | | | PiperOrigin-RevId: 192683166
* Import FunctionDef as GrapplerFunctionItemGravatar A. Unique TensorFlower2018-04-11
| | | | | | | | Explicitly track function input arg expansion into Placeholders, and keep metadata to map between FunctionDef and GraphDef connectivity formats. PiperOrigin-RevId: 192462592
* Add a helper function to re-assign colocation in a graph.Gravatar A. Unique TensorFlower2018-04-04
| | | | PiperOrigin-RevId: 191679495
* run evaluate nodes on parts of arithmetic optimizer tests.Gravatar A. Unique TensorFlower2018-04-04
| | | | PiperOrigin-RevId: 191647386
* Remove all_opensource_files. It's not needed any more.Gravatar Martin Wicke2018-03-28
| | | | PiperOrigin-RevId: 190878279
* Updating tests in constant_folding_test.cc so that it evaluates the ↵Gravatar A. Unique TensorFlower2018-03-28
| | | | | | optimized and original graph and checks whether the output tensors produced by them are the same. PiperOrigin-RevId: 190802264
* Improve support for DT_HALF and DT_BFLOAT16 in Grappler graph optimizations.Gravatar A. Unique TensorFlower2018-03-27
| | | | | | Update GrapplerTest::EvaluateNodes to take feeds as an argument, to make it easier to write tests with placeholders. PiperOrigin-RevId: 190696386
* Add skeleton code for DebugStripper.Gravatar A. Unique TensorFlower2018-03-25
| | | | PiperOrigin-RevId: 190391193
* Disable all the automatic optimizations when testing, to ensure that we canGravatar Benoit Steiner2018-03-22
| | | | | | | properly compare the results of the original graph against that of the hand optimized graph. PiperOrigin-RevId: 190115606
* Enable constant folding optimizations in loop bodies by copying constants ↵Gravatar A. Unique TensorFlower2018-03-15
| | | | | | across Enter nodes. PiperOrigin-RevId: 189197514
* Move optimizations to arithmetic optimizer stagesGravatar A. Unique TensorFlower2018-03-09
| | | | | | | | 1) Redundant Bitcast 2) Redundant Cast 3) Remove inverse transpose PiperOrigin-RevId: 188569367
* Properly handle the case of functions with no inputsGravatar Benoit Steiner2018-03-02
| | | | PiperOrigin-RevId: 187691555
* Take into account the return value mapping of functionsGravatar Benoit Steiner2018-03-02
| | | | PiperOrigin-RevId: 187628382
* Register the function optimizer in the meta optimizer. Made sure it's turned ↵Gravatar Benoit Steiner2018-02-27
| | | | | | OFF by default until more validation is done. PiperOrigin-RevId: 187211957
* Function optimization: added an optimizer to automatically inline functions ↵Gravatar Benoit Steiner2018-02-27
| | | | | | in order to enable Grappler to optimize the body of functions. Inlining also reduces the overhead of evaluating function. PiperOrigin-RevId: 187200883
* Use optimized ops to handle GPU memory swapping: this avoids the need for 2Gravatar Benoit Steiner2018-02-26
| | | | | | | | pairs of extra _send/_recv nodes which speeds things up a bit. This also ensures that performance doesn't depend on the recv scheduling built in TF, which isn't always optimal. PiperOrigin-RevId: 187057831
* Change node to Identity operation for shuffle/reverse operations on scalar ↵Gravatar A. Unique TensorFlower2018-02-21
| | | | | | | | values, but not directly removing those nodes from the graph. PiperOrigin-RevId: 186505857
* Serialize the evaluation of the AssignAdd nodes to make the result moreGravatar Benoit Steiner2018-02-05
| | | | | | | deterministic Improved testing PiperOrigin-RevId: 184565483
* Added a utility to traverse the graph in reverse DFS order, identifying loopsGravatar Benoit Steiner2018-02-01
| | | | | | in the process. PiperOrigin-RevId: 184172483
* Remove THIRD_PARTY_ from #include guardsGravatar Sanjoy Das2018-01-24
| | | | | | They don't make sense in the open source repository. PiperOrigin-RevId: 183140889
* Implement faster and less memory hungry version of topological sort that is ↵Gravatar A. Unique TensorFlower2017-12-05
| | | | | | idempotent. PiperOrigin-RevId: 178026253
* Make TopologicalSort return an error status if the sorting fails.Gravatar A. Unique TensorFlower2017-12-01
| | | | PiperOrigin-RevId: 177612830
* * Add optimization to hoist a common factor out of sums of products ↵Gravatar A. Unique TensorFlower2017-11-02
| | | | | | | | involving aggregate ops (AddN, Add, Accumulate) or eliminate the aggregation op entirely. * Replace trivial aggregations of the form x+x+x... with const(N)*x for N > 1. PiperOrigin-RevId: 174398543
* Remove RTLD_GLOBAL when loading pywrap_tensorflowGravatar Allen Lavoie2017-09-21
| | | | | | | | | | | | | | Splits out a shared object (//tensorflow/libtensorflow_framework.so) with core TensorFlow functionality but neither ops nor kernels. This object does include registries for ops, kernels, filesystems, etc. The expectation is that shared objects containing custom ops will have a runtime dependency on this framework shared object: TensorFlow will load the custom op shared object, and the custom op shared object will use the symbols from the framework shared object to register its ops/kernels/etc. rather than (as before this change) relying on those symbols being in the global symbol table. In this mode, TensorFlow artifacts (_pywrap_tensorflow.so for Python, libtensorflow.so for the C API; currently excluding Android artifacts) will depend on the framework shared object, which will be packaged with the Python pip package and other language distributions. This means that custom ops targeting the framework shared object will work in any language (C++, Java, Go; previously custom ops in these languages required custom Bazel builds). Adds a config option which reproduces the old behavior (--config=monolithic), which for Python means building a monolithic pywrap_tensorflow shared object and loading its symbols into the global symbol table (with RTLD_GLOBAL). As before, there will be no extra-Bazel custom op support for other languages when compiling in this mode. Does not change behavior on Windows; the cmake build is still monolithic. Requires using tf_cc_binary, tf_cc_test, and (rarely) tf_cc_shared_object rules to link in the framework shared object when adding new TensorFlow build rules. PiperOrigin-RevId: 169572746
* Automated g4 rollback of changelist 158565259Gravatar Gunhan Gulsoy2017-09-14
| | | | PiperOrigin-RevId: 168650887
* Handle duplicated inputs in topological sort. And do not add the redundant ↵Gravatar Yao Zhang2017-08-30
| | | | | | | | | | | | | | | | | control dependencies. The would result in malfunction of topological sort as it previously doesn't handle duplicated inputs. For example, say node A has three repeated input ^B, node A will never get added to queue in topological sort, because the number of ready inputs will always be less than the number of inputs (B is only counted once). node { name: "A" op: "SomeOp" input:"^B" input:"^B" input:"^B" } PiperOrigin-RevId: 167045325