Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
magicwindyyd
mindspore
提交
79e82370
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看板
提交
79e82370
编写于
6月 22, 2020
作者:
K
kswang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix mix target entry
上级
beb436f4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
15 deletion
+15
-15
mindspore/ccsrc/pipeline/action.cc
mindspore/ccsrc/pipeline/action.cc
+15
-15
未找到文件。
mindspore/ccsrc/pipeline/action.cc
浏览文件 @
79e82370
...
...
@@ -282,7 +282,7 @@ bool VmOptimizeAction(const ResourcePtr &res) { return OptimizeAction(res, kVmPa
bool
PynativeOptimizeAction
(
const
ResourcePtr
&
res
)
{
return
OptimizeAction
(
res
,
kPynativePasses
);
}
static
bool
IsCtrlSink
(
const
FuncGraphPtr
&
graph
)
{
static
bool
IsCtrlSink
()
{
auto
ms_ctx
=
MsContext
::
GetInstance
();
if
(
ms_ctx
->
execution_mode
()
!=
kGraphMode
)
{
return
false
;
...
...
@@ -297,10 +297,9 @@ static bool IsCtrlSink(const FuncGraphPtr &graph) {
return
false
;
}
if
(
graph
!=
nullptr
&&
CompileGraphs
::
ContainMixedTarget
(
graph
))
{
if
(
!
ms_ctx
->
is_multi_graph_sink
(
))
{
return
false
;
}
return
true
;
}
...
...
@@ -310,27 +309,29 @@ bool TaskEmitAction(const ResourcePtr &res) {
}
FuncGraphPtr
func_graph
=
res
->
func_graph
();
auto
bc_ptr
=
res
->
results
()[
kBackend
].
cast
<
compile
::
BackendPtr
>
();
if
(
IsCtrlSink
(
func_graph
))
{
res
->
results
()[
kOutput
]
=
bc_ptr
->
CompileGraph
(
NOT_NULL
(
func_graph
));
return
true
;
}
std
::
vector
<
PrimitivePtr
>
cut_list
=
compile
::
nonlinear_ops
;
if
(
bc_ptr
->
name
()
==
kMsConvert
)
{
cut_list
=
compile
::
GetMsNonlinearOps
();
}
std
::
shared_ptr
<
CompileGraphs
>
compile
=
std
::
make_shared
<
CompileGraphs
>
(
bc_ptr
,
cut_list
);
auto
context_ptr
=
MsContext
::
GetInstance
();
MS_EXCEPTION_IF_NULL
(
context_ptr
);
if
(
CompileGraphs
::
ContainMixedTarget
(
func_graph
))
{
bc_ptr
->
set_is_multi_graph_sink
(
false
);
context_ptr
->
set_is_multi_graph_sink
(
false
);
context_ptr
->
set_loop_sink_flag
(
false
);
}
else
if
(
context_ptr
->
execution_mode
()
!=
kPynativeMode
)
{
std
::
string
device_target
=
context_ptr
->
device_target
();
if
(
device_target
==
kAscendDevice
)
{
bc_ptr
->
set_is_multi_graph_sink
(
true
);
context_ptr
->
set_is_multi_graph_sink
(
true
);
}
}
if
(
IsCtrlSink
())
{
res
->
results
()[
kOutput
]
=
bc_ptr
->
CompileGraph
(
NOT_NULL
(
func_graph
));
return
true
;
}
std
::
vector
<
PrimitivePtr
>
cut_list
=
compile
::
nonlinear_ops
;
if
(
bc_ptr
->
name
()
==
kMsConvert
)
{
cut_list
=
compile
::
GetMsNonlinearOps
();
}
std
::
shared_ptr
<
CompileGraphs
>
compile
=
std
::
make_shared
<
CompileGraphs
>
(
bc_ptr
,
cut_list
);
res
->
results
()[
kOutput
]
=
compile
->
CompileAndLink
(
func_graph
);
return
true
;
}
...
...
@@ -340,11 +341,10 @@ bool ExecuteAction(const ResourcePtr &res) {
MS_LOG
(
EXCEPTION
)
<<
"Execute args error"
;
}
if
(
IsCtrlSink
(
nullptr
))
{
if
(
IsCtrlSink
())
{
if
(
!
res
->
results
()[
kOutput
].
is
<
GraphId
>
())
{
MS_LOG
(
EXCEPTION
)
<<
"Execute args error"
;
}
auto
graph_id
=
res
->
results
()[
kOutput
].
cast
<
GraphId
>
();
std
::
shared_ptr
<
compile
::
Backend
>
bc_ptr
=
res
->
results
()[
kBackend
].
cast
<
std
::
shared_ptr
<
compile
::
Backend
>>
();
std
::
shared_ptr
<
compile
::
MsBackend
>
msbc_ptr
=
std
::
dynamic_pointer_cast
<
compile
::
MsBackend
>
(
bc_ptr
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录