Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MindSpore
akg
提交
01ee1998
A
akg
项目概览
MindSpore
/
akg
通知
58
Star
7
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
akg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
01ee1998
编写于
9月 07, 2020
作者:
H
hanhuifeng2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix a bug that random test case segment_max failed
上级
fd902f71
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
24 addition
and
1 deletion
+24
-1
src/emit_insn/insn_args_calculator.cc
src/emit_insn/insn_args_calculator.cc
+4
-1
src/pass/emit_insn.cc
src/pass/emit_insn.cc
+20
-0
未找到文件。
src/emit_insn/insn_args_calculator.cc
浏览文件 @
01ee1998
...
...
@@ -848,6 +848,9 @@ BisectionInfoWrapper SeparateComInfoToBisectionInfoList(const StmtInfoList &dst_
new_strides
.
Set
(
i
,
new_strides
[
i
+
1
]
*
new_dims
[
i
+
1
]);
}
new_dims
.
Set
(
new_dims
.
size
()
-
1
,
simd_len
);
}
else
if
(
simd_var
->
name_hint
==
un_def_var
)
{
new_dims
.
Set
(
var_idx
,
extent
);
new_strides
.
Set
(
var_idx
,
last_dim_len
);
}
else
{
new_dims
=
{
extent
};
}
...
...
@@ -946,7 +949,7 @@ BisectionInfoWrapper SeparateComInfoToBisectionInfoList(const StmtInfoList &dst_
src_tmp_info1
.
GetNode
()
->
shape_
=
dst_tmp_info
->
shape_
;
src_tmp_info1
.
GetNode
()
->
strides_
=
dst_tmp_info
->
strides_
;
src_tmp_info1
.
GetNode
()
->
var_
=
dst_tmp_info
->
var_
;
src_tmp_info1
.
GetNode
()
->
index_
=
dst_tmp_info
->
index_
;
src_tmp_info1
.
GetNode
()
->
index_
=
0
;
}
}
...
...
src/pass/emit_insn.cc
浏览文件 @
01ee1998
...
...
@@ -453,6 +453,25 @@ class RegCondition : public IRMutator {
int
reg_cnt_
{
0
};
};
class
ForSimplify
:
public
IRMutator
{
public:
ForSimplify
()
=
default
;
~
ForSimplify
()
override
=
default
;
private:
Stmt
Mutate_
(
const
For
*
op
,
const
Stmt
&
s
)
final
{
if
((
op
->
extent
.
as
<
IntImm
>
()
&&
op
->
extent
.
as
<
IntImm
>
()
->
value
==
1
)
||
(
op
->
extent
.
as
<
UIntImm
>
()
&&
op
->
extent
.
as
<
UIntImm
>
()
->
value
==
1
))
{
Map
<
Var
,
Expr
>
var_map
;
var_map
.
Set
(
op
->
loop_var
,
op
->
min
);
auto
body
=
Mutate
(
op
->
body
);
body
=
Simplify
(
Substitute
(
body
,
var_map
));
return
body
;
}
return
IRMutator
::
Mutate_
(
op
,
s
);
}
};
Stmt
EmitInsn
(
Stmt
stmt
,
bool
enable_bisect
,
bool
enable_cover_protect
,
const
Map
<
Tensor
,
Buffer
>
&
extern_buffer
,
bool
is_dynamic
)
{
char
*
debug_var
=
getenv
(
"DEBUG_MODE"
);
...
...
@@ -463,6 +482,7 @@ Stmt EmitInsn(Stmt stmt, bool enable_bisect, bool enable_cover_protect, const Ma
if
(
debug_mode
)
{
stmt
=
EmitInsnDebug
(
stmt
);
}
stmt
=
ForSimplify
().
Mutate
(
stmt
);
stmt
=
PreEmit
().
Mutate
(
stmt
);
if
(
!
is_dynamic
)
{
char
*
comment_var
=
getenv
(
"COMMENT_LEVEL"
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录