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
This commit is contained in:
committed by
Vadim Pisarevsky
parent
20334e3f09
commit
0d9c63744e
@@ -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
|
||||
)
|
||||
|
||||
@@ -9,6 +9,11 @@
|
||||
#include "op_inf_engine.hpp"
|
||||
#include <opencv2/dnn/shape_utils.hpp>
|
||||
|
||||
#ifdef HAVE_INF_ENGINE
|
||||
#include <ie_extension.h>
|
||||
#include <ie_plugin_dispatcher.hpp>
|
||||
#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());
|
||||
#ifdef _WIN32
|
||||
plugin = InferenceEngine::InferenceEnginePluginPtr("MKLDNNPlugin.dll");
|
||||
#else
|
||||
plugin = InferenceEngine::InferenceEnginePluginPtr("libMKLDNNPlugin.so");
|
||||
#endif // _WIN32
|
||||
|
||||
InferenceEngine::StatusCode status;
|
||||
InferenceEngine::ResponseDesc resp;
|
||||
InferenceEngine::StatusCode status = plugin->LoadNetwork(net, &resp);
|
||||
const InferenceEngine::Version* v = InferenceEngine::GetInferenceEngineVersion();
|
||||
|
||||
plugin = InferenceEngine::PluginDispatcher({""}).getSuitablePlugin(InferenceEngine::TargetDevice::eCPU);
|
||||
if (std::atoi(v->buildNumber) > 5855)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
InferenceEngine::IExtensionPtr extension =
|
||||
InferenceEngine::make_so_pointer<InferenceEngine::IExtension>("cpu_extension.dll");
|
||||
#else
|
||||
InferenceEngine::IExtensionPtr extension =
|
||||
InferenceEngine::make_so_pointer<InferenceEngine::IExtension>("libcpu_extension.so");
|
||||
#endif // _WIN32
|
||||
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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user