ONE - On-device Neural Engine
Loading...
Searching...
No Matches
Builders.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2023 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#ifndef LUCI_INTERPRETER_KERNELS_NODES_BUILDERS_H
18#define LUCI_INTERPRETER_KERNELS_NODES_BUILDERS_H
19
21#include "core/RuntimeModule.h"
22
23namespace luci_interpreter
24{
25
26namespace
27{
28#ifdef USE_STATIC_ALLOC
29using BaseRuntimeGraph = StaticRuntimeGraph;
30#else
31using BaseRuntimeGraph = RuntimeGraph;
32#endif // USE_STATIC_ALLOC
33} // namespace
34
35#define REGISTER_KERNEL(builtin_operator, name) \
36 void configure_kernel_Circle##name(const circle::Operator *cur_op, \
37 BaseRuntimeGraph *runtime_graph); \
38 \
39 void execute_kernel_Circle##name(const circle::Operator *cur_op, BaseRuntimeGraph *runtime_graph);
40
41#if USE_GENERATED_LIST
42#include "GeneratedKernelsToBuild.lst"
43#else
44#include "KernelsToBuild.lst"
45#endif
46
47#undef REGISTER_KERNEL
48
49#ifdef ENABLE_TRAINING
50namespace training
51{
52#define REGISTER_TRAIN_KERNEL(builtin_operator, name) \
53 Status train_kernel_Circle##name( \
54 const circle::Operator *op, CircleReader *reader, \
55 GradientCalculationStorage *gradient_calculation_storage, const TrainingSettings &settings, \
56 TrainableWeightStorage *weight_storage, bool is_compute_gradient);
57
58#include "KernelsToTrain.lst"
59
60#undef REGISTER_TRAIN_KERNEL
61} // namespace training
62#endif // ENABLE_TRAINING
63
64} // namespace luci_interpreter
65
66#endif // LUCI_INTERPRETER_KERNELS_NODES_BUILDERS_H
RuntimeGraph BaseRuntimeGraph