ONE - On-device Neural Engine
Loading...
Searching...
No Matches
Optimizer.cc
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2020 Samsung Electronics Co., Ltd. All Rights Reserved
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
17
#include "
Optimizer.h
"
18
19
#include <
AclSubTensorAnalyzer.h
>
20
21
#include <
compiler/LoweredGraph.h
>
22
#include <
util/logging.h
>
23
24
#include <cassert>
25
26
namespace
onert
27
{
28
namespace
backend
29
{
30
namespace
acl_neon
31
{
32
33
Optimizer::Optimizer
(
BackendContext
*context)
34
: _context{context},
35
_tensor_builder{
std
::dynamic_pointer_cast<
TensorBuilder
>(context->tensor_builder)}
36
{
37
assert(context);
38
}
39
40
void
Optimizer::optimize
()
41
{
42
// Concat elimination (build subtensor info)
43
{
44
acl_common::AclSubTensorAnalyzer
sa{*_context->
graph
()};
45
sa.setUsePadding();
46
_context->
graph
()->
operations
().
iterate
(
47
[&](
const
ir::OperationIndex
&,
const
ir::IOperation
&op) { op.
accept
(sa); });
48
}
49
}
50
51
}
// namespace acl_neon
52
}
// namespace backend
53
}
// namespace onert
AclSubTensorAnalyzer.h
LoweredGraph.h
onert::backend::BackendContext::graph
const ir::Graph * graph() const
Definition
BackendContext.h:63
onert::backend::acl_common::AclBackendContext
Definition
AclBackendContext.h:41
onert::backend::acl_common::AclSubTensorAnalyzer
Class to analyze tensor subsumption.
Definition
AclSubTensorAnalyzer.h:36
onert::backend::acl_common::AclTensorBuilder
Definition
AclTensorBuilder.h:43
onert::backend::acl_neon::Optimizer::Optimizer
Optimizer(BackendContext *context)
Definition
Optimizer.cc:33
onert::backend::acl_neon::Optimizer::optimize
void optimize()
Definition
Optimizer.cc:40
onert::ir::Graph::operations
const Operations & operations() const override
Definition
Graph.h:114
onert::util::Index< uint32_t, OperationIndexTag >
onert::util::ObjectManager::iterate
void iterate(const std::function< void(const Index &, const Object &)> &fn) const
Iterate over the container with given function.
Definition
ObjectManager.h:186
onert
Definition
CustomKernel.cc:20
std
Definition
CircleExporterUtils.h:53
Optimizer.h
logging.h
onert::ir::IOperation
Definition
IOperation.h:34
onert::ir::IOperation::accept
virtual void accept(OperationVisitor &v) const =0
runtime
onert
backend
acl_neon
Optimizer.cc
Generated by
1.9.8