|
|
@@ -69,6 +69,10 @@ graphStatus CompileNodesPass::Run(ComputeGraphPtr graph) { |
|
|
|
std::vector<NodePtr> node_vec{node}; |
|
|
|
kernel_to_compile_nodes.insert(std::make_pair(kernel_lib_name, node_vec)); |
|
|
|
} |
|
|
|
} else { |
|
|
|
GELOGE(GRAPH_FAILED, "Get node:%s, type:%s supported kernel failed.", node->GetName().c_str(), |
|
|
|
node->GetType().c_str()); |
|
|
|
return GRAPH_FAILED; |
|
|
|
} |
|
|
|
} |
|
|
|
// compile node follow different kernel, currently only TBE kernel |
|
|
@@ -108,6 +112,18 @@ graphStatus CompileNodesPass::GetSupportedKernel(const NodePtr &node, const std: |
|
|
|
// begin accuracy supported check |
|
|
|
if (!CheckAccuracySupport(kernel_info, instance, op_desc)) { |
|
|
|
// if check accuracy support failed , try to go to aicpu engine |
|
|
|
string aicpu_kernel_lib_name = kAICPUKernelLibName; |
|
|
|
OpsKernelInfoStorePtr aicpu_kernel_info = |
|
|
|
instance->OpsKernelManagerObj().GetOpsKernelInfoStore(aicpu_kernel_lib_name); |
|
|
|
if (aicpu_kernel_info == nullptr) { |
|
|
|
GELOGE(ge::GE_GRAPH_PARAM_NULLPTR, "Get aicpu kernel info store failed."); |
|
|
|
return ge::GE_GRAPH_PARAM_NULLPTR; |
|
|
|
} |
|
|
|
if (!CheckAccuracySupport(aicpu_kernel_info, instance, op_desc)) { |
|
|
|
GELOGE(GRAPH_FAILED, "AICPU engine does not support node:%s, type:%s , get kernel lib failed.", |
|
|
|
node->GetName().c_str(), op_desc->GetType().c_str()); |
|
|
|
return GRAPH_FAILED; |
|
|
|
} |
|
|
|
kernel_lib_name = kAICPUKernelLibName; |
|
|
|
} |
|
|
|
return GRAPH_SUCCESS; |
|
|
|