Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
magicwindyyd
mindspore
提交
76733ce8
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看板
提交
76733ce8
编写于
7月 29, 2020
作者:
K
kswang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix cpu multi graph mem error
上级
7cb567eb
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
15 addition
and
30 deletion
+15
-30
mindspore/ccsrc/backend/session/session_basic.cc
mindspore/ccsrc/backend/session/session_basic.cc
+1
-1
mindspore/ccsrc/runtime/device/cpu/cpu_kernel_runtime.cc
mindspore/ccsrc/runtime/device/cpu/cpu_kernel_runtime.cc
+1
-2
mindspore/ccsrc/runtime/device/cpu/cpu_resource_manager.cc
mindspore/ccsrc/runtime/device/cpu/cpu_resource_manager.cc
+6
-7
mindspore/ccsrc/runtime/device/cpu/cpu_resource_manager.h
mindspore/ccsrc/runtime/device/cpu/cpu_resource_manager.h
+3
-4
mindspore/ccsrc/runtime/device/cpu/cpu_simple_mem_plan.cc
mindspore/ccsrc/runtime/device/cpu/cpu_simple_mem_plan.cc
+2
-9
mindspore/ccsrc/runtime/device/cpu/cpu_simple_mem_plan.h
mindspore/ccsrc/runtime/device/cpu/cpu_simple_mem_plan.h
+1
-6
mindspore/core/ir/anf.cc
mindspore/core/ir/anf.cc
+1
-1
未找到文件。
mindspore/ccsrc/backend/session/session_basic.cc
浏览文件 @
76733ce8
...
...
@@ -312,7 +312,7 @@ void SessionBasic::InitInternalOutputParameter(const AnfNodePtr &out_node, const
MS_LOG
(
INFO
)
<<
"No kernel info"
;
return
;
}
if
(
!
AnfAlgo
::
OutputAddrExist
(
ref_real_node
,
ref_real_node_index
))
{
if
(
!
opt
::
IsNopNode
(
ref_real_node
)
&&
!
AnfAlgo
::
OutputAddrExist
(
ref_real_node
,
ref_real_node_index
))
{
MS_LOG
(
INFO
)
<<
"No kernel address"
;
return
;
}
...
...
mindspore/ccsrc/runtime/device/cpu/cpu_kernel_runtime.cc
浏览文件 @
76733ce8
...
...
@@ -40,8 +40,7 @@ void CPUKernelRuntime::AssignKernelAddress(session::KernelGraph *kernel_graph) {
AssignValueNodeAddress
(
kernel_graph
);
AssignInputNodeAddress
(
kernel_graph
);
AssignKernelOutputAddress
(
kernel_graph
);
resource_manager_
.
MemPlan
(
kernel_graph
);
resource_manager_
.
MemMalloc
(
kernel_graph
);
resource_manager_
.
AssignMemory
(
kernel_graph
);
}
void
CPUKernelRuntime
::
AssignValueNodeAddress
(
session
::
KernelGraph
*
kernel_graph
)
{
...
...
mindspore/ccsrc/runtime/device/cpu/cpu_resource_manager.cc
浏览文件 @
76733ce8
...
...
@@ -34,11 +34,13 @@ void CPUResourceManager::MemFree() {
dynamic_mem_
.
clear
();
}
void
CPUResourceManager
::
MemPlan
(
const
session
::
KernelGraph
*
graph
)
{
mem_plan_
.
MemPlan
(
graph
);
size_t
graph_mem_size
=
mem_plan_
.
GetGraphMemSize
(
graph
);
void
CPUResourceManager
::
AssignMemory
(
const
session
::
KernelGraph
*
graph
)
{
size_t
graph_mem_size
=
mem_plan_
.
MemPlan
(
graph
);
if
(
graph_mem_size
>
mem_size_
)
{
MemFree
();
if
(
mem_size_
>
0
)
{
dynamic_mem_
[
mem_ptr_
]
=
mem_size_
;
mem_size_
=
0
;
}
mem_ptr_
=
reinterpret_cast
<
uint8_t
*>
(
malloc
(
graph_mem_size
));
if
(
mem_ptr_
!=
nullptr
)
{
mem_size_
=
graph_mem_size
;
...
...
@@ -48,9 +50,6 @@ void CPUResourceManager::MemPlan(const session::KernelGraph *graph) {
dynamic_malloc_
=
true
;
}
}
}
void
CPUResourceManager
::
MemMalloc
(
const
session
::
KernelGraph
*
graph
)
{
if
(
dynamic_malloc_
)
{
return
;
}
...
...
mindspore/ccsrc/runtime/device/cpu/cpu_resource_manager.h
浏览文件 @
76733ce8
...
...
@@ -17,7 +17,7 @@
#define MINDSPORE_CCSRC_RUNTIME_DEVICE_CPU_CPU_RESOURCE_MANAGER_H_
#include <vector>
#include <
unordered_
map>
#include <map>
#include "backend/session/kernel_graph.h"
#include "backend/session/session_basic.h"
#include "runtime/device/device_address.h"
...
...
@@ -30,8 +30,7 @@ class CPUResourceManager {
CPUResourceManager
()
=
default
;
~
CPUResourceManager
();
void
MemPlan
(
const
session
::
KernelGraph
*
graph
);
void
MemMalloc
(
const
session
::
KernelGraph
*
graph
);
void
AssignMemory
(
const
session
::
KernelGraph
*
graph
);
void
IncreaseAddressRefCount
(
const
session
::
KernelGraph
*
graph
);
void
DecreaseAddressRefCount
(
const
AnfNodePtr
&
kernel
);
void
*
MemMalloc
(
size_t
mem_size
);
...
...
@@ -46,7 +45,7 @@ class CPUResourceManager {
size_t
mem_size_
{
0
};
uint8_t
*
mem_ptr_
{
nullptr
};
bool
dynamic_malloc_
{
false
};
std
::
unordered_
map
<
void
*
,
size_t
>
dynamic_mem_
;
std
::
map
<
void
*
,
size_t
>
dynamic_mem_
;
};
}
// namespace cpu
}
// namespace device
...
...
mindspore/ccsrc/runtime/device/cpu/cpu_simple_mem_plan.cc
浏览文件 @
76733ce8
...
...
@@ -19,7 +19,7 @@
namespace
mindspore
{
namespace
device
{
namespace
cpu
{
void
CPUSimpleMemPlan
::
MemPlan
(
const
session
::
KernelGraph
*
graph
)
{
size_t
CPUSimpleMemPlan
::
MemPlan
(
const
session
::
KernelGraph
*
graph
)
{
MS_EXCEPTION_IF_NULL
(
graph
);
size_t
total_mem_size
=
32
;
auto
kernels
=
graph
->
execution_order
();
...
...
@@ -58,15 +58,8 @@ void CPUSimpleMemPlan::MemPlan(const session::KernelGraph *graph) {
}
}
}
graph_mem_size_
[
graph
]
=
total_mem_size
;
}
size_t
CPUSimpleMemPlan
::
GetGraphMemSize
(
const
session
::
KernelGraph
*
graph
)
const
{
auto
iter
=
graph_mem_size_
.
find
(
graph
);
if
(
iter
!=
graph_mem_size_
.
end
())
{
return
iter
->
second
;
}
return
0
;
return
total_mem_size
;
}
void
CPUSimpleMemPlan
::
MemAssign
(
const
session
::
KernelGraph
*
graph
,
uint8_t
*
base_ptr
)
{
...
...
mindspore/ccsrc/runtime/device/cpu/cpu_simple_mem_plan.h
浏览文件 @
76733ce8
...
...
@@ -17,7 +17,6 @@
#define MINDSPORE_CCSRC_RUNTIME_DEVICE_CPU_CPU_SIMPLE_MEM_PLAN_H_
#include <vector>
#include <unordered_map>
#include "backend/session/kernel_graph.h"
#include "runtime/device/device_address.h"
...
...
@@ -29,12 +28,8 @@ class CPUSimpleMemPlan {
CPUSimpleMemPlan
()
=
default
;
~
CPUSimpleMemPlan
()
=
default
;
void
MemPlan
(
const
session
::
KernelGraph
*
graph
);
size_t
MemPlan
(
const
session
::
KernelGraph
*
graph
);
void
MemAssign
(
const
session
::
KernelGraph
*
graph
,
uint8_t
*
base_ptr
);
size_t
GetGraphMemSize
(
const
session
::
KernelGraph
*
graph
)
const
;
private:
std
::
unordered_map
<
const
session
::
KernelGraph
*
,
size_t
>
graph_mem_size_
;
};
}
// namespace cpu
}
// namespace device
...
...
mindspore/core/ir/anf.cc
浏览文件 @
76733ce8
...
...
@@ -270,7 +270,7 @@ std::string GetCNodeTarget(const AnfNodePtr &node) {
}
return
target
;
}
if
(
IsPrimitive
(
node
,
prim
::
kPrimMakeTuple
))
{
if
(
IsPrimitive
CNode
(
node
,
prim
::
kPrimMakeTuple
))
{
return
GetMaketupleNodeTarget
(
cnode
);
}
return
default_target
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录