Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
a22ea652
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看板
未验证
提交
a22ea652
编写于
11月 21, 2020
作者:
W
Wilber
提交者:
GitHub
11月 21, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix trt delete_pass bug. (#28763)
上级
1dad8cea
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
28 addition
and
6 deletion
+28
-6
paddle/fluid/inference/api/analysis_config.cc
paddle/fluid/inference/api/analysis_config.cc
+14
-6
paddle/fluid/inference/api/api_tester.cc
paddle/fluid/inference/api/api_tester.cc
+14
-0
未找到文件。
paddle/fluid/inference/api/analysis_config.cc
浏览文件 @
a22ea652
...
...
@@ -175,12 +175,20 @@ AnalysisConfig::AnalysisConfig(const AnalysisConfig &other) {
#undef CP_MEMBER
// Update();
Update
();
if
(
use_tensorrt_
)
{
// Update() will reset all the passes, when some tensorRT pass is deleted in
// other.pass_builder(), it will set again, so just copy the passes.
pass_builder_
->
ClearPasses
();
for
(
const
std
::
string
&
pass
:
other
.
pass_builder
()
->
AllPasses
())
{
pass_builder_
->
AppendPass
(
pass
);
// other.pass_builder(), it will set again, so we just remove the
// deleted_pass.
auto
all_passes
=
kTRTSubgraphPasses
;
auto
other_passes
=
other
.
pass_builder
()
->
AllPasses
();
std
::
vector
<
std
::
string
>
deleted_passes
;
std
::
set_difference
(
all_passes
.
begin
(),
all_passes
.
end
(),
other_passes
.
begin
(),
other_passes
.
end
(),
std
::
inserter
(
deleted_passes
,
deleted_passes
.
begin
()));
for
(
auto
ps
:
deleted_passes
)
{
pass_builder_
->
DeletePass
(
ps
);
}
}
}
...
...
paddle/fluid/inference/api/api_tester.cc
浏览文件 @
a22ea652
...
...
@@ -77,4 +77,18 @@ TEST(paddle_inference_api, UpdateDllFlag) {
LOG
(
INFO
)
<<
e
.
what
();
}
}
TEST
(
paddle_inference_api
,
AnalysisConfigCopyCtor
)
{
AnalysisConfig
cfg1
;
cfg1
.
EnableUseGpu
(
10
);
cfg1
.
EnableTensorRtEngine
();
std
::
string
delete_pass
(
"skip_layernorm_fuse_pass"
);
cfg1
.
pass_builder
()
->
DeletePass
(
delete_pass
);
AnalysisConfig
cfg2
(
cfg1
);
auto
passes
=
cfg2
.
pass_builder
()
->
AllPasses
();
for
(
auto
ps
:
passes
)
{
CHECK_NE
(
ps
,
delete_pass
);
}
}
}
// namespace paddle
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录