diff options
author | Michele Di Giorgio <michele.digiorgio@arm.com> | 2018-02-13 15:24:04 +0000 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:47:18 +0000 |
commit | dde9ec96f471127e5b6d8dfaeffce024b6326f1a (patch) | |
tree | 3aa88c0dec625feeb9d17da825b87398cac6cc68 /src/graph/Graph.cpp | |
parent | e3fba0afa892c66379da1e3d3843f2155a1fb29a (diff) | |
download | ComputeLibrary-dde9ec96f471127e5b6d8dfaeffce024b6326f1a.tar.gz |
COMPMID-909: Enabling in-place computation for batchnormalization and activation at graph level
Change-Id: I84d4a212629b21794451ab5fb5c5b187b5e28f98
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/120127
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Tested-by: Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/graph/Graph.cpp')
-rw-r--r-- | src/graph/Graph.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/graph/Graph.cpp b/src/graph/Graph.cpp index 7af313acbb..98d95904dc 100644 --- a/src/graph/Graph.cpp +++ b/src/graph/Graph.cpp @@ -131,6 +131,11 @@ void Graph::Private::configure(GraphHints _next_hints) _previous_hints = _current_hints; // For the first node just assume the previous node was of the same type as this one } + if(_current_node->supports_in_place()) + { + _current_output = _current_input; + } + //Automatic output configuration ? if(_current_output == nullptr) { @@ -152,8 +157,12 @@ void Graph::Private::configure(GraphHints _next_hints) _ctx.hints() = _current_hints; std::unique_ptr<arm_compute::IFunction> func = _current_node->instantiate_node(_ctx, _current_input, _current_output); - // Allocate current input - _current_input->allocate(); + // If the operation is done in-place, do not allocate or it will prevent following layers from performing the configuration + if(!_current_node->supports_in_place()) + { + // Allocate current input + _current_input->allocate(); + } // Map input if needed if(_current_input->target() == TargetHint::OPENCL) |