|
|
@@ -415,6 +415,15 @@ BlockMemAssigner::~BlockMemAssigner() { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void BlockMemAssigner::MarkContinuousAllocedForOneInput(OpDescPtr &node_op_desc) { |
|
|
|
// if input size just one, no need to reassign continuous memory |
|
|
|
bool is_input_continuous = false; |
|
|
|
(void)ge::AttrUtils::GetBool(node_op_desc, ATTR_NAME_CONTINUOUS_INPUT, is_input_continuous); |
|
|
|
if (is_input_continuous && (node_op_desc->GetInputsSize() <= 1)) { |
|
|
|
(void)ge::AttrUtils::SetBool(node_op_desc, ATTR_NAME_CONTINUOUS_INPUT_ALLOC, true); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void BlockMemAssigner::GetOutAndWorkSpaceMem(vector<int64_t> &all_memory_size) { |
|
|
|
vector<int64_t> temp; |
|
|
|
for (const NodePtr &n : compute_graph_->GetAllNodes()) { |
|
|
@@ -425,12 +434,7 @@ void BlockMemAssigner::GetOutAndWorkSpaceMem(vector<int64_t> &all_memory_size) { |
|
|
|
atomic_addr_clean_id_ = node_op_desc->GetId(); |
|
|
|
} |
|
|
|
|
|
|
|
// if input size just one, no need to reassign continuous memory |
|
|
|
bool is_input_continuous = false; |
|
|
|
(void)ge::AttrUtils::GetBool(node_op_desc, ATTR_NAME_CONTINUOUS_INPUT, is_input_continuous); |
|
|
|
if (is_input_continuous && (node_op_desc->GetInputsSize() <= 1)) { |
|
|
|
(void)ge::AttrUtils::SetBool(node_op_desc, ATTR_NAME_CONTINUOUS_INPUT_ALLOC, true); |
|
|
|
} |
|
|
|
MarkContinuousAllocedForOneInput(node_op_desc); |
|
|
|
|
|
|
|
for (auto &out_anchor : n->GetAllOutDataAnchors()) { |
|
|
|
GeTensorDesc output_desc = node_op_desc->GetOutputDesc(out_anchor->GetIdx()); |
|
|
|