Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
2f2f987c
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看板
未验证
提交
2f2f987c
编写于
4月 21, 2022
作者:
Z
Zhen Wang
提交者:
GitHub
4月 21, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[Cherry-Pick]Move pass optimizations into CINN. (#42047) (#42070)
* Move pass optimizations into CINN.
上级
dbdb56d1
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
11 addition
and
24 deletion
+11
-24
cmake/external/cinn.cmake
cmake/external/cinn.cmake
+1
-1
paddle/fluid/framework/paddle2cinn/cinn_compiler.cc
paddle/fluid/framework/paddle2cinn/cinn_compiler.cc
+10
-23
未找到文件。
cmake/external/cinn.cmake
浏览文件 @
2f2f987c
...
@@ -26,7 +26,7 @@ add_definitions(-w)
...
@@ -26,7 +26,7 @@ add_definitions(-w)
######################################
######################################
include
(
ExternalProject
)
include
(
ExternalProject
)
set
(
CINN_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/CINN
)
set
(
CINN_PREFIX_DIR
${
THIRD_PARTY_PATH
}
/CINN
)
set
(
CINN_GIT_TAG
08d7680dd91dfaa65787969050eb8f1143654f10
)
set
(
CINN_GIT_TAG
release/v0.2
)
set
(
CINN_OPTIONAL_ARGS -DPY_VERSION=
${
PY_VERSION
}
set
(
CINN_OPTIONAL_ARGS -DPY_VERSION=
${
PY_VERSION
}
-DWITH_CUDA=
${
WITH_GPU
}
-DWITH_CUDA=
${
WITH_GPU
}
-DWITH_CUDNN=
${
WITH_GPU
}
-DWITH_CUDNN=
${
WITH_GPU
}
...
...
paddle/fluid/framework/paddle2cinn/cinn_compiler.cc
浏览文件 @
2f2f987c
...
@@ -25,14 +25,10 @@
...
@@ -25,14 +25,10 @@
#include "cinn/auto_schedule/tuning.h"
#include "cinn/auto_schedule/tuning.h"
#include "cinn/common/target.h"
#include "cinn/common/target.h"
#include "cinn/common/type.h"
#include "cinn/common/type.h"
#include "cinn/frontend/decomposer/use_decomposer.h"
#include "cinn/frontend/optimize.h"
#include "cinn/frontend/pass/use_program_pass.h"
#include "cinn/frontend/program_pass.h"
#include "cinn/frontend/syntax.h"
#include "cinn/frontend/syntax.h"
#include "cinn/hlir/framework/graph.h"
#include "cinn/hlir/framework/graph.h"
#include "cinn/hlir/framework/graph_compiler.h"
#include "cinn/hlir/framework/graph_compiler.h"
#include "cinn/hlir/framework/pass.h"
#include "cinn/hlir/pass/use_pass.h"
#include "gflags/gflags.h"
#include "gflags/gflags.h"
#include "paddle/fluid/framework/framework.pb.h"
#include "paddle/fluid/framework/framework.pb.h"
#include "paddle/fluid/framework/ir/graph.h"
#include "paddle/fluid/framework/ir/graph.h"
...
@@ -58,13 +54,11 @@ namespace paddle2cinn {
...
@@ -58,13 +54,11 @@ namespace paddle2cinn {
using
ir
::
Graph
;
using
ir
::
Graph
;
using
ir
::
Node
;
using
ir
::
Node
;
using
inference
::
analysis
::
Dot
;
using
inference
::
analysis
::
Dot
;
using
::
cinn
::
common
::
Target
;
using
::
cinn
::
common
::
Float
;
using
::
cinn
::
hlir
::
framework
::
GraphCompiler
;
using
::
cinn
::
auto_schedule
::
AutoTuner
;
using
::
cinn
::
auto_schedule
::
AutoTuner
;
using
::
cinn
::
common
::
Target
;
using
::
cinn
::
frontend
::
Optimize
;
using
::
cinn
::
hlir
::
framework
::
BuildScope
;
using
::
cinn
::
hlir
::
framework
::
BuildScope
;
using
::
cinn
::
frontend
::
ProgramPass
;
using
::
cinn
::
hlir
::
framework
::
GraphCompiler
;
using
::
cinn
::
hlir
::
framework
::
ApplyPass
;
CinnCompiler
*
CinnCompiler
::
GetInstance
()
{
CinnCompiler
*
CinnCompiler
::
GetInstance
()
{
static
CinnCompiler
instance
;
static
CinnCompiler
instance
;
...
@@ -75,7 +69,7 @@ const CinnCompiledObject& CinnCompiler::Compile(
...
@@ -75,7 +69,7 @@ const CinnCompiledObject& CinnCompiler::Compile(
const
Graph
&
graph
,
const
Graph
&
graph
,
const
std
::
map
<
std
::
string
,
const
LoDTensor
*>&
input_tensors
,
const
std
::
map
<
std
::
string
,
const
LoDTensor
*>&
input_tensors
,
const
Target
&
target
,
void
*
stream
)
{
const
Target
&
target
,
void
*
stream
)
{
VLOG
(
1
)
<<
"-- The graph to be compiled is:
\n
"
<<
VizGraph
(
graph
);
VLOG
(
4
)
<<
"-- The graph to be compiled is:
\n
"
<<
VizGraph
(
graph
);
CinnCacheKeyByAddress
cur_key_by_address
(
graph
,
input_tensors
,
CinnCacheKeyByAddress
cur_key_by_address
(
graph
,
input_tensors
,
target
.
arch_str
());
target
.
arch_str
());
CinnCacheKeyByStructure
cur_key_by_struct
;
CinnCacheKeyByStructure
cur_key_by_struct
;
...
@@ -258,22 +252,15 @@ std::unique_ptr<CinnCompiledObject> CinnCompiler::CompileGraph(
...
@@ -258,22 +252,15 @@ std::unique_ptr<CinnCompiledObject> CinnCompiler::CompileGraph(
CinnGraphSymbolization
symbol
{
compiled_num
,
graph
,
target
,
input_tensors
};
CinnGraphSymbolization
symbol
{
compiled_num
,
graph
,
target
,
input_tensors
};
auto
frontend_program
=
symbol
();
auto
frontend_program
=
symbol
();
auto
fetch_ids
=
symbol
.
GetFetchIds
();
auto
fetch_ids
=
symbol
.
GetFetchIds
();
ProgramPass
::
Apply
(
&
frontend_program
,
fetch_ids
,
target
,
{
"Decomposer"
});
VLOG
(
4
)
<<
"All fetch var ids in CINN: "
::
cinn
::
frontend
::
ApplyPass
(
&
frontend_program
,
fetch_ids
,
"RemoveIdentity"
);
<<
string
::
join_strings
(
fetch_ids
,
','
);
::
cinn
::
frontend
::
ApplyPass
(
&
frontend_program
,
fetch_ids
,
"TransposeFolding"
);
ProgramPass
::
Apply
(
&
frontend_program
,
fetch_ids
,
target
,
{
"GemmRewriter"
});
auto
cinn_graph
=
std
::
make_shared
<::
cinn
::
hlir
::
framework
::
Graph
>
(
auto
cinn_graph
=
Optimize
(
&
frontend_program
,
fetch_ids
,
target
);
frontend_program
,
target
);
VLOG
(
4
)
<<
"-- The "
<<
compiled_num
<<
"-th compilation ("
VLOG
(
1
)
<<
"-- The "
<<
compiled_num
<<
"-th compilation ("
<<
target
.
arch_str
()
<<
"), and its related graph:
\n
"
<<
target
.
arch_str
()
<<
"), and its related graph:
\n
"
<<
cinn_graph
->
Visualize
();
<<
cinn_graph
->
Visualize
();
ApplyPass
(
cinn_graph
.
get
(),
"OpFusion"
);
auto
scope
=
BuildScope
(
target
,
cinn_graph
);
VLOG
(
4
)
<<
"All fetch var ids in CINN: "
<<
string
::
join_strings
(
fetch_ids
,
','
);
auto
scope
=
BuildScope
(
target
,
cinn_graph
);
auto
graph_compiler
=
auto
graph_compiler
=
std
::
make_unique
<
GraphCompiler
>
(
target
,
scope
,
cinn_graph
);
std
::
make_unique
<
GraphCompiler
>
(
target
,
scope
,
cinn_graph
);
GraphCompiler
::
CompileOptions
options
;
GraphCompiler
::
CompileOptions
options
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录