MCPcopy Create free account
hub / github.com/alibaba/euler / Optimizer

Method Optimizer

euler/parser/optimizer.h:32–87  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

30class Optimizer {
31 public:
32 explicit Optimizer(OptimizerType type, int32_t shard_num) {
33 type_ = type;
34 shard_num_ = shard_num;
35 local_only_ops_ = {
36 "AS", "REMOTE",
37 "API_GET_NB_FILTER",
38 "POST_PROCESS",
39 "BROAD_CAST_SPLIT",
40 "SAMPLE_NODE_SPLIT",
41 "SAMPLE_EDGE_SPLIT",
42 "GP_BROAD_CAST_SPLIT",
43 "GP_APPEND_MERGE",
44 "GP_UNIQUE_MERGE",
45 "GP_IDX_MERGE",
46 "GP_DATA_MERGE",
47 "GP_REGULAR_DATA_MERGE"};
48
49 /* key=op_name:input
50 * value=split_op:total_inputs*/
51 graph_part_mode_split_map_ = {
52 {"API_SAMPLE_NODE:0", "BROAD_CAST_SPLIT:0"},
53 {"API_SAMPLE_NODE:1", "SAMPLE_NODE_SPLIT:1,0"},
54 {"API_SAMPLE_EDGE:0", "BROAD_CAST_SPLIT:0"},
55 {"API_SAMPLE_EDGE:1", "SAMPLE_EDGE_SPLIT:1,0"},
56 {"API_GET_NODE:0", "GP_BROAD_CAST_SPLIT:0"},
57 {"API_GET_EDGE:0", "GP_BROAD_CAST_SPLIT:0"},
58 {"API_SAMPLE_NB:0", "GP_BROAD_CAST_SPLIT:0"},
59 {"API_GET_NB_NODE:0", "GP_BROAD_CAST_SPLIT:0"},
60 {"API_GET_NODE_T:0", "GP_BROAD_CAST_SPLIT:0"},
61 {"API_GET_P:0", "GP_BROAD_CAST_SPLIT:0"}};
62
63 /* key=op_name:output_idx
64 *
65 * value=
66 * merge_op_name:
67 * merge_info_relate_input_idx(key_input):
68 * input_idx_list(output idxs like "0,1")*/
69 graph_part_mode_merge_map_ = {
70 {"API_SAMPLE_NODE:0", "GP_APPEND_MERGE:1:0"},
71 {"API_SAMPLE_EDGE:0", "GP_APPEND_MERGE:1:0"},
72 {"API_GET_NODE:0", "GP_UNIQUE_MERGE:-1:0"},
73 {"API_GET_EDGE:0", "GP_UNIQUE_MERGE:-1:0"},
74 // GP_IDX_MERGE need to consider merge_idx duplicate problem
75 {"API_SAMPLE_NB:0", "GP_IDX_MERGE:0:0"},
76 // GP_DATA_MERGE need to consider merge_idx duplicate problem
77 {"API_SAMPLE_NB:1", "GP_DATA_MERGE:0:1,0"},
78 {"API_SAMPLE_NB:2", "GP_DATA_MERGE:0:2,0"},
79 {"API_SAMPLE_NB:3", "GP_DATA_MERGE:0:3,0"},
80 {"API_GET_NB_NODE:0", "GP_IDX_MERGE:0:0"},
81 {"API_GET_NB_NODE:1", "GP_DATA_MERGE:0:1,0"},
82 {"API_GET_NB_NODE:2", "GP_DATA_MERGE:0:2,0"},
83 {"API_GET_NB_NODE:3", "GP_DATA_MERGE:0:3,0"},
84 {"API_GET_NODE_T:0", "GP_REGULAR_DATA_MERGE:0:0"},
85 {"API_GET_P:even", "GP_IDX_MERGE:0:even"},
86 {"API_GET_P:odd", "GP_DATA_MERGE:0:odd,even"}};
87 }
88
89 void AddRule(std::shared_ptr<OptimizeRule> rule) {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected