提交 5b6b1ad7 编写于 作者: M mindspore-ci-bot 提交者: Gitee

!394 [AutoParallel] Simplify rec-prog parser mechanism

Merge pull request !394 from Chong/parser
......@@ -43,39 +43,24 @@ const std::map<std::string, OperatorType> DictOpType{
const TensorParam MakeTensor(int n, int c, int h, int w);
bool IsInList(const std::string& name, const std::vector<std::string>& list);
Graph::NodeType MakeNewOperator(std::vector<std::shared_ptr<OperatorInfo>> ops, size_t iter_ops);
Graph::NodeType MakeNewTensor(std::vector<std::shared_ptr<OperatorInfo>> ops, const size_t iter_ops,
const std::string& input, const size_t iter_input_tensors, std::shared_ptr<Graph> graph,
size_t current_op_index);
void Fill2DTensor(const std::vector<std::shared_ptr<OperatorInfo>>& ops, const size_t iter_ops,
const std::shared_ptr<Graph> graph, const size_t iter_input_tensors, const size_t current_op_index,
Graph::NodeType NewTensor);
void CompleteOperatorInputs(std::vector<std::shared_ptr<OperatorInfo>> ops, size_t iter_ops, size_t iter_input_tensors,
size_t current_op_index, std::shared_ptr<Graph> graph);
void Complete2DInputs(const std::vector<std::shared_ptr<OperatorInfo>>& ops, const size_t iter_ops,
const std::shared_ptr<Graph> graph, const size_t iter_input_tensors,
const size_t current_op_index);
void MakeEdge(std::shared_ptr<Graph> graph, const size_t input_index, const size_t current_op_index);
TensorParam Fill2DTensor(const std::vector<std::shared_ptr<OperatorInfo>>& ops, const size_t iter_ops,
Graph::NodeType NewTensor);
OperatorRec CompleteOperatorInputs(const std::vector<std::shared_ptr<OperatorInfo>>& ops, const size_t iter_ops,
Graph::NodeType NewTensor);
void ModifyTensorToOperator(std::shared_ptr<Graph> graph, const size_t current_op_index, const size_t iter_ops,
std::vector<std::shared_ptr<OperatorInfo>> ops);
TensorParam Complete2DInputs(const std::vector<std::shared_ptr<OperatorInfo>>& ops, const size_t iter_ops,
const size_t iter_input_tensor, Graph::NodeType NewTensor);
std::shared_ptr<Graph> ParseGraph(const std::vector<std::shared_ptr<OperatorInfo>>& ops,
const std::vector<std::vector<std::string>>& input_tensor_names,
const std::shared_ptr<std::vector<size_t>>& ops_nodes_list);
const std::vector<std::vector<std::string>>& input_tensor_names);
void LinkOps(std::shared_ptr<Graph> graph, std::vector<std::shared_ptr<OperatorInfo>> ops,
const std::vector<std::vector<std::string>>& input_tensor_names, std::vector<std::string> current_graph,
const size_t iter_ops, const size_t current_op_index);
void MakeEdge(const std::vector<std::vector<std::string>>& input_tensor_names, std::shared_ptr<Graph> graph);
std::shared_ptr<Graph> EliminateGraph(const std::shared_ptr<Graph> graph,
std::shared_ptr<std::vector<std::vector<size_t>>> eli_list,
std::shared_ptr<std::vector<size_t>> index_list);
void Eliminate_Aux(const size_t node_index, std::shared_ptr<Graph> graph,
const std::shared_ptr<std::vector<std::vector<size_t>>> eli_list);
size_t GetIndexInInputTensorNames(const std::vector<std::vector<std::string>>& input_tensor_names,
const std::string& input_name);
} // namespace parallel
} // namespace mindspore
#endif // PARALLEL_AUTO_PARALLEL_REC_PARSE_GRAPH_H_
......@@ -462,7 +462,6 @@ Status ConstructCostGraphNodes(const std::vector<AnfNodePtr> &all_nodes, const F
// Needed by rec_parser
operator_info->set_type(prim->name());
std::vector<std::string> inputs_tensor_name = ExtractInputsTensorName(cnode);
operator_info->set_cnode_name(cnode->ToString());
entire_costgraph->AddOperator(operator_info);
(void)cnode->set_operator_info(operator_info);
......@@ -935,9 +934,8 @@ Status ParallelStrategyRecSearch(const std::vector<AnfNodePtr> &all_nodes, const
std::shared_ptr<std::vector<size_t>> index_list(new std::vector<size_t>);
std::shared_ptr<std::vector<std::vector<size_t>>> eli_list(new std::vector<std::vector<size_t>>);
std::shared_ptr<Graph> graph = ParseGraph(ops, input_tensor_names, ops_nodes_list);
std::shared_ptr<Graph> graph = ParseGraph(ops, input_tensor_names);
graph = EliminateGraph(graph, eli_list, index_list);
size_t num_device = g_device_manager->DeviceNum();
if (PartitionForAllDevices(num_device, graph) == SUCCESS) {
MS_LOG(INFO) << "Partition Success With " << num_device << " devices.";
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册