Skip to content

Commit

Permalink
Remove deprecated option and enable compilation without device (openv…
Browse files Browse the repository at this point in the history
  • Loading branch information
DariaMityagina authored and andrei-cv committed Aug 30, 2021
1 parent 4be4515 commit 6d5f536
Show file tree
Hide file tree
Showing 51 changed files with 77 additions and 461 deletions.
2 changes: 0 additions & 2 deletions docs/IE_DG/supported_plugins/MYRIAD.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,8 @@ In addition to common parameters, the MYRIAD plugin accepts the following option

| Parameter Name | Parameter Values | Default | Description |
| :--- | :--- | :--- | :--- |
| `KEY_VPU_MYRIAD_PLATFORM` | empty string/`VPU_MYRIAD_2450`/`VPU_MYRIAD_2480` | empty string | If set, the plugin will use a device with specific platform to allocate a network. |
| `KEY_VPU_MYRIAD_PROTOCOL` | empty string/`VPU_MYRIAD_USB`/`VPU_MYRIAD_PCIE` | empty string | If set, the plugin will use a device with specific protocol to allocate a network. |
| `KEY_VPU_MYRIAD_FORCE_RESET` | `YES`/`NO` | `NO` | Enables force reset of all booted devices when new ExecutableNetwork is created.<br />This is a plugin scope option and must be used with the plugin's SetConfig method only.<br />See <a href="#MYRIAD_DEVICE_ALLOC">Device allocation</a> section for details. |
| `KEY_VPU_PLATFORM` | empty string/`VPU_2450`/`VPU_2480` | empty string | **Deprecated** Use `KEY_VPU_MYRIAD_PLATFORM` instead. <br />If set, the plugin will use a device with specific platform to allocate a network. |
| `KEY_VPU_FORCE_RESET` | `YES`/`NO` | `NO` | **Deprecated** Use `KEY_VPU_MYRIAD_FORCE_RESET` instead. <br />Enables force reset of all booted devices when new ExecutableNetwork is created.<br />This is a plugin scope option and must be used with the plugin's SetConfig method only.<br />See <a href="#MYRIAD_DEVICE_ALLOC">Device allocation</a> section for details. |

## Device allocation <a name="MYRIAD_DEVICE_ALLOC">&nbsp;</a>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,23 +41,6 @@ namespace VPUConfigParams {
INFERENCE_ENGINE_DEPRECATED("Use InferenceEngine::MYRIAD_ENABLE_FORCE_RESET instead")
DECLARE_VPU_MYRIAD_CONFIG_KEY(FORCE_RESET);

/**
* @deprecated
* @brief This option allows to specify device.
* If specified device is not available then creating infer request will throw an exception.
*/
INFERENCE_ENGINE_DEPRECATED("")
DECLARE_VPU_MYRIAD_CONFIG_KEY(PLATFORM);

/**
* @deprecated
* @brief Supported keys definition for VPU_MYRIAD_CONFIG_KEY(PLATFORM) option.
*/
INFERENCE_ENGINE_DEPRECATED("")
DECLARE_VPU_MYRIAD_CONFIG_VALUE(2450);
INFERENCE_ENGINE_DEPRECATED("")
DECLARE_VPU_MYRIAD_CONFIG_VALUE(2480);

/**
* @deprecated Use InferenceEngine::MYRIAD_DDR_TYPE instead
* @brief This option allows to specify device memory type.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,20 @@
namespace vpu {

struct DeviceResources {
static int numShaves(const ncDevicePlatform_t& platform);
static int numSlices(const ncDevicePlatform_t& platform);
static int numShaves();
static int numSlices();
static int numStreams();
};

struct DefaultAllocation {
static int numStreams(const ncDevicePlatform_t& platform, const PluginConfiguration& configuration);
static int numSlices(const ncDevicePlatform_t& platform, int numStreams);
static int numShaves(const ncDevicePlatform_t& platform, int numStreams, int numSlices);
static int numStreams(const PluginConfiguration& configuration);
static int numSlices(int numStreams);
static int numShaves(int numStreams, int numSlices);
static int tilingCMXLimit(int numSlices);
};

struct CompileEnv final {
public:
ncDevicePlatform_t platform;
Resources resources;

PluginConfiguration config;
Expand All @@ -50,14 +49,13 @@ struct CompileEnv final {
static const CompileEnv* getOrNull();

static void init(
ncDevicePlatform_t platform,
const PluginConfiguration& config,
const Logger::Ptr& log);
static void updateConfig(const PluginConfiguration& config);
static void free();

private:
explicit CompileEnv(ncDevicePlatform_t platform);
CompileEnv();
};

} // namespace vpu

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ struct CompiledGraph final {
// compileNetwork
//

CompiledGraph::Ptr compileNetwork(const ie::CNNNetwork& network, ncDevicePlatform_t platform, const PluginConfiguration& config, const Logger::Ptr& log,
CompiledGraph::Ptr compileNetwork(const ie::CNNNetwork& network, const PluginConfiguration& config, const Logger::Ptr& log,
const std::shared_ptr<ie::ICore> core);

CompiledGraph::Ptr compileSubNetwork(const ie::CNNNetwork& network, const PluginConfiguration& subConfig, const std::shared_ptr<ie::ICore> core);
Expand All @@ -80,7 +80,7 @@ CompiledGraph::Ptr compileSubNetwork(const ie::CNNNetwork& network, const Plugin
// getSupportedLayers
//

std::set<std::string> getSupportedLayers(const ie::CNNNetwork& network, ncDevicePlatform_t platform, const PluginConfiguration& config, const Logger::Ptr& log,
std::set<std::string> getSupportedLayers(const ie::CNNNetwork& network, const PluginConfiguration& config, const Logger::Ptr& log,
const std::shared_ptr<ie::ICore> core);

//
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ namespace vpu {

CompiledGraph::Ptr compileModel(
const Model& model,
ncDevicePlatform_t platform,
const PluginConfiguration& config,
const Logger::Ptr& log);

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -479,10 +479,6 @@ ModelPtr FrontEnd::runCommonPasses(ie::CNNNetwork network,
env.log->trace("Parse custom layers : %s", customLayers);
VPU_LOGGER_SECTION(env.log);

if (env.platform != ncDevicePlatform_t::NC_MYRIAD_X) {
VPU_THROW_FORMAT("Custom layers are not supported for %v platforms", env.platform);
}

_customLayers = CustomLayer::loadFromFile(customLayers);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ thread_local CompileEnv* g_compileEnv = nullptr;

} // namespace

CompileEnv::CompileEnv(ncDevicePlatform_t platform) : platform(platform) {}
CompileEnv::CompileEnv() {}

const CompileEnv& CompileEnv::get() {
IE_ASSERT(g_compileEnv != nullptr);
Expand All @@ -79,31 +79,27 @@ const CompileEnv* CompileEnv::getOrNull() {
return g_compileEnv;
}

void CompileEnv::init(ncDevicePlatform_t platform, const PluginConfiguration& config, const Logger::Ptr& log) {
g_compileEnv = new CompileEnv(platform);
void CompileEnv::init(const PluginConfiguration& config, const Logger::Ptr& log) {
g_compileEnv = new CompileEnv();
g_compileEnv->config = config;
g_compileEnv->log = log;

#ifdef ENABLE_PROFILING_RAW
g_compileEnv->profile.setLogger(log);
#endif

if (platform == ncDevicePlatform_t::NC_MYRIAD_2) {
g_compileEnv->config.set(ie::MYRIAD_ENABLE_HW_ACCELERATION, ie::PluginConfigParams::NO);
}

const auto numExecutors = config.get<ThroughputStreamsOption>().hasValue()
? config.get<ThroughputStreamsOption>().get() : DefaultAllocation::numStreams(platform, config);
? config.get<ThroughputStreamsOption>().get() : DefaultAllocation::numStreams(config);
VPU_THROW_UNLESS(numExecutors >= 1 && numExecutors <= DeviceResources::numStreams(),
R"(Value of configuration option ("{}") must be in the range [{}, {}], actual is "{}")",
ThroughputStreamsOption::key(), 1, DeviceResources::numStreams(), numExecutors);

const auto numSlices = config.get<NumberOfCMXSlicesOption>().hasValue()
? config.get<NumberOfCMXSlicesOption>().get()
: DefaultAllocation::numSlices(platform, numExecutors);
VPU_THROW_UNLESS(numSlices >= 1 && numSlices <= DeviceResources::numSlices(platform),
: DefaultAllocation::numSlices(numExecutors);
VPU_THROW_UNLESS(numSlices >= 1 && numSlices <= DeviceResources::numSlices(),
R"(Value of configuration option ("{}") must be in the range [{}, {}], actual is "{}")",
NumberOfCMXSlicesOption::key(), 1, DeviceResources::numSlices(platform), numSlices);
NumberOfCMXSlicesOption::key(), 1, DeviceResources::numSlices(), numSlices);

int defaultCmxLimit = DefaultAllocation::tilingCMXLimit(numSlices);
const auto tilingCMXLimit = config.get<TilingCMXLimitKBOption>().hasValue()
Expand All @@ -115,18 +111,18 @@ void CompileEnv::init(ncDevicePlatform_t platform, const PluginConfiguration& co

const auto numShaves = config.get<NumberOfSHAVEsOption>().hasValue()
? config.get<NumberOfSHAVEsOption>().get()
: DefaultAllocation::numShaves(platform, numExecutors, numSlices);
VPU_THROW_UNLESS(numShaves >= 1 && numShaves <= DeviceResources::numShaves(platform),
: DefaultAllocation::numShaves(numExecutors, numSlices);
VPU_THROW_UNLESS(numShaves >= 1 && numShaves <= DeviceResources::numShaves(),
R"(Value of configuration option ("{}") must be in the range [{}, {}], actual is "{}")",
NumberOfSHAVEsOption::key(), 1, DeviceResources::numShaves(platform), numShaves);
NumberOfSHAVEsOption::key(), 1, DeviceResources::numShaves(), numShaves);

const auto numAllocatedShaves = numShaves * numExecutors;
VPU_THROW_UNLESS(numAllocatedShaves >= 1 && numAllocatedShaves <= DeviceResources::numShaves(platform),
R"(Cannot allocate "{}" shaves: only {} is available)", numAllocatedShaves, DeviceResources::numShaves(platform));
VPU_THROW_UNLESS(numAllocatedShaves >= 1 && numAllocatedShaves <= DeviceResources::numShaves(),
R"(Cannot allocate "{}" shaves: only {} is available)", numAllocatedShaves, DeviceResources::numShaves());

const auto numAllocatedSlices = numSlices * numExecutors;
VPU_THROW_UNLESS(numAllocatedSlices >= 1 && numAllocatedSlices <= DeviceResources::numSlices(platform),
R"(Cannot allocate "{}" slices: only {} is available)", numAllocatedSlices, DeviceResources::numSlices(platform));
VPU_THROW_UNLESS(numAllocatedSlices >= 1 && numAllocatedSlices <= DeviceResources::numSlices(),
R"(Cannot allocate "{}" slices: only {} is available)", numAllocatedSlices, DeviceResources::numSlices());

g_compileEnv->resources.numSHAVEs = numShaves;
g_compileEnv->resources.numCMXSlices = numSlices;
Expand Down Expand Up @@ -203,9 +199,9 @@ CompiledGraph::Ptr compileImpl(const Model& model) {

} // namespace

CompiledGraph::Ptr compileNetwork(const ie::CNNNetwork& network, ncDevicePlatform_t platform, const PluginConfiguration& config, const Logger::Ptr& log,
CompiledGraph::Ptr compileNetwork(const ie::CNNNetwork& network, const PluginConfiguration& config, const Logger::Ptr& log,
const std::shared_ptr<ie::ICore> core) {
CompileEnv::init(platform, config, log);
CompileEnv::init(config, log);
AutoScope autoDeinit([] {
CompileEnv::free();
});
Expand All @@ -217,10 +213,9 @@ CompiledGraph::Ptr compileNetwork(const ie::CNNNetwork& network, ncDevicePlatfor

CompiledGraph::Ptr compileModel(
const Model& model,
ncDevicePlatform_t platform,
const PluginConfiguration& config,
const Logger::Ptr& log) {
CompileEnv::init(platform, config, log);
CompileEnv::init(config, log);
AutoScope autoDeinit([] {
CompileEnv::free();
});
Expand Down Expand Up @@ -251,11 +246,10 @@ CompiledGraph::Ptr compileSubNetwork(const ie::CNNNetwork& network, const Plugin

std::set<std::string> getSupportedLayers(
const ie::CNNNetwork& network,
ncDevicePlatform_t platform,
const PluginConfiguration& config,
const Logger::Ptr& log,
const std::shared_ptr<ie::ICore> core) {
CompileEnv::init(platform, config, log);
CompileEnv::init(config, log);
AutoScope autoDeinit([] {
CompileEnv::free();
});
Expand All @@ -267,29 +261,29 @@ std::set<std::string> getSupportedLayers(
return frontEnd->checkSupportedLayers(network);
}

int DeviceResources::numShaves(const ncDevicePlatform_t& platform) {
return platform == ncDevicePlatform_t::NC_MYRIAD_2 ? 12 : 16;
int DeviceResources::numShaves() {
return 16;
}

int DeviceResources::numSlices(const ncDevicePlatform_t& platform) {
return platform == ncDevicePlatform_t::NC_MYRIAD_2 ? 12 : 19;
int DeviceResources::numSlices() {
return 19;
}

int DeviceResources::numStreams() {
return 3;
}

int DefaultAllocation::numStreams(const ncDevicePlatform_t& platform, const PluginConfiguration& configuration) {
return platform == ncDevicePlatform_t::NC_MYRIAD_X && configuration.get<HwAccelerationOption>() ? 2 : 1;
int DefaultAllocation::numStreams(const PluginConfiguration& configuration) {
return configuration.get<HwAccelerationOption>() ? 2 : 1;
}

int DefaultAllocation::numSlices(const ncDevicePlatform_t& platform, int numStreams) {
const auto capabilities = DeviceResources::numSlices(platform);
int DefaultAllocation::numSlices(int numStreams) {
const auto capabilities = DeviceResources::numSlices();
return capabilities / numStreams;
}

int DefaultAllocation::numShaves(const ncDevicePlatform_t& platform, int numStreams, int numSlices) {
const auto numAvailableShaves = DeviceResources::numShaves(platform);
int DefaultAllocation::numShaves(int numStreams, int numSlices) {
const auto numAvailableShaves = DeviceResources::numShaves();
if (numStreams == 1) {
return numAvailableShaves;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -197,12 +197,6 @@ StageSHAVEsRequirements StageNode::getSHAVEsRequirements() const {
// Get result from Stage implementation.
//

// return max for Myriad2
const auto& compileEnv = CompileEnv::get();
if (compileEnv.platform == ncDevicePlatform_t::NC_MYRIAD_2) {
return StageSHAVEsRequirements::NeedMax;
}

auto reqs = getSHAVEsRequirementsImpl();

//
Expand Down
Loading

0 comments on commit 6d5f536

Please sign in to comment.