struct InferenceEngine::IStreamsExecutor::Config¶
Overview¶
Defines IStreamsExecutor configuration. More…
#include <ie_istreams_executor.hpp>
struct Config: public ov::threading::IStreamsExecutor::Config
{
// construction
Config(
std::string name = "StreamsExecutor",
int streams = 1,
int threadsPerStream = 0,
ThreadBindingType threadBindingType = ThreadBindingType::NONE,
int threadBindingStep = 1,
int threadBindingOffset = 0,
int threads = 0,
PreferredCoreType threadPreferredCoreType = PreferredCoreType::ANY
);
Config(const ov::threading::IStreamsExecutor::Config& config);
// methods
std::vector<std::string> SupportedKeys() const;
void SetConfig(const std::string& key, const std::string& value);
Parameter GetConfig(const std::string& key) const;
static Config MakeDefaultMultiThreaded(
const Config& initial,
const bool fp_intesive = true
);
static int GetDefaultNumStreams(const bool enable_hyper_thread = true);
static int GetHybridNumStreams(
std::map<std::string, std::string>& config,
const int stream_mode
);
static void UpdateHybridCustomThreads(Config& config);
};
Inherited Members¶
public:
// enums
enum PreferredCoreType;
enum StreamMode;
// fields
std::string _name;
int _streams = 1;
int _threadsPerStream = 0;
ThreadBindingType _threadBindingType = ThreadBindingType::NONE;
int _threadBindingStep = 1;
int _threadBindingOffset = 0;
int _threads = 0;
int _big_core_streams = 0;
int _small_core_streams = 0;
int _threads_per_stream_big = 0;
int _threads_per_stream_small = 0;
int _small_core_offset = 0;
bool _enable_hyper_thread = true;
int _plugin_task = NOT_USED;
std::vector<std::vector<int>> _orig_proc_type_table;
std::vector<std::vector<int>> _proc_type_table;
std::vector<std::vector<int>> _streams_info_table;
std::vector<std::vector<int>> _stream_core_ids;
std::vector<int> _stream_ids;
bool _cpu_pinning = false;
bool _streams_changed = false;
enum ov::threading::IStreamsExecutor::Config::PreferredCoreType _threadPreferredCoreType = PreferredCoreType::ANY;
// methods
void set_property(const ov::AnyMap& properties);
void set_property(const std::string& key, const ov::Any& value);
ov::Any get_property(const std::string& key) const;
static Config make_default_multi_threaded(
const Config& initial,
const bool fp_intesive = true
);
static int get_default_num_streams(const bool enable_hyper_thread = true);
static int get_hybrid_num_streams(
std::map<std::string, std::string>& config,
const int stream_mode
);
static void update_hybrid_custom_threads(Config& config);
Detailed Documentation¶
Defines IStreamsExecutor configuration.
Construction¶
Config(
std::string name = "StreamsExecutor",
int streams = 1,
int threadsPerStream = 0,
ThreadBindingType threadBindingType = ThreadBindingType::NONE,
int threadBindingStep = 1,
int threadBindingOffset = 0,
int threads = 0,
PreferredCoreType threadPreferredCoreType = PreferredCoreType::ANY
)
A constructor with arguments.
Parameters:
name |
The executor name |
streams |
Number of streams. |
threadsPerStream |
Number of threads per stream that executes |
threadBindingType |
|
threadBindingStep |
|
threadBindingOffset |
|
threads |
|
threadPreferBigCores |
Methods¶
std::vector<std::string> SupportedKeys() const
Supported Configuration keys.
Returns:
vector of supported configuration keys
void SetConfig(const std::string& key, const std::string& value)
Parses configuration key/value pair.
Parameters:
key |
configuration key |
value |
configuration values |
Parameter GetConfig(const std::string& key) const
Return configuration value.
Parameters:
key |
configuration key |
Returns:
configuration value wrapped into Parameter
static Config MakeDefaultMultiThreaded(
const Config& initial,
const bool fp_intesive = true
)
Create appropriate multithreaded configuration filing unconfigured values from initial configuration using hardware properties.
Parameters:
initial |
Inital configuration |
fp_intesive |
additional hint for the the (Hybrid) core-types selection logic whether the executor should be configured for floating point intensive work (as opposite to int8 intensive) |
Returns:
configured values