AssignMemory2HasRefAttrNode

pull/770/head
lianghao 4 years ago
parent 49a014c687
commit acafc1b578

@ -89,6 +89,14 @@ Status VariableMemoryAssigner::AssignVarAttr2Nodes() {
return ge::SUCCESS;
}
Status VariableMemoryAssigner::AssignMemory2HasRefAttrNode() {
Status result = ge::VarMemAssignUtil::AssignMemory2HasRefAttrNode(compute_graph_);
if (result != ge::SUCCESS) {
return result;
}
return ge::SUCCESS;
}
Status GraphMemoryAssigner::AssignMemory() {
ge::HybridMemAssignerPtr mem_assigner(new (std::nothrow) HybridMemAssigner(compute_graph_));
if (mem_assigner->Assign() != ge::SUCCESS) {
@ -131,6 +139,19 @@ ge::Status GraphMemoryAssigner::AssignVarAttr2Nodes() {
return ge::SUCCESS;
}
ge::Status GraphMemoryAssigner::AssignMemory2HasRefAttrNode() {
auto variable_assigner =
std::unique_ptr<ge::VariableMemoryAssigner>(new (std::nothrow) ge::VariableMemoryAssigner(compute_graph_));
if (variable_assigner == nullptr) {
GELOGE(ge::FAILED, "Alloc VariableMemoryAssigner failed.");
return ge::FAILED;
}
if (variable_assigner->AssignMemory2HasRefAttrNode() != ge::SUCCESS) {
return ge::FAILED;
}
return ge::SUCCESS;
}
ge::Status GraphMemoryAssigner::CalculateTensorRealSizeAndOutSize(const ge::ConstGeTensorDescPtr &output_desc,
int64_t dim_index, int64_t &output_mem_size,
int64_t &batch_dim_num, int64_t &out_size) {

@ -63,6 +63,8 @@ class VariableMemoryAssigner {
///
ge::Status AssignVarAttr2Nodes();
ge::Status AssignMemory2HasRefAttrNode();
private:
ge::ComputeGraphPtr compute_graph_;
};
@ -97,6 +99,8 @@ class GraphMemoryAssigner {
///
ge::Status AssignVarAttr2Nodes();
ge::Status AssignMemory2HasRefAttrNode();
ge::Status ReAssignMemory(bool is_loop_graph, size_t &mem_offset);
ge::Status AssignZeroCopyMemory(size_t &mem_offset, size_t &zero_mem_copy_size);

@ -40,6 +40,11 @@ Status MemoryAssigner::AssignMemory(bool is_loop_graph, size_t &mem_offset, size
return ge::FAILED;
}
if (graph_mem_assigner.AssignMemory2HasRefAttrNode() != ge::SUCCESS) {
GELOGE(ge::FAILED, "Assign memory 2 HasRef AttrNode failed");
return ge::FAILED;
}
// Assign memory for reference
if (graph_mem_assigner.AssignReferenceMemory() != ge::SUCCESS) {
GELOGE(ge::FAILED, "Assign reference memory failed!");

@ -34,7 +34,6 @@ using std::vector;
namespace ge {
Status VarMemAssignUtil::AssignVarMemory(ge::ComputeGraphPtr &compute_graph) {
GE_CHK_STATUS_RET(AssignMemory2VariableNode(compute_graph));
GE_CHK_STATUS_RET(AssignMemory2HasRefAttrNode(compute_graph));
return SUCCESS;
}

Loading…
Cancel
Save