Fix: IExecutionProvider::GetCapability returns redundant subgraphs

This commit is contained in:
Changming Sun 2019-03-07 14:03:24 -08:00
parent e272feb60d
commit 3cd448e05a
2 changed files with 2 additions and 1 deletions

View file

@ -35,6 +35,7 @@ IExecutionProvider::GetCapability(const onnxruntime::GraphViewer& graph,
std::unique_ptr<IndexedSubGraph> sub_graph = std::make_unique<IndexedSubGraph>();
sub_graph->nodes.push_back(node.Index());
result.push_back(std::make_unique<ComputeCapability>(std::move(sub_graph)));
break;
}
}
}

View file

@ -864,7 +864,6 @@ bool CUDAExecutionProvider::ConvNeedFallbackToCPU(const onnxruntime::Node& node)
std::vector<std::unique_ptr<ComputeCapability>>
CUDAExecutionProvider::GetCapability(const onnxruntime::GraphViewer& graph,
const std::vector<const KernelRegistry*>& kernel_registries) const {
std::vector<std::unique_ptr<ComputeCapability>> result = IExecutionProvider::GetCapability(graph, kernel_registries);
for (auto& node : graph.Nodes()) {
bool fallback_to_cpu_provider = false;
@ -888,6 +887,7 @@ CUDAExecutionProvider::GetCapability(const onnxruntime::GraphViewer& graph,
update_node->SetExecutionProviderType(onnxruntime::kCpuExecutionProvider);
}
}
std::vector<std::unique_ptr<ComputeCapability>> result = IExecutionProvider::GetCapability(graph, kernel_registries);
return result;
}