1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
11 #include <file_utils.h>
13 #include "mkldnn_extension_mngr.h"
15 using namespace MKLDNNPlugin;
16 using namespace InferenceEngine;
18 void MKLDNNExtensionManager::AddExtension(IExtensionPtr extension) {
19 _extensions.push_back(extension);
22 InferenceEngine::ILayerImplFactory* MKLDNNExtensionManager::CreateExtensionFactory(
23 const InferenceEngine::CNNLayerPtr &layer) {
25 THROW_IE_EXCEPTION << "Cannot get cnn layer!";
26 ILayerImplFactory* factory = nullptr;
27 for (auto& ext : _extensions) {
28 ResponseDesc responseDesc;
30 rc = ext->getFactoryFor(factory, layer.get(), &responseDesc);
35 if (factory != nullptr) {
42 IShapeInferImpl::Ptr MKLDNNExtensionManager::CreateReshaper(const InferenceEngine::CNNLayerPtr &layer) {
44 THROW_IE_EXCEPTION << "Cannot get cnn layer!";
45 IShapeInferImpl::Ptr reshaper = nullptr;
46 for (auto& ext : _extensions) {
47 ResponseDesc responseDesc;
49 rc = ext->getShapeInferImpl(reshaper, layer->type.c_str(), &responseDesc);
54 if (reshaper != nullptr) {