Browse Source

clean idle mem in the beginning of ascend session

tags/v1.0.0
liangzelang 5 years ago
parent
commit
4c7291078c
7 changed files with 9 additions and 0 deletions
  1. +1
    -0
      mindspore/ccsrc/backend/session/ascend_session.cc
  2. +2
    -0
      mindspore/ccsrc/runtime/device/ascend/ascend_kernel_runtime.cc
  3. +1
    -0
      mindspore/ccsrc/runtime/device/ascend/ascend_kernel_runtime.h
  4. +2
    -0
      mindspore/ccsrc/runtime/device/ascend/ascend_memory_manager.cc
  5. +1
    -0
      mindspore/ccsrc/runtime/device/ascend/ascend_memory_manager.h
  6. +1
    -0
      mindspore/ccsrc/runtime/device/kernel_runtime.h
  7. +1
    -0
      mindspore/ccsrc/runtime/device/memory_manager.h

+ 1
- 0
mindspore/ccsrc/backend/session/ascend_session.cc View File

@@ -1032,6 +1032,7 @@ void AscendSession::AssignStaticMemory(NotNull<KernelGraphPtr> graph,
// assign static memory for parameters
auto runtime_instance = device::KernelRuntimeManager::Instance().GetKernelRuntime(kAscendDevice, device_id_);
MS_EXCEPTION_IF_NULL(runtime_instance);
runtime_instance->ClearGlobalIdleMem();
runtime_instance->AssignStaticMemoryInput(graph.get().get());
runtime_instance->AssignStaticMemoryValueNode(graph.get().get());
for (auto &child_graph : graph->child_graph_order()) {


+ 2
- 0
mindspore/ccsrc/runtime/device/ascend/ascend_kernel_runtime.cc View File

@@ -155,6 +155,8 @@ void AscendKernelRuntime::ClearGraphRuntimeResource(uint32_t graph_id, const std
}
}

void AscendKernelRuntime::ClearGlobalIdleMem() { mem_manager_->ClearGlobalIdleMem(); }

bool AscendKernelRuntime::NeedDestroyHccl() {
auto context_ptr = MsContext::GetInstance();
MS_EXCEPTION_IF_NULL(context_ptr);


+ 1
- 0
mindspore/ccsrc/runtime/device/ascend/ascend_kernel_runtime.h View File

@@ -47,6 +47,7 @@ class AscendKernelRuntime : public KernelRuntime {
void ClearGraphRuntimeResource(uint32_t graph_id, const std::vector<AnfNodePtr> &inputs,
const std::unordered_set<ValueNodePtr> &value_nodes,
const std::vector<CNodePtr> &execution_order) override;
void ClearGlobalIdleMem() override;
bool SyncStream() override;

protected:


+ 2
- 0
mindspore/ccsrc/runtime/device/ascend/ascend_memory_manager.cc View File

@@ -77,6 +77,8 @@ void AscendMemoryManager::ResetDynamicMemory() {
AscendMemoryPool::GetInstance().set_graph_dynamic_mem_offset(dynamic_mem_offset_);
}

void AscendMemoryManager::ClearGlobalIdleMem() { AscendMemoryPool::GetInstance().ResetIdleMemBuf(); }

void *AscendMemoryManager::MallocMemFromMemPool(size_t size) {
auto align_size = GetCommonAlignSize(size);
return AscendMemoryPool::GetInstance().AllocTensorMem(align_size);


+ 1
- 0
mindspore/ccsrc/runtime/device/ascend/ascend_memory_manager.h View File

@@ -28,6 +28,7 @@ class AscendMemoryManager : public MemoryManager {
void MallocDeviceMemory() override;
void FreeDeviceMemory() override;
void ResetDynamicMemory() override;
void ClearGlobalIdleMem() override;
void *MallocMemFromMemPool(size_t size) override;

protected:


+ 1
- 0
mindspore/ccsrc/runtime/device/kernel_runtime.h View File

@@ -76,6 +76,7 @@ class KernelRuntime {
const std::unordered_set<ValueNodePtr> &value_nodes,
const std::vector<CNodePtr> &execution_order);
virtual bool SyncStream() = 0;
virtual void ClearGlobalIdleMem() {}

#ifdef ENABLE_DUMP_E2E
DumpConfPtr GetDumpConf();


+ 1
- 0
mindspore/ccsrc/runtime/device/memory_manager.h View File

@@ -39,6 +39,7 @@ class MemoryManager {
total_dynamic_size_ = 0;
dynamic_mem_offset_ = 0;
}
virtual void ClearGlobalIdleMem() {}

void MallocReusedDynamicMem(const session::KernelGraph *graph);
uint8_t *MallocOutputMem(const AnfNodePtr &node, size_t index, MemType type, size_t size,


Loading…
Cancel
Save