Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / src / gna_plugin / gna_plugin_policy.hpp
1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4
5 #pragma once
6
7
8 namespace GNAPluginNS {
9 /**
10  * @brief policy agregates various settings that cannot be tweak using configuration options right now,
11  * and essential to keep test coverage for options both in on and off cases
12  */
13 class Policy {
14  public:
15     /**
16     * @brief for scaleshift substitution, weight tiling simplify final graph but have extra weights overhead
17     * if not defined scaleshift broadcast will result in creating multiple diagonal layers instead of weight tiling
18     */
19     enum {
20         WEIGHTS_TILING,
21         /**
22          * GNA has limited amount of batch so even existed topologies cannot be substituted with only batching,
23          * this option combines batch and weights tiling
24          */
25         BATCH_AND_WEIGHTS_TILING,
26         DIAGLAYER_TILING
27     } ScaleShiftPolicy = WEIGHTS_TILING;
28
29     /**
30      * Policy on whether to substitute permute layers or not
31      */
32     enum {
33         DISABLED,
34         AUTO_PERMUTE
35     } PermutePolicy = DISABLED;
36 };
37
38 }  // namespace GNAPluginNS