Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
bb4f8dee
P
Paddle
项目概览
机器未来
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
bb4f8dee
编写于
9月 10, 2019
作者:
Z
Zeng Jinle
提交者:
GitHub
9月 10, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add logs to left var memory size, test=develop (#19722)
上级
428b2b9e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
60 addition
and
0 deletion
+60
-0
paddle/fluid/framework/details/scope_buffered_ssa_graph_executor.cc
...id/framework/details/scope_buffered_ssa_graph_executor.cc
+56
-0
python/paddle/fluid/tests/unittests/CMakeLists.txt
python/paddle/fluid/tests/unittests/CMakeLists.txt
+4
-0
未找到文件。
paddle/fluid/framework/details/scope_buffered_ssa_graph_executor.cc
浏览文件 @
bb4f8dee
...
...
@@ -25,6 +25,45 @@
namespace
paddle
{
namespace
framework
{
namespace
details
{
static
void
CollectUniqueAllocations
(
const
Variable
&
var
,
std
::
unordered_set
<
memory
::
Allocation
*>
*
allocation_set
)
{
if
(
var
.
IsType
<
LoDTensor
>
())
{
allocation_set
->
insert
(
var
.
Get
<
LoDTensor
>
().
Holder
().
get
());
}
else
if
(
var
.
IsType
<
SelectedRows
>
())
{
allocation_set
->
insert
(
var
.
Get
<
SelectedRows
>
().
value
().
Holder
().
get
());
}
else
if
(
var
.
IsType
<
LoDTensorArray
>
())
{
for
(
auto
&
t
:
var
.
Get
<
LoDTensorArray
>
())
{
allocation_set
->
insert
(
t
.
Holder
().
get
());
}
}
}
static
void
CollectUniqueAllocations
(
const
Scope
&
scope
,
std
::
unordered_set
<
memory
::
Allocation
*>
*
allocation_set
)
{
for
(
auto
&
var_name
:
scope
.
LocalVarNames
())
{
CollectUniqueAllocations
(
*
scope
.
FindVar
(
var_name
),
allocation_set
);
}
for
(
auto
*
kid
:
scope
.
kids
())
{
CollectUniqueAllocations
(
*
kid
,
allocation_set
);
}
}
static
size_t
GetScopeVarMemorySize
(
const
Scope
&
scope
)
{
std
::
unordered_set
<
memory
::
Allocation
*>
allocation_set
;
CollectUniqueAllocations
(
scope
,
&
allocation_set
);
size_t
memory_size
=
0
;
for
(
auto
*
allocation
:
allocation_set
)
{
if
(
allocation
)
{
memory_size
+=
allocation
->
size
();
}
}
return
memory_size
;
}
ScopeBufferedSSAGraphExecutor
::
ScopeBufferedSSAGraphExecutor
(
ExecutionStrategy
strategy
,
std
::
vector
<
Scope
*>
local_scopes
,
std
::
vector
<
Scope
*>
local_exec_scopes
,
std
::
vector
<
VariableInfo
>
var_infos
,
...
...
@@ -55,10 +94,27 @@ FeedFetchList ScopeBufferedSSAGraphExecutor::Run(
eptr
=
std
::
current_exception
();
}
if
(
VLOG_IS_ON
(
5
))
{
for
(
auto
*
scope
:
local_exec_scopes_
)
{
VLOG
(
5
)
<<
"Left "
<<
string
::
HumanReadableSize
(
GetScopeVarMemorySize
(
*
scope
))
<<
" on scope "
<<
scope
<<
" before deleting"
;
}
}
++
drop_scope_counter_
;
if
(
drop_scope_counter_
==
strategy_
.
num_iteration_per_drop_scope_
)
{
DropLocalExeScopes
();
}
if
(
VLOG_IS_ON
(
5
))
{
for
(
auto
*
scope
:
local_exec_scopes_
)
{
VLOG
(
5
)
<<
"Left "
<<
string
::
HumanReadableSize
(
GetScopeVarMemorySize
(
*
scope
))
<<
" on scope "
<<
scope
<<
" after deleting"
;
}
}
if
(
eptr
)
{
std
::
rethrow_exception
(
eptr
);
}
else
{
...
...
python/paddle/fluid/tests/unittests/CMakeLists.txt
浏览文件 @
bb4f8dee
...
...
@@ -317,6 +317,10 @@ if (WITH_MKLDNN)
add_subdirectory
(
mkldnn
)
endif
()
if
(
WITH_TESTING
)
set_property
(
TEST test_parallel_executor_mnist PROPERTY ENVIRONMENT GLOG_vmodule=scope_buffered_ssa_graph_executor=5
)
endif
()
set_tests_properties
(
test_parallel_executor_test_while_train test_parallel_executor_mnist
test_parallel_executor_seresnext_base_gpu test_parallel_executor_seresnext_with_reduce_gpu
test_parallel_executor_seresnext_with_fuse_all_reduce_gpu
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录