Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
a9bc92c3
P
Paddle
项目概览
BaiXuePrincess
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
a9bc92c3
编写于
10月 30, 2019
作者:
L
Leo Chen
提交者:
Zeng Jinle
10月 30, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add c++ unique_name_generator, test=develop (#20871)
上级
d4289125
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
29 addition
and
1 deletion
+29
-1
paddle/fluid/imperative/tests/test_tracer.cc
paddle/fluid/imperative/tests/test_tracer.cc
+10
-0
paddle/fluid/imperative/tracer.h
paddle/fluid/imperative/tracer.h
+19
-1
未找到文件。
paddle/fluid/imperative/tests/test_tracer.cc
浏览文件 @
a9bc92c3
...
@@ -187,6 +187,16 @@ TEST(test_tracer, test_trace_op_with_multi_device_inputs) {
...
@@ -187,6 +187,16 @@ TEST(test_tracer, test_trace_op_with_multi_device_inputs) {
}
}
}
}
#endif
#endif
TEST
(
test_tracer
,
test_unique_name_generator
)
{
// generate two unique names
imperative
::
Tracer
tracer
;
auto
fc_1
=
tracer
.
GenerateUniqueName
(
"fc"
);
auto
fc_2
=
tracer
.
GenerateUniqueName
(
"fc"
);
ASSERT_STREQ
(
"fc_1"
,
fc_1
.
c_str
());
ASSERT_STREQ
(
"fc_2"
,
fc_2
.
c_str
());
}
}
// namespace imperative
}
// namespace imperative
}
// namespace paddle
}
// namespace paddle
...
...
paddle/fluid/imperative/tracer.h
浏览文件 @
a9bc92c3
...
@@ -29,13 +29,26 @@
...
@@ -29,13 +29,26 @@
namespace
paddle
{
namespace
paddle
{
namespace
imperative
{
namespace
imperative
{
class
UniqueNameGenerator
{
public:
explicit
UniqueNameGenerator
(
std
::
string
prefix
=
""
)
:
prefix_
(
prefix
)
{}
std
::
string
Generate
(
std
::
string
key
=
"tmp"
)
{
return
prefix_
+
key
+
"_"
+
std
::
to_string
(
++
id_
);
}
private:
std
::
atomic
<
int
>
id_
{
0
};
std
::
string
prefix_
;
};
class
Tracer
{
class
Tracer
{
DISABLE_COPY_AND_ASSIGN
(
Tracer
);
DISABLE_COPY_AND_ASSIGN
(
Tracer
);
public:
public:
Tracer
()
Tracer
()
:
engine_
(
new
BasicEngine
()),
:
engine_
(
new
BasicEngine
()),
program_desc_tracer_
(
new
jit
::
ProgramDescTracer
())
{}
program_desc_tracer_
(
new
jit
::
ProgramDescTracer
()),
generator_
(
new
UniqueNameGenerator
())
{}
~
Tracer
()
=
default
;
~
Tracer
()
=
default
;
...
@@ -64,6 +77,10 @@ class Tracer {
...
@@ -64,6 +77,10 @@ class Tracer {
return
program_desc_tracer_
.
get
();
return
program_desc_tracer_
.
get
();
}
}
std
::
string
GenerateUniqueName
(
std
::
string
key
=
"tmp"
)
{
return
generator_
->
Generate
(
key
);
}
private:
private:
static
size_t
GenerateUniqueId
()
{
static
size_t
GenerateUniqueId
()
{
static
std
::
atomic
<
size_t
>
id
{
0
};
static
std
::
atomic
<
size_t
>
id
{
0
};
...
@@ -74,6 +91,7 @@ class Tracer {
...
@@ -74,6 +91,7 @@ class Tracer {
std
::
unique_ptr
<
Engine
>
engine_
;
std
::
unique_ptr
<
Engine
>
engine_
;
std
::
unique_ptr
<
jit
::
ProgramDescTracer
>
program_desc_tracer_
;
std
::
unique_ptr
<
jit
::
ProgramDescTracer
>
program_desc_tracer_
;
bool
enable_program_desc_tracing_
{
false
};
bool
enable_program_desc_tracing_
{
false
};
std
::
unique_ptr
<
UniqueNameGenerator
>
generator_
;
};
};
}
// namespace imperative
}
// namespace imperative
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录