Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
magicwindyyd
mindspore
提交
84695f66
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看板
提交
84695f66
编写于
8月 28, 2020
作者:
M
mindspore-ci-bot
提交者:
Gitee
8月 28, 2020
浏览文件
操作
浏览文件
下载
差异文件
!5383 [bug]fix compile time
Merge pull request !5383 from vlne-v1/fix-compile-cost
上级
eced8b32
1a2eb5c8
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
22 addition
and
17 deletion
+22
-17
mindspore/ccsrc/pipeline/jit/action.cc
mindspore/ccsrc/pipeline/jit/action.cc
+7
-1
mindspore/ccsrc/pipeline/jit/parse/resolve.cc
mindspore/ccsrc/pipeline/jit/parse/resolve.cc
+1
-1
mindspore/ccsrc/pipeline/jit/static_analysis/evaluator.cc
mindspore/ccsrc/pipeline/jit/static_analysis/evaluator.cc
+13
-14
mindspore/ops/primitive.py
mindspore/ops/primitive.py
+1
-1
未找到文件。
mindspore/ccsrc/pipeline/jit/action.cc
浏览文件 @
84695f66
...
...
@@ -157,13 +157,19 @@ bool CombineLikeGraphs(const ResourcePtr &res) {
if
(
fg
->
paramter_obj_nodes
().
size
()
==
0
||
graphs
.
size
()
<=
1
)
{
continue
;
}
auto
&
cloned_nodes
=
*
cloner
->
cloned_node
();
for
(
auto
&
fv
:
fg
->
paramter_obj_nodes
())
{
TraceManager
::
DebugTrace
(
std
::
make_shared
<
TraceCombileLikeGraphs
>
(
fv
->
debug_info
()));
auto
param
=
base_graph
->
add_parameter
();
TraceManager
::
EndTrace
();
auto
&
node_users
=
res
->
manager
()
->
node_users
()[
fv
];
for
(
auto
&
n
:
node_users
)
{
auto
repl_n
=
(
*
cloner
->
cloned_node
())[
n
.
first
]
->
cast
<
CNodePtr
>
();
// If the user is not in this graph, no need to change.
auto
cloned
=
cloned_nodes
[
n
.
first
];
if
(
cloned
==
nullptr
)
{
continue
;
}
auto
repl_n
=
cloned
->
cast
<
CNodePtr
>
();
repl_n
->
set_input
(
n
.
second
,
param
);
}
}
...
...
mindspore/ccsrc/pipeline/jit/parse/resolve.cc
浏览文件 @
84695f66
...
...
@@ -109,7 +109,7 @@ AnfNodePtr ResolveParameterObj(const FuncGraphPtr &func_graph, const py::object
node
->
set_abstract
(
abs
);
para_node
=
node
;
}
func_graph
->
add_parameter_obj_node
(
para_node
);
return
para_node
;
}
...
...
mindspore/ccsrc/pipeline/jit/static_analysis/evaluator.cc
浏览文件 @
84695f66
...
...
@@ -189,12 +189,8 @@ AbstractBasePtrList FuncGraphEvaluator::BroadenUndeterminedArgs(const AbstractBa
func_graph_
->
set_flag
(
FUNC_GRAPH_FLAG_IGNORE_VALUES
,
true
);
func_graph_
->
joined_shapes_
.
clear
();
std
::
transform
(
joined_args_spec_list
.
begin
(),
joined_args_spec_list
.
end
(),
std
::
back_inserter
(
func_graph_
->
joined_shapes_
),
[](
const
AbstractBasePtr
&
arg_spec
)
{
if
(
arg_spec
->
isa
<
AbstractRef
>
())
{
return
arg_spec
->
cast
<
AbstractRefPtr
>
()
->
ref
()
->
GetShapeTrack
();
}
return
arg_spec
->
GetShapeTrack
();
});
std
::
back_inserter
(
func_graph_
->
joined_shapes_
),
[](
const
AbstractBasePtr
&
arg_spec
)
{
return
arg_spec
->
GetShapeTrack
();
});
joined_args_spec_list
=
NormalizeArgs
(
joined_args_spec_list
);
MS_LOG
(
DEBUG
)
<<
"Set "
<<
func_graph_
->
ToString
()
<<
" with IGNORE_VALUES flag."
;
}
...
...
@@ -212,12 +208,8 @@ AbstractBasePtrList FuncGraphEvaluator::BroadenUndeterminedArgs(const AbstractBa
func_graph_
->
set_flag
(
FUNC_GRAPH_FLAG_IGNORE_VALUES
,
true
);
func_graph_
->
joined_shapes_
.
clear
();
std
::
transform
(
joined_args_spec_list
.
begin
(),
joined_args_spec_list
.
end
(),
std
::
back_inserter
(
func_graph_
->
joined_shapes_
),
[](
const
AbstractBasePtr
&
arg_spec
)
{
if
(
arg_spec
->
isa
<
AbstractRef
>
())
{
return
arg_spec
->
cast
<
AbstractRefPtr
>
()
->
ref
()
->
GetShapeTrack
();
}
return
arg_spec
->
GetShapeTrack
();
});
std
::
back_inserter
(
func_graph_
->
joined_shapes_
),
[](
const
AbstractBasePtr
&
arg_spec
)
{
return
arg_spec
->
GetShapeTrack
();
});
joined_args_spec_list
=
NormalizeArgs
(
joined_args_spec_list
);
MS_LOG
(
DEBUG
)
<<
"Set "
<<
func_graph_
->
ToString
()
<<
" with IGNORE_VALUES flag."
;
}
...
...
@@ -317,10 +309,17 @@ EvalResultPtr Evaluator::Run(AnalysisEnginePtr engine, const ConfigPtrList &args
EvalResultPtr
TrivialPrimEvaluator
::
Run
(
AnalysisEnginePtr
engine
,
const
ConfigPtrList
&
args_conf_list
,
AnfNodeConfigPtr
)
{
AbstractBasePtrList
args_spec_list
;
auto
is_py_eval
=
(
identifier_
==
"PythonPrimEvaluator"
);
(
void
)
std
::
transform
(
args_conf_list
.
begin
(),
args_conf_list
.
end
(),
std
::
back_inserter
(
args_spec_list
),
[](
const
ConfigPtr
&
conf
)
->
AbstractBasePtr
{
[
is_py_eval
](
const
ConfigPtr
&
conf
)
->
AbstractBasePtr
{
MS_EXCEPTION_IF_NULL
(
conf
);
return
conf
->
GetEvaluatedValue
()
->
abstract
();
auto
abstract
=
conf
->
GetEvaluatedValue
()
->
abstract
();
// broaden the ref_key, while infer python prim for cache
if
(
is_py_eval
&&
abstract
->
isa
<
AbstractRef
>
())
{
auto
abs_ref
=
abstract
->
cast
<
AbstractRefPtr
>
();
abstract
=
std
::
make_shared
<
AbstractRef
>
(
abs_ref
->
ref_key
()
->
Broaden
(),
abs_ref
);
}
return
abstract
;
});
EvalResultPtr
ret
=
EvalPrim
(
engine
,
args_spec_list
);
return
ret
;
...
...
mindspore/ops/primitive.py
浏览文件 @
84695f66
...
...
@@ -409,7 +409,7 @@ def _run_op(obj, op_name, args):
if
op_name
==
"Cast"
or
obj
.
update_parameter
:
cast_args
=
args
else
:
cast_args
=
args
cast_args
=
list
(
args
)
for
idx
,
arg
in
enumerate
(
args
):
cast_type
=
getattr
(
arg
,
"cast_type"
,
None
)
if
cast_type
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录