vpu_plugin_config.hpp
Go to the documentation of this file.
1 // Copyright (C) 2018-2019 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  * @brief The key to specify desirable log level for devices.
57  * This option should be used with values: CONFIG_VALUE(LOG_NONE) (default),
58  * CONFIG_VALUE(LOG_WARNING), CONFIG_VALUE(LOG_INFO), CONFIG_VALUE(LOG_DEBUG)
59  */
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  * @brief This option allows to pass extra configuration for executable network.
86  * By default, it is empty string, which means - no configuration.
87  * String format:
88  * <key>=<value>,<key>=<value>,...
89  * Supported parameters and options:
90  * * file : path to XML file with configuration
91  * * data : options related to data objects (input, output, intermediate), next parameter describes the option
92  * * scale : SCALE factor for data range (applicable for input and intermediate data)
93  */
94 DECLARE_VPU_CONFIG_KEY(NETWORK_CONFIG);
95 
96 /**
97  * @brief This option allows to to specify input output layouts for network layers.
98  * By default, this value set to VPU_CONFIG_VALUE(AUTO) value.
99  * Supported values:
100  * VPU_CONFIG_VALUE(AUTO) executable network configured to use optimal layer layout depending on available HW
101  * VPU_CONFIG_VALUE(NCHW) executable network forced to use NCHW input/output layouts
102  * VPU_CONFIG_VALUE(NHWC) executable network forced to use NHWC input/output layouts
103  */
104 DECLARE_VPU_CONFIG_KEY(COMPUTE_LAYOUT);
105 
106 /**
107  * @brief Supported keys definition for VPU_CONFIG_KEY(COMPUTE_LAYOUT) option.
108  */
109 DECLARE_VPU_CONFIG_VALUE(AUTO);
110 DECLARE_VPU_CONFIG_VALUE(NCHW);
111 DECLARE_VPU_CONFIG_VALUE(NHWC);
112 DECLARE_VPU_CONFIG_VALUE(NCDHW);
113 DECLARE_VPU_CONFIG_VALUE(NDHWC);
114 
115 /**
116  * @brief This option allows to pass custom layers binding xml.
117  * If layer is present in such an xml, it would be used during inference even if the layer is natively supported
118  */
119 DECLARE_VPU_CONFIG_KEY(CUSTOM_LAYERS);
120 
121 /**
122  * @brief Ignore statistic in IR by plugin.
123  * Plugin could use statistic present in IR in order to try to improve calculations precision.
124  * If you don't want statistic to be used enable this option.
125  * This option should be used with values: CONFIG_VALUE(YES) or CONFIG_VALUE(NO) (default)
126  */
127 DECLARE_VPU_CONFIG_KEY(IGNORE_IR_STATISTIC);
128 
129 /**
130  * @brief This option allows to specify protocol.
131  */
132 DECLARE_VPU_MYRIAD_CONFIG_KEY(PROTOCOL);
133 
134 /**
135  * @brief Supported keys definition for VPU_MYRIAD_CONFIG_KEY(PROTOCOL) option.
136  */
137 DECLARE_VPU_MYRIAD_CONFIG_VALUE(PCIE);
138 DECLARE_VPU_MYRIAD_CONFIG_VALUE(USB);
139 
140 /**
141  * @deprecated Use VPU_MYRIAD_CONFIG_KEY(FORCE_RESET) instead.
142  */
143 INFERENCE_ENGINE_DEPRECATED
144 DECLARE_VPU_CONFIG_KEY(FORCE_RESET);
145 
146 /**
147  * @deprecated Use VPU_MYRIAD_CONFIG_KEY(PLATFORM) instead.
148  */
149 INFERENCE_ENGINE_DEPRECATED
150 DECLARE_VPU_CONFIG_KEY(PLATFORM);
151 
152 /**
153  * @brief Supported keys definition for DECLARE_VPU_CONFIG_KEY(PLATFORM) option.
154  */
155 INFERENCE_ENGINE_DEPRECATED
156 DECLARE_VPU_CONFIG_VALUE(2450);
157 INFERENCE_ENGINE_DEPRECATED
158 DECLARE_VPU_CONFIG_VALUE(2480);
159 
160 } // namespace VPUConfigParams
161 
162 } // namespace InferenceEngine
Inference Engine API.
Definition: ie_argmax_layer.hpp:11
a header for advanced hardware related properties for clDNN plugin To use in SetConfig() method of pl...
The macro defines a symbol import/export mechanism essential for Microsoft Windows(R) OS...