From: Vladislav Sovrasov Date: Mon, 9 Apr 2018 13:22:19 +0000 (+0300) Subject: Add CPU default extensions loading in IE dnn backend (#11252) X-Git-Tag: submit/tizen/20200407.083853~1^2~651 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0d9c63744e890685451146868c29230c1942d713;p=platform%2Fupstream%2Fopencv.git Add CPU default extensions loading in IE dnn backend (#11252) * Add CPU default extensions loading in IE dnn backend * Load cpu_extensions for the future Intel's Inference Engine --- diff --git a/cmake/OpenCVDetectInferenceEngine.cmake b/cmake/OpenCVDetectInferenceEngine.cmake index 9742461775..8bcb9ac057 100644 --- a/cmake/OpenCVDetectInferenceEngine.cmake +++ b/cmake/OpenCVDetectInferenceEngine.cmake @@ -50,6 +50,7 @@ set(ie_lib_list inference_engine) link_directories( ${INTEL_CVSDK_DIR}/external/mklml_lnx/lib ${INTEL_CVSDK_DIR}/inference_engine/external/mklml_lnx/lib + ${INTEL_CVSDK_DIR}/inference_engine/external/mkltiny_lnx/lib ${INTEL_CVSDK_DIR}/external/cldnn/lib ${INTEL_CVSDK_DIR}/inference_engine/external/cldnn/lib ) diff --git a/modules/dnn/src/op_inf_engine.cpp b/modules/dnn/src/op_inf_engine.cpp index b180ec1b55..cad27ce3b3 100644 --- a/modules/dnn/src/op_inf_engine.cpp +++ b/modules/dnn/src/op_inf_engine.cpp @@ -9,6 +9,11 @@ #include "op_inf_engine.hpp" #include +#ifdef HAVE_INF_ENGINE +#include +#include +#endif // HAVE_INF_ENGINE + namespace cv { namespace dnn { #ifdef HAVE_INF_ENGINE @@ -309,13 +314,26 @@ void InfEngineBackendNet::init() void InfEngineBackendNet::initPlugin(InferenceEngine::ICNNNetwork& net) { CV_Assert(!isInitialized()); + + InferenceEngine::StatusCode status; + InferenceEngine::ResponseDesc resp; + const InferenceEngine::Version* v = InferenceEngine::GetInferenceEngineVersion(); + + plugin = InferenceEngine::PluginDispatcher({""}).getSuitablePlugin(InferenceEngine::TargetDevice::eCPU); + if (std::atoi(v->buildNumber) > 5855) + { #ifdef _WIN32 - plugin = InferenceEngine::InferenceEnginePluginPtr("MKLDNNPlugin.dll"); + InferenceEngine::IExtensionPtr extension = + InferenceEngine::make_so_pointer("cpu_extension.dll"); #else - plugin = InferenceEngine::InferenceEnginePluginPtr("libMKLDNNPlugin.so"); + InferenceEngine::IExtensionPtr extension = + InferenceEngine::make_so_pointer("libcpu_extension.so"); #endif // _WIN32 - InferenceEngine::ResponseDesc resp; - InferenceEngine::StatusCode status = plugin->LoadNetwork(net, &resp); + status = plugin->AddExtension(extension, &resp); + if (status != InferenceEngine::StatusCode::OK) + CV_Error(Error::StsAssert, resp.msg); + } + status = plugin->LoadNetwork(net, &resp); if (status != InferenceEngine::StatusCode::OK) CV_Error(Error::StsAssert, resp.msg); }