vpu_plugin_config.hpp
Go to the documentation of this file.
1 // Copyright (C) 2018-2020 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4 
5 /**
6  * @brief A header that defines advanced related properties for VPU plugins.
7  * These properties should be used in SetConfig() and LoadNetwork() methods of plugins
8  *
9  * @file vpu_plugin_config.hpp
10  */
11 
12 #pragma once
13 
14 #include <string>
15 
16 #include "ie_plugin_config.hpp"
17 #include "myriad_plugin_config.hpp"
18 #include "hddl_plugin_config.hpp"
19 #include "ie_api.h"
20 
21 //
22 // Common options
23 //
24 
25 #define VPU_CONFIG_KEY(name) InferenceEngine::VPUConfigParams::_CONFIG_KEY(VPU_##name)
26 #define VPU_CONFIG_VALUE(name) InferenceEngine::VPUConfigParams::VPU_##name
27 
28 #define DECLARE_VPU_CONFIG_KEY(name) DECLARE_CONFIG_KEY(VPU_##name)
29 #define DECLARE_VPU_CONFIG_VALUE(name) DECLARE_CONFIG_VALUE(VPU_##name)
30 
31 //
32 // Common metrics
33 //
34 
35 #define VPU_METRIC(name) METRIC_KEY(VPU_##name)
36 #define DECLARE_VPU_METRIC(name, ...) DECLARE_METRIC_KEY(VPU_##name, __VA_ARGS__)
37 
38 namespace InferenceEngine {
39 
40 /**
41  * @brief VPU plugin configuration
42  */
43 namespace VPUConfigParams {
44 
45 //
46 // Common options
47 //
48 
49 /**
50  * @brief Turn on HW stages usage (applicable for MyriadX devices only).
51  * This option should be used with values: CONFIG_VALUE(YES) or CONFIG_VALUE(NO) (default)
52  */
53 DECLARE_VPU_CONFIG_KEY(HW_STAGES_OPTIMIZATION);
54 
55 /**
56  * @deprecated Use CONFIG_KEY(LOG_LEVEL) instead.
57  * @brief The key to define log level
58  */
59 INFERENCE_ENGINE_DEPRECATED("Use CONFIG_KEY(LOG_LEVEL) instead")
60 DECLARE_VPU_CONFIG_KEY(LOG_LEVEL);
61 
62 /**
63  * @deprecated
64  * @brief The key to define normalization coefficient for the network input.
65  * This option should used with be a real number. Example "255.f"
66  */
67 INFERENCE_ENGINE_DEPRECATED("")
68 DECLARE_VPU_CONFIG_KEY(INPUT_NORM);
69 
70 /**
71  * @deprecated
72  * @brief The flag to specify Bias value that is added to each element of the network input.
73  * This option should used with be a real number. Example "0.1f"
74  */
75 INFERENCE_ENGINE_DEPRECATED("")
76 DECLARE_VPU_CONFIG_KEY(INPUT_BIAS);
77 
78 /**
79  * @brief The flag for adding to the profiling information the time of obtaining a tensor.
80  * This option should be used with values: CONFIG_VALUE(YES) or CONFIG_VALUE(NO) (default)
81  */
82 DECLARE_VPU_CONFIG_KEY(PRINT_RECEIVE_TENSOR_TIME);
83 
84 /**
85  * @deprecated The data scaling now works automatically.
86  */
87 INFERENCE_ENGINE_DEPRECATED("The data scaling now works automatically")
88 DECLARE_VPU_CONFIG_KEY(NETWORK_CONFIG);
89 
90 /**
91  * @deprecated Use InputInfo::setLayout on input data from ICNNNetwork::getInputsInfo() or
92  * Data::setLayout on output data from ICNNNetwork::getOutputsInfo()
93  * @brief This option allows to to specify input output layouts for network layers.
94  * By default, this value set to VPU_CONFIG_VALUE(AUTO) value.
95  * Supported values:
96  * VPU_CONFIG_VALUE(AUTO) executable network configured to use optimal layer layout depending on available HW
97  * VPU_CONFIG_VALUE(NCHW) executable network forced to use NCHW input/output layouts
98  * VPU_CONFIG_VALUE(NHWC) executable network forced to use NHWC input/output layouts
99  */
100 INFERENCE_ENGINE_DEPRECATED("Use InputInfo::setLayout on input data from ICNNNetwork::getInputsInfo() or" \
101  "Data::setLayout on output data from ICNNNetwork::getOutputsInfo()")
102 DECLARE_VPU_CONFIG_KEY(COMPUTE_LAYOUT);
103 
104 /**
105  * @deprecated See VPU_CONFIG_KEY(COMPUTE_LAYOUT) deprecation info.
106  * @brief Supported keys definition for VPU_CONFIG_KEY(COMPUTE_LAYOUT) option.
107  */
108 INFERENCE_ENGINE_DEPRECATED("See VPU_CONFIG_KEY(COMPUTE_LAYOUT) deprecation info")
109 DECLARE_VPU_CONFIG_VALUE(AUTO);
110 INFERENCE_ENGINE_DEPRECATED("See VPU_CONFIG_KEY(COMPUTE_LAYOUT) deprecation info")
111 DECLARE_VPU_CONFIG_VALUE(NCHW);
112 INFERENCE_ENGINE_DEPRECATED("See VPU_CONFIG_KEY(COMPUTE_LAYOUT) deprecation info")
113 DECLARE_VPU_CONFIG_VALUE(NHWC);
114 INFERENCE_ENGINE_DEPRECATED("See VPU_CONFIG_KEY(COMPUTE_LAYOUT) deprecation info")
115 DECLARE_VPU_CONFIG_VALUE(NCDHW);
116 INFERENCE_ENGINE_DEPRECATED("See VPU_CONFIG_KEY(COMPUTE_LAYOUT) deprecation info")
117 DECLARE_VPU_CONFIG_VALUE(NDHWC);
118 
119 /**
120  * @brief This option allows to pass custom layers binding xml.
121  * If layer is present in such an xml, it would be used during inference even if the layer is natively supported
122  */
123 DECLARE_VPU_CONFIG_KEY(CUSTOM_LAYERS);
124 
125 /**
126  * @brief Ignore statistic in IR by plugin.
127  * Plugin could use statistic present in IR in order to try to improve calculations precision.
128  * If you don't want statistic to be used enable this option.
129  * This option should be used with values: CONFIG_VALUE(YES) or CONFIG_VALUE(NO) (default)
130  */
131 DECLARE_VPU_CONFIG_KEY(IGNORE_IR_STATISTIC);
132 
133 /**
134  * @brief This option allows to specify protocol.
135  */
136 DECLARE_VPU_MYRIAD_CONFIG_KEY(PROTOCOL);
137 
138 /**
139  * @brief Supported keys definition for VPU_MYRIAD_CONFIG_KEY(PROTOCOL) option.
140  */
141 DECLARE_VPU_MYRIAD_CONFIG_VALUE(PCIE);
142 DECLARE_VPU_MYRIAD_CONFIG_VALUE(USB);
143 
144 /**
145  * @deprecated Use VPU_MYRIAD_CONFIG_KEY(FORCE_RESET) instead.
146  */
147 INFERENCE_ENGINE_DEPRECATED("Use VPU_MYRIAD_CONFIG_KEY(FORCE_RESET) instead")
148 DECLARE_VPU_CONFIG_KEY(FORCE_RESET);
149 
150 /**
151  * @deprecated Use VPU_MYRIAD_CONFIG_KEY(PLATFORM) instead.
152  */
153 INFERENCE_ENGINE_DEPRECATED("Use VPU_MYRIAD_CONFIG_KEY(PLATFORM) instead")
154 DECLARE_VPU_CONFIG_KEY(PLATFORM);
155 
156 /**
157  * @brief Supported keys definition for DECLARE_VPU_CONFIG_KEY(PLATFORM) option.
158  */
159 INFERENCE_ENGINE_DEPRECATED("")
160 DECLARE_VPU_CONFIG_VALUE(2450);
161 INFERENCE_ENGINE_DEPRECATED("")
162 DECLARE_VPU_CONFIG_VALUE(2480);
163 
164 } // namespace VPUConfigParams
165 
166 } // namespace InferenceEngine
NCDHW layout for input / output blobs.
Definition: ie_common.h:85
#define VPU_MYRIAD_CONFIG_KEY(name)
Shortcut for defining VPU MYRIAD configuration key.
Definition: myriad_plugin_config.hpp:23
Inference Engine API.
Definition: ie_argmax_layer.hpp:15
A header that defines advanced related properties for VPU plugins. These properties should be used in...
a header for advanced hardware related properties for IE plugins
The macro defines a symbol import/export mechanism essential for Microsoft Windows(R) OS...
A header that defines advanced related properties for VPU plugins. These properties should be used in...
NHWC layout for input / output blobs.
Definition: ie_common.h:84
NDHWC layout for input / output blobs.
Definition: ie_common.h:86
NCHW layout for input / output blobs.
Definition: ie_common.h:83