已合并
fix: 修复ST中架构硬编码、失效用例与桩符号缺失导致的失败和超时 #5111
yelongjian创建于 16 天前
fix: 修复ST中架构硬编码、失效用例与桩符号缺失导致的失败和超时 #5111
已合并
yelongjian创建于 16 天前
共 10 个文件变更+37-195
@@ -58,7 +58,6 @@
58 "node_def":[58 "node_def":[
59 {59 {
60 "node_type":"TestNodeType1",60 "node_type":"TestNodeType1",
61- "resource_type":"X86",
62 "support_links":"[HCCS, PCIE, ROCE]",61 "support_links":"[HCCS, PCIE, ROCE]",
63 "item_type":"TestSocType1",62 "item_type":"TestSocType1",
64 "inter_item_memory_access_mode": "[NUMA]",63 "inter_item_memory_access_mode": "[NUMA]",
@@ -23,7 +23,6 @@
23 "node_def":[23 "node_def":[
24 {24 {
25 "node_type":"TestNodeType1",25 "node_type":"TestNodeType1",
26- "resource_type":"X86",
27 "support_links":"[HCCS, PCIE, ROCE]",26 "support_links":"[HCCS, PCIE, ROCE]",
28 "item_type":"TestSocType1",27 "item_type":"TestSocType1",
29 "inter_item_memory_access_mode": "[NUMA]",28 "inter_item_memory_access_mode": "[NUMA]",
@@ -38,7 +38,6 @@
38 "node_def":[38 "node_def":[
39 {39 {
40 "node_type":"TestNodeType1",40 "node_type":"TestNodeType1",
41- "resource_type":"X86",
42 "support_links":"[HCCS, PCIE, ROCE]",41 "support_links":"[HCCS, PCIE, ROCE]",
43 "item_type":"TestSocType1",42 "item_type":"TestSocType1",
44 "inter_item_memory_access_mode": "[NUMA]",43 "inter_item_memory_access_mode": "[NUMA]",
@@ -58,7 +58,6 @@
58 "node_def":[58 "node_def":[
59 {59 {
60 "node_type":"TestNodeType1",60 "node_type":"TestNodeType1",
61- "resource_type":"X86",
62 "support_links":"[HCCS, PCIE, ROCE]",61 "support_links":"[HCCS, PCIE, ROCE]",
63 "item_type":"TestSocType1",62 "item_type":"TestSocType1",
64 "inter_item_memory_access_mode": "[NUMA]",63 "inter_item_memory_access_mode": "[NUMA]",
@@ -985,7 +985,10 @@ Status MockInitializeHeterogeneousRuntime2(const std::map<std::string, std::stri
985class STEST_helper_runtime : public testing::Test {985class STEST_helper_runtime : public testing::Test {
986 protected:986 protected:
987 static void SetUpTestSuite() {987 static void SetUpTestSuite() {
988- std::string cmd = R"(988+ /* the host resource type dir must follow the running architecture, otherwise the
989+ * release pkg prepared here is not the one UdfModel::SerializeModel looks for. */
990+ const std::string host_res_type = ExecutionRuntime::IsX86() ? "X86" : "Aarch";
991+ std::string cmd = "HOST_RES=" + host_res_type + R"(
989mkdir -p ./temp_udf_st/build/_test/Ascend/release992mkdir -p ./temp_udf_st/build/_test/Ascend/release
990cd ./temp_udf_st/build/_test/Ascend/release993cd ./temp_udf_st/build/_test/Ascend/release
991touch func_pp0_release.om994touch func_pp0_release.om
@@ -995,8 +998,8 @@ echo "test1_release" > func_pp0_release.so
995tar -cvf func_pp0_release.tar.gz func_pp0_release.om func_pp0_release.so998tar -cvf func_pp0_release.tar.gz func_pp0_release.om func_pp0_release.so
996rm -rf func_pp0_release.om func_pp0_release.so999rm -rf func_pp0_release.om func_pp0_release.so
997cd -1000cd -
998-mkdir -p ./temp_udf_st/build/_test/X86/release1001+mkdir -p ./temp_udf_st/build/_test/${HOST_RES}/release
999-cd ./temp_udf_st/build/_test/X86/release1002+cd ./temp_udf_st/build/_test/${HOST_RES}/release
1000touch func_pp1_release.om1003touch func_pp1_release.om
1001touch func_pp1_release.so1004touch func_pp1_release.so
1002echo "Hello" > func_pp1_release.om1005echo "Hello" > func_pp1_release.om
@@ -1004,8 +1007,8 @@ echo "test1_release" > func_pp1_release.so
1004tar -cvf func_pp1_release.tar.gz func_pp1_release.om func_pp1_release.so1007tar -cvf func_pp1_release.tar.gz func_pp1_release.om func_pp1_release.so
1005rm -rf func_pp1_release.om func_pp1_release.so1008rm -rf func_pp1_release.om func_pp1_release.so
1006cd -1009cd -
1007-cp ./temp_udf_st/build/_test/Ascend/release/func_pp0_release.tar.gz ./temp_udf_st/build/_test/X86/release/1010+cp ./temp_udf_st/build/_test/Ascend/release/func_pp0_release.tar.gz ./temp_udf_st/build/_test/${HOST_RES}/release/
1008-cp ./temp_udf_st/build/_test/X86/release/func_pp1_release.tar.gz ./temp_udf_st/build/_test/Ascend/release/1011+cp ./temp_udf_st/build/_test/${HOST_RES}/release/func_pp1_release.tar.gz ./temp_udf_st/build/_test/Ascend/release/
1009)";1012)";
1010 (void)system(cmd.c_str());1013 (void)system(cmd.c_str());
1011 }1014 }
@@ -13,6 +13,15 @@
13#include "cpu_kernel.h"13#include "cpu_kernel.h"
14 14 
15namespace aicpu {15namespace aicpu {
16+CpuKernelContext::CpuKernelContext(DeviceType type) {
17+ (void)type;
18+}
19+ 
20+uint32_t CpuKernelContext::Init(void *nodeDef) {
21+ (void)nodeDef;
22+ return 0;
23+}
24+ 
16CpuKernelRegister &CpuKernelRegister::Instance() {25CpuKernelRegister &CpuKernelRegister::Instance() {
17 static CpuKernelRegister instance;26 static CpuKernelRegister instance;
18 return instance;27 return instance;
@@ -16,6 +16,10 @@ target_compile_options(runtime_aicpu_stub PRIVATE
16 -fPIC16 -fPIC
17)17)
18 18 
19+target_include_directories(runtime_aicpu_stub PRIVATE
20+ ${ASCEND_INSTALL_PATH}/include
21+)
22+ 
19target_link_libraries(runtime_aicpu_stub23target_link_libraries(runtime_aicpu_stub
20 PRIVATE24 PRIVATE
21 c_sec25 c_sec
@@ -9,6 +9,8 @@
9 */9 */
10 10 
11#include <securec.h>11#include <securec.h>
12+#include "acl/acl_rt.h"
13+#include "acl/acl_base_rt.h"
12#include "runtime/base.h"14#include "runtime/base.h"
13#include "runtime/context.h"15#include "runtime/context.h"
14#include "runtime/mem.h"16#include "runtime/mem.h"
@@ -18,6 +20,18 @@
18 20 
19#define EVENT_LENTH 1021#define EVENT_LENTH 10
20 22 
23+aclError aclrtGetDevice(int32_t *deviceId) {
24+ (void)deviceId;
25+ return ACL_ERROR_RT_FAILURE;
26+}
27+ 
28+aclError aclrtGetDeviceInfo(uint32_t deviceId, aclrtDevAttr attr, int64_t *value) {
29+ (void)deviceId;
30+ (void)attr;
31+ (void)value;
32+ return ACL_ERROR_RT_FAILURE;
33+}
34+ 
21rtError_t rtCtxSetCurrent(rtContext_t ctx) {35rtError_t rtCtxSetCurrent(rtContext_t ctx) {
22 return RT_ERROR_NONE;36 return RT_ERROR_NONE;
23}37}
@@ -21,7 +21,6 @@
21#include "inc/ffts_error_codes.h"21#include "inc/ffts_error_codes.h"
22#include "inc/ffts_type.h"22#include "inc/ffts_type.h"
23#include "task_builder/fftsplus_ops_kernel_builder.h"23#include "task_builder/fftsplus_ops_kernel_builder.h"
24-#include "task_builder/mode/manual/manual_thread_task_builder.h"
25#include "graph/node.h"24#include "graph/node.h"
26#include "graph_builder_utils.h"25#include "graph_builder_utils.h"
27#include "graph/utils/tensor_utils.h"26#include "graph/utils/tensor_utils.h"
@@ -888,17 +888,6 @@ TEST_F(FFTSPlusOpsKernelBuilderSTest, Finalize_SUCCESS) {
888 EXPECT_EQ(ffts::SUCCESS, ret);888 EXPECT_EQ(ffts::SUCCESS, ret);
889}889}
890 890 
891-TEST_F(FFTSPlusOpsKernelBuilderSTest, GenerateTask_SUCCESS) {
892- ComputeGraphPtr graph = BuildGraph_Readonly_ScopeWrite();
893- auto ifnode = graph->FindNode("if");
894- 
895- vector<domi::TaskDef> tasks;
896- ffts_plus_ops_kernel_builder_ptr->schecule_policy_pass_ = ScheculePolicyPassStub2;
897- Status ret = ffts_plus_ops_kernel_builder_ptr->GenerateTask(*ifnode, _context, tasks);
898- 
899- EXPECT_EQ(ffts::SUCCESS, ret);
900-}
901- 
902Status ScheculePolicyPassStub3(domi::TaskDef &task_def, std::vector<ffts::FftsPlusContextPath> &ctx_path_vector) {891Status ScheculePolicyPassStub3(domi::TaskDef &task_def, std::vector<ffts::FftsPlusContextPath> &ctx_path_vector) {
903 // construct a sub-graph and set precnt892 // construct a sub-graph and set precnt
904 domi::FftsPlusTaskDef *ffts_plus_task_def = task_def.mutable_ffts_plus_task();893 domi::FftsPlusTaskDef *ffts_plus_task_def = task_def.mutable_ffts_plus_task();
@@ -929,8 +918,8 @@ Status ScheculePolicyPassStub3(domi::TaskDef &task_def, std::vector<ffts::FftsPl
929 ffts_plus_ctx_def = ffts_plus_task_def->mutable_ffts_plus_ctx(29);918 ffts_plus_ctx_def = ffts_plus_task_def->mutable_ffts_plus_ctx(29);
930 ffts_plus_ctx_def->set_context_type(RT_CTX_TYPE_INVALIDATE_DATA);919 ffts_plus_ctx_def->set_context_type(RT_CTX_TYPE_INVALIDATE_DATA);
931 auto notify = ffts_plus_ctx_def->mutable_data_ctx();920 auto notify = ffts_plus_ctx_def->mutable_data_ctx();
932- nofity->set_cnt(2);921+ notify->set_cnt(2);
933- nofity->set_cnt_init(2);922+ notify->set_cnt_init(2);
934 ffts_plus_ctx_def = ffts_plus_task_def->mutable_ffts_plus_ctx(30);923 ffts_plus_ctx_def = ffts_plus_task_def->mutable_ffts_plus_ctx(30);
935 ffts_plus_ctx_def->set_context_type(RT_CTX_TYPE_AICORE);924 ffts_plus_ctx_def->set_context_type(RT_CTX_TYPE_AICORE);
936 aicaiv = ffts_plus_ctx_def->mutable_aic_aiv_ctx();925 aicaiv = ffts_plus_ctx_def->mutable_aic_aiv_ctx();
@@ -1079,22 +1068,6 @@ Status CheckScheculePolicyPass(domi::FftsPlusTaskDef *ffts_plus_task_def) {
1079 return ffts::SUCCESS;1068 return ffts::SUCCESS;
1080}1069}
1081 1070 
1082-TEST_F(FFTSPlusOpsKernelBuilderSTest, GenerateTask_Greater60_Schecule_SUCCESS) {
1083- ComputeGraphPtr graph = BuildGraph_Greater60();
1084- auto sub_node = graph->FindNode("sub_node");
1085- vector<domi::TaskDef> tasks;
1086- ffts_plus_ops_kernel_builder_ptr->schecule_policy_pass_ = ScheculePolicyPassStub3;
1087- Status ret = ffts_plus_ops_kernel_builder_ptr->GenerateTask(*sub_node, _context, tasks);
1088- EXPECT_EQ(ffts::SUCCESS, ret);
1089- if (tasks.empty()) {
1090- EXPECT_EQ(ffts::SUCCESS, ffts::FAILED);
1091- }
1092- domi::FftsPlusTaskDef *ffts_plus_task_def = tasks[0].mutable_ffts_plus_task();
1093- ASSERT_EQ(ffts_plus_task_def->ffts_plus_ctx_size(), 63);
1094- // check if ctx is ok
1095- ASSERT_EQ(ffts::SUCCESS, CheckScheculePolicyPass(ffts_plus_task_def));
1096-}
1097- 
1098Status ScheculePolicyPassStub4(domi::TaskDef &task_def, std::vector<ffts::FftsPlusContextPath> &ctx_path_vector) {1071Status ScheculePolicyPassStub4(domi::TaskDef &task_def, std::vector<ffts::FftsPlusContextPath> &ctx_path_vector) {
1099 // construct a sub-graph and set precnt1072 // construct a sub-graph and set precnt
1100 domi::FftsPlusTaskDef *ffts_plus_task_def = task_def.mutable_ffts_plus_task();1073 domi::FftsPlusTaskDef *ffts_plus_task_def = task_def.mutable_ffts_plus_task();
@@ -1127,32 +1100,6 @@ TEST_F(FFTSPlusOpsKernelBuilderSTest, GenerateTask_Greater60_Schecule_READYNUM_F
1127 EXPECT_EQ(ffts::FAILED, ret);1100 EXPECT_EQ(ffts::FAILED, ret);
1128}1101}
1129 1102 
1130-TEST_F(FFTSPlusOpsKernelBuilderSTest, GenerateTask_Greater60_SUCCESS) {
1131- ComputeGraphPtr graph = BuildGraph_Greater60();
1132- auto sub_node = graph->FindNode("sub_node");
1133- vector<domi::TaskDef> tasks;
1134- ffts_plus_ops_kernel_builder_ptr->schecule_policy_pass_ = ScheculePolicyPassStub2;
1135- Status ret = ffts_plus_ops_kernel_builder_ptr->GenerateTask(*sub_node, _context, tasks);
1136- domi::FftsPlusTaskDef *ffts_plus_task_def = tasks[0].mutable_ffts_plus_task();
1137- EXPECT_EQ(ffts::SUCCESS, ret);
1138- ASSERT_EQ(ffts_plus_task_def->ffts_plus_ctx_size(), 64);
1139-}
1140- 
1141-TEST_F(FFTSPlusOpsKernelBuilderSTest, Mix_GenerateTask_SUCCESS) {
1142- ComputeGraphPtr graph = BuildGraph_Mix_ScopeWrite();
1143- cout << "========================MIX AIC/AIV GENTASK BEGIN========================" << endl;
1144- auto sub_node = graph->FindNode("sub_node");
1145- 
1146- if (sub_node == nullptr) {
1147- cout << "[ERROR] FE:sub node is nullptr";
1148- }
1149- vector<domi::TaskDef> tasks;
1150- ffts_plus_ops_kernel_builder_ptr->schecule_policy_pass_ = ScheculePolicyPassStub2;
1151- Status ret = ffts_plus_ops_kernel_builder_ptr->GenerateTask(*sub_node, _context, tasks);
1152- 
1153- EXPECT_EQ(ffts::SUCCESS, ret);
1154-}
1155- 
1156/*1103/*
1157 * data11104 * data1
1158 * |1105 * |
@@ -2459,45 +2406,6 @@ TEST_F(FFTSPlusOpsKernelBuilderSTest, RTSOP_GenerateTask_SUCCESS) {
2459 EXPECT_EQ(ffts::FAILED, ret);2406 EXPECT_EQ(ffts::FAILED, ret);
2460}2407}
2461 2408 
2462-TEST_F(FFTSPlusOpsKernelBuilderSTest, Auto_RTSOP_GenerateTask_SUCCESS) {
2463- ComputeGraphPtr func_op_branch_graph = nullptr;
2464- ComputeGraphPtr graph = BuildGraph_RuntimeOp_ScopeWrite(func_op_branch_graph, true);
2465- cout << "========================AUTO RTSOP GENTASK BEGIN========================" << endl;
2466- auto sub_node = graph->FindNode("sub_node");
2467- EXPECT_NE(sub_node, nullptr);
2468- auto cpy_node = func_op_branch_graph->FindNode("identity");
2469- EXPECT_NE(cpy_node, nullptr);
2470- const auto &tensor_desc = cpy_node->GetOpDesc()->MutableInputDesc(0U);
2471- EXPECT_NE(tensor_desc, nullptr);
2472- tensor_desc->SetShape(GeShape({-1, -1}));
2473- 
2474- RunContext context = CreateContext();
2475- RunContextPtr contxt_ptr = std::make_shared<ge::RunContext>(context);
2476- for (auto node : func_op_branch_graph->GetAllNodes()) {
2477- (void)node->GetOpDesc()->SetExtAttr(kRuntimeContentx, contxt_ptr);
2478- }
2479- vector<domi::TaskDef> tasks;
2480- ffts_plus_ops_kernel_builder_ptr->schecule_policy_pass_ = ScheculePolicyPassStub2;
2481- Status ret = ffts_plus_ops_kernel_builder_ptr->GenerateTask(*sub_node, context, tasks);
2482- EXPECT_EQ(ffts::SUCCESS, ret);
2483-}
2484- 
2485-TEST_F(FFTSPlusOpsKernelBuilderSTest, AICPU_GenerateTask_Schecule_Failed) {
2486- ComputeGraphPtr graph = BuildGraph_AICPU_ScopeWrite();
2487- cout << "========================aicpu GENTASK BEGIN========================" << endl;
2488- auto sub_node = graph->FindNode("sub_node");
2489- 
2490- if (sub_node == nullptr) {
2491- cout << "[ERROR] FE:sub node is nullptr";
2492- }
2493- RunContext context = CreateContext();
2494- vector<domi::TaskDef> tasks;
2495- ffts_plus_ops_kernel_builder_ptr->schecule_policy_pass_ = ScheculePolicyPassStub1;
2496- Status ret = ffts_plus_ops_kernel_builder_ptr->GenerateTask(*sub_node, context, tasks);
2497- 
2498- EXPECT_EQ(ffts::SUCCESS, ret);
2499-}
2500- 
2501TEST_F(FFTSPlusOpsKernelBuilderSTest, RTSOP_UNFOLDCALLONLYONEDEPTH) {2409TEST_F(FFTSPlusOpsKernelBuilderSTest, RTSOP_UNFOLDCALLONLYONEDEPTH) {
2502 ComputeGraphPtr func_op_branch_graph = nullptr;2410 ComputeGraphPtr func_op_branch_graph = nullptr;
2503 ComputeGraphPtr graph = BuildGraph_RuntimeOp_ScopeWrite(func_op_branch_graph, false);2411 ComputeGraphPtr graph = BuildGraph_RuntimeOp_ScopeWrite(func_op_branch_graph, false);
@@ -2514,97 +2422,6 @@ TEST_F(FFTSPlusOpsKernelBuilderSTest, RTSOP_UNFOLDCALLONLYONEDEPTH) {
2514 EXPECT_EQ(ffts::FAILED, ret);2422 EXPECT_EQ(ffts::FAILED, ret);
2515}2423}
2516 2424 
2517-TEST_F(FFTSPlusOpsKernelBuilderSTest, RTSOP_GenerateTask_IF_SETIF) {
2518- ComputeGraphPtr graph = BuildGraph_RuntimeOp_If_ScopeWrite();
2519- cout << "\n========================IF START ========================" << endl;
2520- auto sub_node = graph->FindNode("sub_node");
2521- 
2522- if (sub_node == nullptr) {
2523- cout << "[ERROR] FE:sub node is nullptr";
2524- }
2525- RunContext context = CreateContext();
2526- vector<domi::TaskDef> tasks;
2527- ffts_plus_ops_kernel_builder_ptr->schecule_policy_pass_ = ScheculePolicyPassStub2;
2528- Status ret = ffts_plus_ops_kernel_builder_ptr->GenerateTask(*sub_node, context, tasks);
2529- EXPECT_EQ(ffts::SUCCESS, ret);
2530-}
2531- 
2532-TEST_F(FFTSPlusOpsKernelBuilderSTest, RTSOP_GenerateTask_CASE_SETIF) {
2533- ComputeGraphPtr graph = BuildGraph_RuntimeOp_Case_ScopeWrite();
2534- cout << "========================CASE START ========================" << endl;
2535- auto sub_node = graph->FindNode("sub_node");
2536- 
2537- if (sub_node == nullptr) {
2538- cout << "[ERROR] FE:sub node is nullptr";
2539- }
2540- RunContext context = CreateContext();
2541- vector<domi::TaskDef> tasks;
2542- ffts_plus_ops_kernel_builder_ptr->schecule_policy_pass_ = ScheculePolicyPassStub2;
2543- Status ret = ffts_plus_ops_kernel_builder_ptr->GenerateTask(*sub_node, context, tasks);
2544- EXPECT_EQ(ffts::SUCCESS, ret);
2545-}
2546- 
2547-TEST_F(FFTSPlusOpsKernelBuilderSTest, RTSOP_GenerateTask_While_SETIF) {
2548- ComputeGraphPtr graph = BuildGraph_RuntimeOp_While_ScopeWrite();
2549- cout << "========================WHILE START ========================" << endl;
2550- auto sub_node = graph->FindNode("sub_node");
2551- 
2552- if (sub_node == nullptr) {
2553- cout << "[ERROR] FE:sub node is nullptr";
2554- }
2555- RunContext context = CreateContext();
2556- vector<domi::TaskDef> tasks;
2557- ffts_plus_ops_kernel_builder_ptr->schecule_policy_pass_ = ScheculePolicyPassStub2;
2558- Status ret = ffts_plus_ops_kernel_builder_ptr->GenerateTask(*sub_node, context, tasks);
2559- EXPECT_EQ(ffts::SUCCESS, ret);
2560-}
2561- 
2562-TEST_F(FFTSPlusOpsKernelBuilderSTest, RTSOP_GenerateTask_If_If_SETIF) {
2563- ComputeGraphPtr graph = BuildGraph_RuntimeOp_If_If_ScopeWrite();
2564- cout << "========================If_If START ========================" << endl;
2565- auto sub_node = graph->FindNode("sub_node");
2566- 
2567- if (sub_node == nullptr) {
2568- cout << "[ERROR] FE:sub node is nullptr";
2569- }
2570- RunContext context = CreateContext();
2571- vector<domi::TaskDef> tasks;
2572- ffts_plus_ops_kernel_builder_ptr->schecule_policy_pass_ = ScheculePolicyPassStub2;
2573- Status ret = ffts_plus_ops_kernel_builder_ptr->GenerateTask(*sub_node, context, tasks);
2574- EXPECT_EQ(ffts::SUCCESS, ret);
2575-}
2576- 
2577-TEST_F(FFTSPlusOpsKernelBuilderSTest, AICPU_GenerateTask_SUCCESS) {
2578- ComputeGraphPtr graph = BuildGraph_AICPU_ScopeWrite();
2579- cout << "========================aicpu GENTASK BEGIN========================" << endl;
2580- auto sub_node = graph->FindNode("sub_node");
2581- 
2582- if (sub_node == nullptr) {
2583- cout << "[ERROR] FE:sub node is nullptr";
2584- }
2585- RunContext context = CreateContext();
2586- vector<domi::TaskDef> tasks;
2587- ffts_plus_ops_kernel_builder_ptr->schecule_policy_pass_ = ScheculePolicyPassStub2;
2588- Status ret = ffts_plus_ops_kernel_builder_ptr->GenerateTask(*sub_node, context, tasks);
2589- 
2590- EXPECT_EQ(ffts::SUCCESS, ret);
2591-}
2592- 
2593-TEST_F(FFTSPlusOpsKernelBuilderSTest, HCCL_GenerateTask_SUCCESS) {
2594- ComputeGraphPtr graph = BuildGraph_HCCL_Graph();
2595- cout << "========================hccl GENTASK BEGIN========================" << endl;
2596- auto sub_node = graph->FindNode("sub_node");
2597- if (sub_node == nullptr) {
2598- cout << "[ERROR] FE:sub node is nullptr";
2599- }
2600- RunContext context = CreateContext();
2601- vector<domi::TaskDef> tasks;
2602- ffts_plus_ops_kernel_builder_ptr->schecule_policy_pass_ = ScheculePolicyPassStub2;
2603- Status ret = ffts_plus_ops_kernel_builder_ptr->GenerateTask(*sub_node, context, tasks);
2604- 
2605- EXPECT_EQ(ffts::SUCCESS, ret);
2606-}
2607- 
2608ge::Status TestOpExtGenTask(const ge::Node &node, ge::RunContext &context, std::vector<domi::TaskDef> &tasks) {2425ge::Status TestOpExtGenTask(const ge::Node &node, ge::RunContext &context, std::vector<domi::TaskDef> &tasks) {
2609 domi::TaskDef tmp_task;2426 domi::TaskDef tmp_task;
2610 tasks.emplace_back(tmp_task);2427 tasks.emplace_back(tmp_task);