Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
magicwindyyd
mindspore
提交
5f2bf782
M
mindspore
项目概览
magicwindyyd
/
mindspore
与 Fork 源项目一致
Fork自
MindSpore / mindspore
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
mindspore
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
5f2bf782
编写于
5月 28, 2020
作者:
C
caifubi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix run out of runtime resource bug
上级
a7744bde
变更
8
显示空白变更内容
内联
并排
Showing
8 changed file
with
38 addition
and
1 deletion
+38
-1
mindspore/ccsrc/device/ascend/ascend_kernel_runtime.cc
mindspore/ccsrc/device/ascend/ascend_kernel_runtime.cc
+15
-0
mindspore/ccsrc/device/ascend/ascend_kernel_runtime.h
mindspore/ccsrc/device/ascend/ascend_kernel_runtime.h
+1
-0
mindspore/ccsrc/device/kernel_runtime.cc
mindspore/ccsrc/device/kernel_runtime.cc
+4
-0
mindspore/ccsrc/device/kernel_runtime.h
mindspore/ccsrc/device/kernel_runtime.h
+1
-0
mindspore/ccsrc/device/kernel_runtime_manager.cc
mindspore/ccsrc/device/kernel_runtime_manager.cc
+12
-0
mindspore/ccsrc/device/kernel_runtime_manager.h
mindspore/ccsrc/device/kernel_runtime_manager.h
+1
-0
mindspore/ccsrc/session/kernel_graph.cc
mindspore/ccsrc/session/kernel_graph.cc
+3
-0
mindspore/ccsrc/session/kernel_graph.h
mindspore/ccsrc/session/kernel_graph.h
+1
-1
未找到文件。
mindspore/ccsrc/device/ascend/ascend_kernel_runtime.cc
浏览文件 @
5f2bf782
...
...
@@ -64,6 +64,21 @@ void AscendKernelRuntime::ClearGraphModelMap() {
}
}
void
AscendKernelRuntime
::
ClearGraphRuntimeResource
(
uint32_t
graph_id
)
{
MS_LOG
(
INFO
)
<<
"clear graph:"
<<
graph_id
<<
" runtime resource"
;
auto
iter
=
graph_model_map_
.
find
(
graph_id
);
if
(
iter
==
graph_model_map_
.
end
())
{
MS_LOG
(
WARNING
)
<<
"GraphId:"
<<
graph_id
<<
" not found"
;
return
;
}
MS_LOG
(
INFO
)
<<
"Ge UnloadModel "
<<
iter
->
first
;
auto
ret
=
ge
::
model_runner
::
ModelRunner
::
Instance
().
UnloadModel
(
iter
->
first
);
if
(
!
ret
)
{
MS_LOG
(
ERROR
)
<<
"UnloadModel failed"
;
}
graph_model_map_
.
erase
(
iter
);
}
bool
AscendKernelRuntime
::
NeedDestroyHccl
()
{
auto
context_ptr
=
MsContext
::
GetInstance
();
MS_EXCEPTION_IF_NULL
(
context_ptr
);
...
...
mindspore/ccsrc/device/ascend/ascend_kernel_runtime.h
浏览文件 @
5f2bf782
...
...
@@ -40,6 +40,7 @@ class AscendKernelRuntime : public KernelRuntime {
bool
GenTask
(
const
session
::
KernelGraph
*
graph
)
override
;
bool
RunTask
(
const
session
::
KernelGraph
*
graph
)
override
;
bool
LoadTask
(
const
session
::
KernelGraph
*
graph
)
override
;
void
ClearGraphRuntimeResource
(
uint32_t
graph_id
)
override
;
protected:
DeviceAddressPtr
CreateDeviceAddress
(
void
*
device_ptr
,
size_t
device_size
,
const
string
&
format
,
...
...
mindspore/ccsrc/device/kernel_runtime.cc
浏览文件 @
5f2bf782
...
...
@@ -680,6 +680,10 @@ bool KernelRuntime::LaunchKernel(const session::KernelGraph *graph) {
return
true
;
}
void
KernelRuntime
::
ClearGraphRuntimeResource
(
uint32_t
graph_id
)
{
MS_LOG
(
INFO
)
<<
"Clear graph:"
<<
graph_id
<<
" runtime resource"
;
}
#ifdef ENABLE_DUMP_E2E
bool
KernelRuntime
::
SetDumpConf
()
{
dump_conf_ptr_
=
std
::
make_shared
<
Dump
>
();
...
...
mindspore/ccsrc/device/kernel_runtime.h
浏览文件 @
5f2bf782
...
...
@@ -54,6 +54,7 @@ class KernelRuntime {
bool
LaunchKernel
(
const
session
::
KernelGraph
*
graph
);
virtual
void
AssignStaticMemoryInput
(
const
session
::
KernelGraph
*
graph
);
virtual
void
AssignStaticMemoryValueNode
(
session
::
KernelGraph
*
graph
);
virtual
void
ClearGraphRuntimeResource
(
uint32_t
graph_id
);
#ifdef ENABLE_DUMP_E2E
DumpConfPtr
GetDumpConf
();
...
...
mindspore/ccsrc/device/kernel_runtime_manager.cc
浏览文件 @
5f2bf782
...
...
@@ -29,6 +29,18 @@ void KernelRuntimeManager::ClearRuntimeResource() {
runtime_map_
.
clear
();
}
void
KernelRuntimeManager
::
ClearGraphResource
(
uint32_t
graph_id
)
{
std
::
lock_guard
<
std
::
mutex
>
guard
(
lock_
);
for
(
auto
&
iter
:
runtime_map_
)
{
MS_LOG
(
INFO
)
<<
"Clear device "
<<
iter
.
first
<<
" graph "
<<
graph_id
<<
" runtime resource"
;
if
(
!
iter
.
second
)
{
MS_LOG
(
ERROR
)
<<
"Kernel runtime is nullptr"
;
continue
;
}
iter
.
second
->
ClearGraphRuntimeResource
(
graph_id
);
}
}
void
KernelRuntimeManager
::
Register
(
const
std
::
string
&
device_name
,
KernelRuntimeCreator
&&
runtime_creator
)
{
if
(
runtime_creators_
.
find
(
device_name
)
==
runtime_creators_
.
end
())
{
(
void
)
runtime_creators_
.
emplace
(
device_name
,
runtime_creator
);
...
...
mindspore/ccsrc/device/kernel_runtime_manager.h
浏览文件 @
5f2bf782
...
...
@@ -38,6 +38,7 @@ class KernelRuntimeManager {
KernelRuntime
*
GetKernelRuntime
(
const
std
::
string
&
device_name
,
uint32_t
device_id
);
KernelRuntime
*
GetSingleKernelRuntime
(
const
std
::
string
&
device_name
,
uint32_t
device_id
);
void
ClearRuntimeResource
();
void
ClearGraphResource
(
uint32_t
graph_id
);
private:
KernelRuntimeManager
()
=
default
;
...
...
mindspore/ccsrc/session/kernel_graph.cc
浏览文件 @
5f2bf782
...
...
@@ -23,6 +23,7 @@
#include "session/anf_runtime_algorithm.h"
#include "device/kernel_info.h"
#include "kernel/kernel_build_info.h"
#include "device/kernel_runtime_manager.h"
namespace
mindspore
{
namespace
session
{
...
...
@@ -717,5 +718,7 @@ void KernelGraph::UpdateCallRealInput() {
}
std
::
string
KernelGraph
::
ToString
()
const
{
return
std
::
string
(
"kernel_graph_"
).
append
(
std
::
to_string
(
graph_id_
));
}
KernelGraph
::~
KernelGraph
()
{
device
::
KernelRuntimeManager
::
Instance
().
ClearGraphResource
(
graph_id_
);
}
}
// namespace session
}
// namespace mindspore
mindspore/ccsrc/session/kernel_graph.h
浏览文件 @
5f2bf782
...
...
@@ -42,7 +42,7 @@ class KernelGraph : public FuncGraph {
executable_
=
true
;
stream_distinction_label_
=
kInvalidDistincLabel
;
}
~
KernelGraph
()
override
=
default
;
~
KernelGraph
()
override
;
MS_DECLARE_PARENT
(
KernelGraph
,
FuncGraph
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录