1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
7 #include <ie_device.hpp>
8 #include <details/ie_exception.hpp>
9 #include "description_buffer.hpp"
11 using namespace InferenceEngine;
13 FindPluginResponse InferenceEngine::findPlugin(const FindPluginRequest& req) {
14 std::vector<std::string> pluginVec;
16 case TargetDevice::eCPU:
18 pluginVec.push_back("MKLDNNPlugin");
20 #ifdef ENABLE_OPENVX_CVE
21 pluginVec.push_back("OpenVXPluginCVE");
22 #elif defined ENABLE_OPENVX
23 pluginVec.push_back("OpenVXPlugin");
26 case TargetDevice::eGPU:
28 pluginVec.push_back("clDNNPlugin");
31 pluginVec.push_back("OpenVXPlugin");
34 case TargetDevice::eFPGA:
36 pluginVec.push_back("dliaPlugin");
39 pluginVec.push_back("OpenVXPlugin");
42 case TargetDevice::eMYRIAD:
44 pluginVec.push_back("myriadPlugin");
47 case TargetDevice::eHDDL:
49 pluginVec.push_back("HDDLPlugin");
52 case TargetDevice::eGNA:
54 pluginVec.push_back("GNAPlugin");
57 case TargetDevice::eHETERO:
58 pluginVec.push_back("HeteroPlugin");
60 case TargetDevice::eKMB:
62 pluginVec.push_back("kmbPlugin");
67 THROW_IE_EXCEPTION << "Cannot find plugin for device: " << getDeviceName(req.device);
69 std::for_each(pluginVec.begin(), pluginVec.end(), [](std::string &name){ name = name + IE_BUILD_POSTFIX;});
73 INFERENCE_ENGINE_API(StatusCode) InferenceEngine::findPlugin(
74 const FindPluginRequest& req, FindPluginResponse& result, ResponseDesc* resp) noexcept {
76 result = findPlugin(req);
78 catch (const std::exception& e) {
79 return DescriptionBuffer(GENERAL_ERROR, resp) << e.what();