Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MindSpore
akg
提交
8f9af74f
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看板
提交
8f9af74f
编写于
8月 10, 2020
作者:
M
mindspore-ci-bot
提交者:
Gitee
8月 10, 2020
浏览文件
操作
浏览文件
下载
差异文件
!100 Use env variances for dump_ir and dump_code
Merge pull request !100 from lvwenyuan/gpu-env
上级
a8faeda6
403e8110
变更
46
隐藏空白更改
内联
并排
Showing
46 changed file
with
118 addition
and
85 deletion
+118
-85
python/akg/composite/build_module.py
python/akg/composite/build_module.py
+2
-1
python/akg/ms/message.py
python/akg/ms/message.py
+4
-1
python/akg/ms/op_build.py
python/akg/ms/op_build.py
+1
-1
python/akg/ops/nn/maxpool.py
python/akg/ops/nn/maxpool.py
+1
-1
python/akg/ops/nn/maxpool_ad.py
python/akg/ops/nn/maxpool_ad.py
+2
-2
python/akg/utils/dump_cuda_meta.py
python/akg/utils/dump_cuda_meta.py
+13
-1
python/akg/utils/kernel_exec.py
python/akg/utils/kernel_exec.py
+44
-27
src/codegen/build_module.cc
src/codegen/build_module.cc
+2
-2
tests/common/test_op/add_a_conv.py
tests/common/test_op/add_a_conv.py
+1
-1
tests/common/test_op/add_b_conv.py
tests/common/test_op/add_b_conv.py
+1
-1
tests/common/test_op/col2im_compute.py
tests/common/test_op/col2im_compute.py
+1
-1
tests/common/test_op/gather.py
tests/common/test_op/gather.py
+1
-1
tests/common/test_op/im2col_compute.py
tests/common/test_op/im2col_compute.py
+1
-1
tests/common/test_op/reduce_max_ad.py
tests/common/test_op/reduce_max_ad.py
+1
-1
tests/common/test_op/reduce_min_ad.py
tests/common/test_op/reduce_min_ad.py
+1
-1
tests/common/test_op/vector_matmul.py
tests/common/test_op/vector_matmul.py
+1
-1
tests/common/test_run/IOU_for_train_run.py
tests/common/test_run/IOU_for_train_run.py
+1
-1
tests/common/test_run/avgpool_ad_run.py
tests/common/test_run/avgpool_ad_run.py
+2
-2
tests/common/test_run/bounding_box_encode_run.py
tests/common/test_run/bounding_box_encode_run.py
+2
-2
tests/common/test_run/conv_filter_ad_run.py
tests/common/test_run/conv_filter_ad_run.py
+1
-1
tests/common/test_run/conv_run_mansch.py
tests/common/test_run/conv_run_mansch.py
+1
-1
tests/common/test_run/distr_bernoulli_logprob_ad_run.py
tests/common/test_run/distr_bernoulli_logprob_ad_run.py
+1
-1
tests/common/test_run/distr_bernoulli_logprob_run.py
tests/common/test_run/distr_bernoulli_logprob_run.py
+1
-1
tests/common/test_run/distr_normal_diag_KLdiv_ad_run.py
tests/common/test_run/distr_normal_diag_KLdiv_ad_run.py
+1
-1
tests/common/test_run/distr_normal_diag_KLdiv_run.py
tests/common/test_run/distr_normal_diag_KLdiv_run.py
+1
-1
tests/common/test_run/distr_normal_diag_logprob_ad_run.py
tests/common/test_run/distr_normal_diag_logprob_ad_run.py
+1
-1
tests/common/test_run/distr_normal_diag_logprob_run.py
tests/common/test_run/distr_normal_diag_logprob_run.py
+1
-1
tests/common/test_run/distr_normal_diag_sample_ad_run.py
tests/common/test_run/distr_normal_diag_sample_ad_run.py
+1
-1
tests/common/test_run/distr_normal_diag_sample_run.py
tests/common/test_run/distr_normal_diag_sample_run.py
+1
-1
tests/common/test_run/distr_normal_prob_regr_train_run.py
tests/common/test_run/distr_normal_prob_regr_train_run.py
+1
-1
tests/common/test_run/dropout_run.py
tests/common/test_run/dropout_run.py
+1
-1
tests/common/test_run/kldiv_loss_grad_run.py
tests/common/test_run/kldiv_loss_grad_run.py
+2
-2
tests/common/test_run/l1_loss_grad_run.py
tests/common/test_run/l1_loss_grad_run.py
+2
-2
tests/common/test_run/matmul_run_mansch.py
tests/common/test_run/matmul_run_mansch.py
+1
-1
tests/common/test_run/maxpool_ad_run.py
tests/common/test_run/maxpool_ad_run.py
+3
-3
tests/common/test_run/maxpool_grad_run.py
tests/common/test_run/maxpool_grad_run.py
+2
-2
tests/common/test_run/maxpool_grad_with_argmax_run.py
tests/common/test_run/maxpool_grad_with_argmax_run.py
+2
-2
tests/common/test_run/nms_run.py
tests/common/test_run/nms_run.py
+1
-1
tests/common/test_run/roipool_run.py
tests/common/test_run/roipool_run.py
+1
-1
tests/common/test_run/smooth_l1_loss_grad_run.py
tests/common/test_run/smooth_l1_loss_grad_run.py
+2
-2
tests/common/test_run/square_difference_run.py
tests/common/test_run/square_difference_run.py
+1
-1
tests/common/test_run/strided_slice_grad_run.py
tests/common/test_run/strided_slice_grad_run.py
+1
-1
tests/common/test_run/truncatemod_run.py
tests/common/test_run/truncatemod_run.py
+2
-2
tests/common/test_run/vector_matmul_run.py
tests/common/test_run/vector_matmul_run.py
+1
-1
tests/common/test_run/winograd_ad_run.py
tests/common/test_run/winograd_ad_run.py
+2
-2
tests/operators/cube/quant_conv.py
tests/operators/cube/quant_conv.py
+1
-1
未找到文件。
python/akg/composite/build_module.py
浏览文件 @
8f9af74f
...
...
@@ -176,7 +176,8 @@ def build_cuda(outputs, args, sch_name, kernel_name):
}
with
tvm
.
target
.
cuda
()
as
cuda
:
s
=
scheduler
[
sch_name
](
outputs
)
with
tvm
.
build_config
(
dump_pass_ir
=
True
):
dump_ir
=
os
.
getenv
(
'MS_AKG_DUMP_IR'
)
==
"on"
with
tvm
.
build_config
(
dump_pass_ir
=
dump_ir
):
mod
=
tvm
.
build
(
s
,
args
,
cuda
,
name
=
kernel_name
)
dump_cuda_meta
.
dump
(
mod
,
kernel_name
,
s
,
list
(
args
))
return
mod
python/akg/ms/message.py
浏览文件 @
8f9af74f
...
...
@@ -82,7 +82,10 @@ def compilewithjson_to_func(json_str):
if
kernel_info
[
'attr'
]:
for
ext_arg
in
kernel_info
[
'attr'
]:
op_attrs
.
append
(
ext_arg
[
'value'
])
mod
=
utils
.
op_build
(
op_func
,
input_shapes
,
input_types
,
op_attrs
,
kernel_info
[
'op'
])
dump_ir
=
os
.
getenv
(
'MS_AKG_DUMP_IR'
)
==
"on"
dump_code
=
os
.
getenv
(
'MS_AKG_DUMP_CODE'
)
==
"on"
mod
=
utils
.
op_build
(
op_func
,
input_shapes
,
input_types
,
op_attrs
,
kernel_info
[
'op'
],
dump_ir
=
dump_ir
,
dump_code
=
dump_code
)
return
True
else
:
op_func
=
getattr
(
cce
,
op_name
,
None
)
...
...
python/akg/ms/op_build.py
浏览文件 @
8f9af74f
...
...
@@ -31,7 +31,7 @@ from akg.utils import validation_check as vc_util
BINDS
=
"binds"
MS_AKG_DUMP_IR
=
"MS_AKG_DUMP_IR"
MS_AKG_DUMP_C
CE
=
"MS_AKG_DUMP_CC
E"
MS_AKG_DUMP_C
ODE
=
"MS_AKG_DUMP_COD
E"
MS_DAVINCI_KERNEL_PATH
=
"./kernel_meta/"
...
...
python/akg/ops/nn/maxpool.py
浏览文件 @
8f9af74f
...
...
@@ -294,7 +294,7 @@ def maxpool_manual_schedule(shape, kernel, stride, padding, dtype, attrs=None, p
mod
=
akg
.
build
(
s
,
[
data
,
res
],
"cce"
,
name
=
"maxpool_manual_schedule"
,
attrs
=
attrs
,
polyhedral
=
polyhedral
)
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
kernel_name
=
"maxpool_ad_manual_schedule"
utils
.
create_c
c
e
(
kernel_name
,
'./'
,
source_code
)
utils
.
create_c
od
e
(
kernel_name
,
'./'
,
source_code
)
return
mod
def
pad_strategy_check
(
strategy
):
...
...
python/akg/ops/nn/maxpool_ad.py
浏览文件 @
8f9af74f
...
...
@@ -387,7 +387,7 @@ def maxpool_ad_manual_schedule_all_max(shape, kernel, stride, pad, dtype, polyhe
attrs
=
attrs
,
polyhedral
=
polyhedral
)
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
kernel_name
=
"maxpool_ad_manual_schedule_all_max"
utils
.
create_c
c
e
(
kernel_name
,
'./'
,
source_code
)
utils
.
create_c
od
e
(
kernel_name
,
'./'
,
source_code
)
return
mod
...
...
@@ -489,5 +489,5 @@ def maxpool_ad_manual_schedule_no_overlap_all_max(shape, kernel, stride, pad, dt
name
=
"maxpool_ad_manual_schedule_no_overlap_all_max"
,
attrs
=
attrs
,
polyhedral
=
polyhedral
)
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
kernel_name
=
"maxpool_ad_manual_schedule_no_overlap_all_max"
utils
.
create_c
c
e
(
kernel_name
,
'./'
,
source_code
)
utils
.
create_c
od
e
(
kernel_name
,
'./'
,
source_code
)
return
mod
python/akg/utils/dump_cuda_meta.py
浏览文件 @
8f9af74f
...
...
@@ -64,7 +64,19 @@ def save_gpu_params(s, args, kernel_info):
ptx_code
=
kernel_info
[
0
]
file_name
=
kernel_info
[
1
]
kernel_name
=
kernel_info
[
2
]
ir
=
str
(
akg
.
tvm
.
lower
(
s
,
args
,
simple_mode
=
True
))
dump_ir
=
os
.
getenv
(
'MS_AKG_DUMP_IR'
)
==
"on"
if
dump_ir
:
schedule_path
=
os
.
path
.
realpath
(
kernel_name
)
all_passes
=
os
.
listdir
(
schedule_path
)
for
cur_pass
in
all_passes
:
if
cur_pass
.
startswith
(
"00_"
):
with
open
(
schedule_path
+
'/'
+
cur_pass
,
"r"
)
as
file
:
ir
=
file
.
read
()
break
else
:
ir
=
str
(
akg
.
tvm
.
lower
(
s
,
args
,
simple_mode
=
True
))
file_path
=
os
.
path
.
realpath
(
file_name
)
if
os
.
path
.
exists
(
file_path
):
os
.
remove
(
file_path
)
...
...
python/akg/utils/kernel_exec.py
浏览文件 @
8f9af74f
...
...
@@ -67,29 +67,42 @@ def func_time_required(func_name):
return
wrapper
def
create_c
ce
(
kernel_name
,
cce_path
=
None
,
code
=
None
):
def
create_c
ode
(
kernel_name
,
code_path
=
None
,
code
=
None
,
code_type
=
"CCE"
):
"""
Create cce file.
Create cce
or cuda
file.
Args:
kernel_name: cce file name.
cce_path: cce file path.
code: cce code.
kernel_name: file name.
code_path: file path.
code: code.
code_type: code type.
"""
if
cce_path
:
if
len
(
cce_path
)
>
4
and
cce_path
[
-
4
:].
lower
()
==
".cce"
:
real_path
=
cce_path
if
code_type
==
"CCE"
:
postfix
=
".cce"
elif
code_type
==
"CUDA"
:
postfix
=
".cu"
else
:
logging
.
info
(
"the target code type %s is not supported."
,
code_type
)
if
not
code_path
:
code_path
=
"./"
if
code_type
==
"CCE"
and
len
(
code_path
)
>
4
and
code_path
[
-
4
:].
lower
()
==
postfix
:
real_path
=
code_path
elif
code_type
==
"CUDA"
and
len
(
code_path
)
>
3
and
code_path
[
-
3
:].
lower
()
==
postfix
:
real_path
=
code_path
else
:
if
code_path
[
-
1
]
==
r
"/"
:
real_path
=
code_path
+
kernel_name
+
postfix
else
:
if
cce_path
[
-
1
]
==
r
"/"
:
real_path
=
cce_path
+
kernel_name
+
".cce"
else
:
real_path
=
cce_path
+
r
"/"
+
kernel_name
+
".cce"
dir_path
=
r
"/"
.
join
(
real_path
.
split
(
r
"/"
)[:
-
1
])
if
not
os
.
path
.
isdir
(
dir_path
)
:
os
.
makedirs
(
dir_path
)
real_path
=
code_path
+
r
"/"
+
kernel_name
+
postfix
dir_path
=
r
"/"
.
join
(
real_path
.
split
(
r
"/"
)[:
-
1
])
if
not
os
.
path
.
isdir
(
dir_path
)
:
os
.
makedirs
(
dir_path
)
with
open
(
real_path
,
'wt'
)
as
ss
:
ss
.
write
(
code
)
with
open
(
real_path
,
'wt'
)
as
ss
:
ss
.
write
(
code
)
def
gen_name_kernel
(
kernel
,
dtype
,
shapes
):
...
...
@@ -538,7 +551,7 @@ def gen_kernel_name(input_shapes, input_types, op_attrs=None, kernel_name=""):
@
func_time_required
def
op_build_test
(
op_func
,
input_shapes
,
input_types
,
op_attrs
=
None
,
kernel_name
=
""
,
attrs
=
None
,
log_cce
=
False
,
dump_ir
=
True
,
dump_c
c
e
=
True
,
attrs
=
None
,
log_cce
=
False
,
dump_ir
=
True
,
dump_c
od
e
=
True
,
polyhedral
=
True
,
tuning
=
False
):
"""
Return module from op_build with given inputs, distinguish tuning mode.
...
...
@@ -552,7 +565,7 @@ def op_build_test(op_func, input_shapes, input_types, op_attrs=None, kernel_name
attrs (dict): tiling parameter.
log_cce (bool): False by default.
dump_ir (bool): True by default.
dump_c
c
e (bool): False by default.
dump_c
od
e (bool): False by default.
polyhedral (bool): True by default.
tuning (bool): False by default.
...
...
@@ -565,7 +578,7 @@ def op_build_test(op_func, input_shapes, input_types, op_attrs=None, kernel_name
kernel_name
=
gen_kernel_name
(
input_shapes
,
input_types
,
op_attrs
,
kernel_name
)
logging
.
debug
(
'kernel_name---------- %s'
,
str
(
kernel_name
))
mod
=
op_build
(
op_func
,
input_shapes
,
input_types
,
op_attrs
,
kernel_name
,
attrs
,
log_cce
,
dump_ir
,
dump_c
c
e
,
attrs
,
log_cce
,
dump_ir
,
dump_c
od
e
,
polyhedral
,
tuning
)
return
mod
...
...
@@ -593,7 +606,7 @@ def recursive_copy(obj):
def
op_build
(
op_func
,
input_shapes
,
input_types
,
op_attrs
=
None
,
kernel_name
=
""
,
attrs
=
None
,
log_cce
=
False
,
dump_ir
=
True
,
dump_c
c
e
=
True
,
attrs
=
None
,
log_cce
=
False
,
dump_ir
=
True
,
dump_c
od
e
=
True
,
polyhedral
=
True
,
tuning
=
False
):
"""
Return module built from op_func with given inputs.
...
...
@@ -607,7 +620,7 @@ def op_build(op_func, input_shapes, input_types, op_attrs=None, kernel_name="",
attrs (dict): tiling parameter.
log_cce (bool): False by default.
dump_ir (bool): True by default.
dump_c
c
e (bool): False by default.
dump_c
od
e (bool): False by default.
polyhedral (bool): True by default.
tuning (bool): False by default.
...
...
@@ -730,9 +743,13 @@ def op_build(op_func, input_shapes, input_types, op_attrs=None, kernel_name="",
kernel_name
=
kernel_name
if
kernel_name
!=
""
else
sch_tmpl
[
'op_name'
]
with
akg
.
tvm
.
target
.
cuda
()
as
target
:
s
=
sch_tmpl
[
'schedule'
](
sch_tmpl
[
'output'
])
with
akg
.
build_config
(
dump_pass_ir
=
True
):
mod
=
akg
.
build
(
s
,
op_var
,
"cuda"
,
shape_var
,
name
=
kernel_name
,
attrs
=
attrs
,
polyhedral
=
polyhedral
,
binds
=
binds
)
with
akg
.
tvm
.
build_config
(
dump_pass_ir
=
dump_ir
):
mod
=
akg
.
build
(
s
,
op_var
,
"cuda"
,
shape_var
,
name
=
kernel_name
,
attrs
=
attrs
,
polyhedral
=
polyhedral
,
binds
=
binds
)
dump_cuda_meta
.
dump
(
mod
,
kernel_name
,
s
,
op_var
)
if
dump_code
:
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
create_code
(
kernel_name
,
"./"
,
source_code
,
"CUDA"
)
return
mod
if
isinstance
(
output
,
(
list
,
tuple
)):
...
...
@@ -781,9 +798,9 @@ def op_build(op_func, input_shapes, input_types, op_attrs=None, kernel_name="",
if
log_cce
:
logging
.
debug
(
"#################cce code####################"
)
logging
.
debug
(
source_code
)
if
dump_c
c
e
:
c
c
e_path
=
"./"
create_c
ce
(
kernel_name
,
cc
e_path
,
source_code
)
if
dump_c
od
e
:
c
od
e_path
=
"./"
create_c
ode
(
kernel_name
,
cod
e_path
,
source_code
)
return
mod
...
...
src/codegen/build_module.cc
浏览文件 @
8f9af74f
...
...
@@ -1110,8 +1110,8 @@ air::runtime::Module BuildToModule(const NodeRef &ref, const std::string &target
mhost
.
Import
(
mdev
);
}
const
char
*
akg_dump_c
ce
=
getenv
(
"MS_AKG_DUMP_CC
E"
);
if
(
akg_dump_c
c
e
!=
nullptr
)
{
const
char
*
akg_dump_c
ode
=
getenv
(
"MS_AKG_DUMP_COD
E"
);
if
(
akg_dump_c
od
e
!=
nullptr
)
{
auto
mod0
=
mhost
->
imports
()[
0
];
CHECK
(
mod0
.
defined
());
...
...
tests/common/test_op/add_a_conv.py
浏览文件 @
8f9af74f
...
...
@@ -207,7 +207,7 @@ def add_a_conv(fmap_shape, filter_shape, pad_, stride_, dilation_,
mod
=
akg
.
build
(
s
,
[
a_value
,
b_value
,
conv
],
"cce"
,
name
=
kernel_name
,
attrs
=
attrs
,
polyhedral
=
True
)
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
cce_path
=
'.'
utils
.
create_c
c
e
(
kernel_name
,
cce_path
,
source_code
)
utils
.
create_c
od
e
(
kernel_name
,
cce_path
,
source_code
)
return
mod
...
...
tests/common/test_op/add_b_conv.py
浏览文件 @
8f9af74f
...
...
@@ -201,7 +201,7 @@ def add_b_conv(fmap_shape, filter_shape, pad_, stride_, dilation_,
mod
=
akg
.
build
(
s
,
[
a_value
,
b_value
,
conv
],
"cce"
,
name
=
kernel_name
,
attrs
=
attrs
,
polyhedral
=
True
)
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
cce_path
=
'.'
utils
.
create_c
c
e
(
kernel_name
,
cce_path
,
source_code
)
utils
.
create_c
od
e
(
kernel_name
,
cce_path
,
source_code
)
return
mod
...
...
tests/common/test_op/col2im_compute.py
浏览文件 @
8f9af74f
...
...
@@ -64,5 +64,5 @@ def col2im_manual_schedule(shape, kernel, stride, pad, dtype, output_H_W, polyhe
mod
=
akg
.
build
(
s
,
[
data
,
res
],
"cce"
,
name
=
"col2im_manual_schedule"
,
attrs
=
attrs
,
polyhedral
=
polyhedral
)
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
kernel_name
=
"col2im_manual_schedule"
utils
.
create_c
c
e
(
kernel_name
,
"./"
,
source_code
)
utils
.
create_c
od
e
(
kernel_name
,
"./"
,
source_code
)
return
mod
tests/common/test_op/gather.py
浏览文件 @
8f9af74f
...
...
@@ -115,6 +115,6 @@ def gather(params_shape, indices_shape, params_dtype, indices_dtype, axis, kerne
mod
=
akg
.
build
(
s
,
[
xx
,
yy
,
res
],
"cce"
,
name
=
kernel_name
,
attrs
=
attrs
)
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
utils
.
create_c
c
e
(
kernel_name
,
cce_path
,
source_code
)
utils
.
create_c
od
e
(
kernel_name
,
cce_path
,
source_code
)
return
mod
tests/common/test_op/im2col_compute.py
浏览文件 @
8f9af74f
...
...
@@ -109,5 +109,5 @@ def im2col_manual_schedule(shape, kernel, stride, pad, dtype, polyhedral=True, a
attrs
=
attrs
,
polyhedral
=
polyhedral
)
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
kernel_name
=
"im2col_manual_schedule"
utils
.
create_c
c
e
(
kernel_name
,
'./'
,
source_code
)
utils
.
create_c
od
e
(
kernel_name
,
'./'
,
source_code
)
return
mod
tests/common/test_op/reduce_max_ad.py
浏览文件 @
8f9af74f
...
...
@@ -200,5 +200,5 @@ def reduce_max_ad_optimized_manual_schedule(input_shape, dtype, axis, keepdims,
name
=
"reduce_max_ad_manual_schedule"
,
attrs
=
attrs
,
polyhedral
=
polyhedral
)
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
kernel_name
=
"reduce_max_ad_manual_schedule"
utils
.
create_c
c
e
(
kernel_name
,
'./'
,
source_code
)
utils
.
create_c
od
e
(
kernel_name
,
'./'
,
source_code
)
return
mod
tests/common/test_op/reduce_min_ad.py
浏览文件 @
8f9af74f
...
...
@@ -159,5 +159,5 @@ def reduce_min_ad_optimized_manual_schedule(input_shape, dtype, axis, keepdims,
attrs
=
attrs
,
polyhedral
=
polyhedral
)
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
kernel_name
=
"reduce_min_ad_manual_schedule"
utils
.
create_c
c
e
(
kernel_name
,
'./'
,
source_code
)
utils
.
create_c
od
e
(
kernel_name
,
'./'
,
source_code
)
return
mod
tests/common/test_op/vector_matmul.py
浏览文件 @
8f9af74f
...
...
@@ -105,5 +105,5 @@ def vector_matmul(data_m, data_n, data_k, trans_a, trans_b, dtype, kernel_name,
with
akg
.
build_config
(
add_lower_pass
=
cce
.
debug_mode
(
0
),
dump_pass_ir
=
True
):
mod
=
akg
.
build
(
forward_s
,
op_vars
,
"cce"
,
name
=
kernel_name
,
attrs
=
attrs
,
polyhedral
=
True
)
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
utils
.
create_c
c
e
(
kernel_name
,
"./"
,
source_code
)
utils
.
create_c
od
e
(
kernel_name
,
"./"
,
source_code
)
return
mod
,
output_shape
tests/common/test_run/IOU_for_train_run.py
浏览文件 @
8f9af74f
...
...
@@ -81,7 +81,7 @@ def iou_for_train_run(shape_tensor,
output
=
utils
.
mod_launch
(
mod
,
(
anchor
,
ground_truth
,
output
),
expect
=
expect
)
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
utils
.
create_c
c
e
(
kernel_name
,
"./"
,
source_code
)
utils
.
create_c
od
e
(
kernel_name
,
"./"
,
source_code
)
return
input
,
output
,
expect
,
compare_tensor
(
output
,
expect
,
rtol
=
5e-03
,
equal_nan
=
True
)
...
...
tests/common/test_run/avgpool_ad_run.py
浏览文件 @
8f9af74f
...
...
@@ -41,7 +41,7 @@ def avgpool_ad_run(shape, kernel, stride, pad, dtype, polyhedral=False, attrs=No
input
=
random_gaussian
(
shape
,
miu
=
1
,
sigma
=
0.1
).
astype
(
support_list
[
dtype
])
y
=
avgpool_run
.
benchmark
(
input
,
kernel
,
stride
,
pad
)
mod
=
utils
.
op_build_test
(
avgpool
,
[
y
.
shape
,
shape
],
[
dtype
,
dtype
],
op_attrs
=
[
kernel
,
stride
,
pad
],
kernel_name
=
kernel_name
,
attrs
=
attrs
,
log_cce
=
True
,
dump_c
c
e
=
True
,
tuning
=
t
)
kernel_name
=
kernel_name
,
attrs
=
attrs
,
log_cce
=
True
,
dump_c
od
e
=
True
,
tuning
=
t
)
if
t
:
expect
,
head
,
output
=
gen_data
(
dtype
,
input
,
kernel
,
pad
,
stride
,
support_list
,
y
)
return
mod
,
expect
,
(
head
,
input
,
output
)
...
...
@@ -51,7 +51,7 @@ def avgpool_ad_run(shape, kernel, stride, pad, dtype, polyhedral=False, attrs=No
input
=
random_gaussian
(
shape
,
miu
=
1
,
sigma
=
0.1
).
astype
(
support_list
[
dtype
])
y
=
avgpool_run
.
benchmark
(
input
,
kernel
,
stride
,
pad
)
mod
=
utils
.
op_build_test
(
avgpool
,
[
y
.
shape
,
shape
],
[
dtype
,
dtype
],
op_attrs
=
[
kernel
,
stride
,
pad
],
kernel_name
=
kernel_name
,
attrs
=
attrs
,
log_cce
=
True
,
dump_c
c
e
=
True
)
kernel_name
=
kernel_name
,
attrs
=
attrs
,
log_cce
=
True
,
dump_c
od
e
=
True
)
expect
,
head
,
output
=
gen_data
(
dtype
,
input
,
kernel
,
pad
,
stride
,
support_list
,
y
)
output
=
utils
.
mod_launch
(
mod
,
[
head
,
input
,
output
],
expect
=
expect
)
...
...
tests/common/test_run/bounding_box_encode_run.py
浏览文件 @
8f9af74f
...
...
@@ -197,7 +197,7 @@ def bounding_box_encode_run(anchor_box_shape, groundtruth_box_shape, anchor_samp
mod
=
utils
.
op_build_test
(
bounding_box_encode
.
bouding_box_encode
,
[
anchor_box_shape
,
groundtruth_box_shape
,
anchor_samples_shape
],
[
dtype
,
dtype
,
"int32"
],
op_attrs
,
kernel_name
=
kernel_name
,
attrs
=
attrs
,
dump_c
c
e
=
True
,
tuning
=
t
)
op_attrs
,
kernel_name
=
kernel_name
,
attrs
=
attrs
,
dump_c
od
e
=
True
,
tuning
=
t
)
if
t
:
anchor_box_data
,
anchor_samples_data
,
expect
,
groundtruth_box_data
,
output_data
=
gen_data
(
anchor_box_shape
,
anchor_samples_shape
,
...
...
@@ -211,7 +211,7 @@ def bounding_box_encode_run(anchor_box_shape, groundtruth_box_shape, anchor_samp
mod
=
utils
.
op_build_test
(
bounding_box_encode
.
bouding_box_encode
,
[
anchor_box_shape
,
groundtruth_box_shape
,
anchor_samples_shape
],
[
dtype
,
dtype
,
"int32"
],
op_attrs
,
kernel_name
=
kernel_name
,
attrs
=
attrs
,
dump_c
c
e
=
True
)
op_attrs
,
kernel_name
=
kernel_name
,
attrs
=
attrs
,
dump_c
od
e
=
True
)
anchor_box_data
,
anchor_samples_data
,
expect
,
groundtruth_box_data
,
output_data
=
gen_data
(
anchor_box_shape
,
anchor_samples_shape
,
dtype
,
epsilon
,
...
...
tests/common/test_run/conv_filter_ad_run.py
浏览文件 @
8f9af74f
...
...
@@ -192,7 +192,7 @@ def conv_filter_ad_run(fmap_shape, filter_shape, pad_, stride_, dilation_, attr
return
np_input
,
out_data
,
expect
,
True
mod
=
utils
.
op_build_test
(
conv_filter_ad
.
conv_filter_ad
,
[
dw_input_shapes
],
[
conv_dtype
],
op_attrs
=
[
fmap_shape
,
filter_shape
,
pad_
,
stride_
,
dilation_
],
kernel_name
=
'conv_filter_ad'
,
attrs
=
attrs
,
dump_c
c
e
=
True
)
op_attrs
=
[
fmap_shape
,
filter_shape
,
pad_
,
stride_
,
dilation_
],
kernel_name
=
'conv_filter_ad'
,
attrs
=
attrs
,
dump_c
od
e
=
True
)
args
=
(
dy_data
,
dx_data
,
out_data
)
out_data
=
utils
.
mod_launch
(
mod
,
args
,
expect
=
expect
)
rtol
,
atol
=
get_rtol_atol
(
"conv_filter_ad"
,
conv_dtype
)
...
...
tests/common/test_run/conv_run_mansch.py
浏览文件 @
8f9af74f
...
...
@@ -34,7 +34,7 @@ def conv_run_mansch(FMap_shape, Filter_shape, Pad, Stride, Dilation=None, use_bi
use_bias
=
use_bias
,
fp32_mad
=
fp32_mad
,
kernel_name
=
"conv_mansch"
)
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
utils
.
create_c
c
e
(
"conv_mansch"
,
"."
,
source_code
)
utils
.
create_c
od
e
(
"conv_mansch"
,
"."
,
source_code
)
A
,
B
,
bias_data
,
expect
=
gen_data
(
FMap_shape
,
Filter_shape
,
Pad
,
Stride
,
Dilation
,
use_bias
)
expect
=
expect
.
reshape
((
expect
.
shape
[
0
],
expect
.
shape
[
1
],
expect
.
shape
[
2
]
*
expect
.
shape
[
3
],
expect
.
shape
[
4
]))
# output on conv2d is in 4d format
...
...
tests/common/test_run/distr_bernoulli_logprob_ad_run.py
浏览文件 @
8f9af74f
...
...
@@ -26,7 +26,7 @@ def logprob_ad_run(shape, dtype, kernel_name="", attrs=None):
mod
=
utils
.
op_build_test
(
distr_bernoulli_logprob_ad
.
bernoulli_logprob_ad
,
[
head
.
shape
,
x
.
shape
,
probs
.
shape
],
[
dtype
,
dtype
,
dtype
],
kernel_name
=
kernel_name
,
op_attrs
=
None
,
attrs
=
None
,
log_cce
=
True
,
dump_c
c
e
=
True
,
polyhedral
=
True
)
op_attrs
=
None
,
attrs
=
None
,
log_cce
=
True
,
dump_c
od
e
=
True
,
polyhedral
=
True
)
outputs
=
utils
.
mod_launch
(
mod
,
[
head
,
x
,
probs
,
*
outputs
],
outputs
=
tuple
(
range
(
-
len
(
outputs
),
0
)),
expect
=
expects
)
outputs
=
list
(
outputs
)
...
...
tests/common/test_run/distr_bernoulli_logprob_run.py
浏览文件 @
8f9af74f
...
...
@@ -29,7 +29,7 @@ def log_prob_run(shape, dtype, kernelname="", attrs = None):
mod
=
utils
.
op_build_test
(
log_prob_op
,
[
x
.
shape
,
probs
.
shape
],
[
dtype
,
dtype
],
kernel_name
=
kernelname
,
op_attrs
=
[],
attrs
=
None
,
log_cce
=
True
,
dump_c
c
e
=
True
,
polyhedral
=
True
)
op_attrs
=
[],
attrs
=
None
,
log_cce
=
True
,
dump_c
od
e
=
True
,
polyhedral
=
True
)
output
=
utils
.
mod_launch
(
mod
,
[
x
,
probs
,
output
],
expect
=
expect
)
return
(
x
,
probs
),
output
,
expect
,
compare_tensor
(
output
,
expect
,
rtol
=
1e-03
,
atol
=
1e-03
,
equal_nan
=
True
)
...
...
tests/common/test_run/distr_normal_diag_KLdiv_ad_run.py
浏览文件 @
8f9af74f
...
...
@@ -25,7 +25,7 @@ def KLdiv_ad_run(shape, dtype, kernel_name="", attrs=None):
mod
=
utils
.
op_build_test
(
distr_normal_diag_KLdiv_ad
.
normal_diag_KLdiv_ad
,
[
head
.
shape
,
mean
.
shape
,
scale
.
shape
],
[
dtype
,
dtype
,
dtype
],
kernel_name
=
kernel_name
,
op_attrs
=
None
,
attrs
=
None
,
log_cce
=
True
,
dump_c
c
e
=
True
,
polyhedral
=
True
)
op_attrs
=
None
,
attrs
=
None
,
log_cce
=
True
,
dump_c
od
e
=
True
,
polyhedral
=
True
)
outputs
=
utils
.
mod_launch
(
mod
,
[
head
,
mean
,
scale
,
*
outputs
],
outputs
=
tuple
(
range
(
-
len
(
outputs
),
0
)),
expect
=
expects
)
outputs
=
list
(
outputs
)
...
...
tests/common/test_run/distr_normal_diag_KLdiv_run.py
浏览文件 @
8f9af74f
...
...
@@ -27,7 +27,7 @@ def KLdiv_run(shape, dtype, kernelname="", attrs = None):
mod
=
utils
.
op_build_test
(
KLdiv_op
,
[
mean
.
shape
,
scale
.
shape
],
[
dtype
,
dtype
],
kernel_name
=
kernelname
,
op_attrs
=
[],
attrs
=
None
,
log_cce
=
True
,
dump_c
c
e
=
True
,
polyhedral
=
True
)
op_attrs
=
[],
attrs
=
None
,
log_cce
=
True
,
dump_c
od
e
=
True
,
polyhedral
=
True
)
output
=
utils
.
mod_launch
(
mod
,
[
mean
,
scale
,
output
],
expect
=
expect
)
return
(
mean
,
scale
),
output
,
expect
,
compare_tensor
(
output
,
expect
,
rtol
=
5e-03
,
equal_nan
=
True
)
...
...
tests/common/test_run/distr_normal_diag_logprob_ad_run.py
浏览文件 @
8f9af74f
...
...
@@ -30,7 +30,7 @@ def logprob_ad_run(shape, dtype, kernel_name="", attrs=None):
op_attrs
=
None
,
attrs
=
None
,
log_cce
=
True
,
dump_c
c
e
=
True
,
dump_c
od
e
=
True
,
polyhedral
=
True
,
)
outputs
=
utils
.
mod_launch
(
...
...
tests/common/test_run/distr_normal_diag_logprob_run.py
浏览文件 @
8f9af74f
...
...
@@ -28,7 +28,7 @@ def logprob_run(shape, dtype, kernelname="", attrs = None):
mod
=
utils
.
op_build_test
(
logprob_op
,
[
x
.
shape
,
mean
.
shape
,
scale
.
shape
],
[
dtype
,
dtype
,
dtype
],
kernel_name
=
kernelname
,
op_attrs
=
[],
attrs
=
None
,
log_cce
=
True
,
dump_c
c
e
=
True
,
polyhedral
=
True
)
op_attrs
=
[],
attrs
=
None
,
log_cce
=
True
,
dump_c
od
e
=
True
,
polyhedral
=
True
)
output
=
utils
.
mod_launch
(
mod
,
[
x
,
mean
,
scale
,
output
],
expect
=
expect
)
return
(
x
,
mean
,
scale
),
output
,
expect
,
compare_tensor
(
output
,
expect
,
rtol
=
5e-03
,
equal_nan
=
True
)
...
...
tests/common/test_run/distr_normal_diag_sample_ad_run.py
浏览文件 @
8f9af74f
...
...
@@ -24,7 +24,7 @@ def sample_ad_run(shape, dtype, kernel_name="", attrs=None):
mod
=
utils
.
op_build_test
(
distr_normal_diag_sample_ad
.
normal_diag_sample_ad
,
[
head
.
shape
,
mean
.
shape
,
scale
.
shape
,
eps
.
shape
],
[
dtype
,
dtype
,
dtype
,
dtype
],
kernel_name
=
kernel_name
,
op_attrs
=
None
,
attrs
=
None
,
log_cce
=
True
,
dump_c
c
e
=
True
,
polyhedral
=
True
)
op_attrs
=
None
,
attrs
=
None
,
log_cce
=
True
,
dump_c
od
e
=
True
,
polyhedral
=
True
)
outputs
=
utils
.
mod_launch
(
mod
,
[
head
,
mean
,
scale
,
eps
,
*
outputs
],
outputs
=
tuple
(
range
(
-
len
(
outputs
),
0
)),
expect
=
expects
)
outputs
=
list
(
outputs
)
...
...
tests/common/test_run/distr_normal_diag_sample_run.py
浏览文件 @
8f9af74f
...
...
@@ -26,7 +26,7 @@ def sample_run(shape, dtype, kernel_name="", attrs=None):
mod
=
utils
.
op_build_test
(
sample_op
,
[
mean
.
shape
,
scale
.
shape
,
eps
.
shape
],
[
dtype
,
dtype
,
dtype
],
kernel_name
=
kernel_name
,
op_attrs
=
None
,
attrs
=
None
,
log_cce
=
True
,
dump_c
c
e
=
True
,
polyhedral
=
True
)
op_attrs
=
None
,
attrs
=
None
,
log_cce
=
True
,
dump_c
od
e
=
True
,
polyhedral
=
True
)
output
=
utils
.
mod_launch
(
mod
,
[
mean
,
scale
,
eps
,
output
],
expect
=
expect
)
return
(
mean
,
scale
,
eps
),
output
,
expect
,
compare_tensor
(
output
,
expect
,
rtol
=
5e-03
,
atol
=
0.1
,
equal_nan
=
True
)
...
...
tests/common/test_run/distr_normal_prob_regr_train_run.py
浏览文件 @
8f9af74f
...
...
@@ -25,7 +25,7 @@ def prob_regression_run(shape, dtype, kernel_name, attrs):
mod
=
utils
.
op_build_test
(
distr_normal_prob_regr_train
.
prob_regression_train
,
[
x
.
shape
,
w
.
shape
,
y
.
shape
],
[
dtype
,
dtype
,
dtype
],
kernel_name
=
kernel_name
,
op_attrs
=
[],
attrs
=
None
,
log_cce
=
True
,
dump_c
c
e
=
True
,
polyhedral
=
True
)
op_attrs
=
[],
attrs
=
None
,
log_cce
=
True
,
dump_c
od
e
=
True
,
polyhedral
=
True
)
output
=
utils
.
mod_launch
(
mod
,
[
x
,
w
,
y
,
output
],
expect
=
expect
)
return
(
x
,
w
,
y
),
output
,
expect
,
compare_tensor
(
output
,
expect
,
rtol
=
5e-03
,
equal_nan
=
True
)
...
...
tests/common/test_run/dropout_run.py
浏览文件 @
8f9af74f
...
...
@@ -83,7 +83,7 @@ def dropout_execute(shape_tensor, keep_prob, dtype, kernel_name, attrs=None):
output
=
utils
.
mod_launch
(
mod
,
(
input
,
mask
,
output
),
expect
=
expect
)
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
utils
.
create_c
c
e
(
kernel_name
,
"./"
,
source_code
)
utils
.
create_c
od
e
(
kernel_name
,
"./"
,
source_code
)
rtol
,
atol
=
get_rtol_atol
(
"dropout"
,
dtype
)
return
(
input
,
mask
),
output
,
expect
,
compare_tensor
(
output
,
expect
,
rtol
=
rtol
,
atol
=
atol
,
equal_nan
=
True
)
...
...
tests/common/test_run/kldiv_loss_grad_run.py
浏览文件 @
8f9af74f
...
...
@@ -28,7 +28,7 @@ def kldiv_loss_grad_run(shape, dtype, kernel_name="kldiv_loss_grad", attrs=None)
t
=
attrs
.
get
(
"tuning"
,
False
)
kernel_name
=
attrs
.
get
(
"kernel_name"
,
False
)
mod
=
utils
.
op_build_test
(
kldiv_loss_grad
.
kldiv_loss_grad
,
[
shape
,
shape
,
shape
],
[
dtype
,
dtype
,
dtype
],
kernel_name
=
kernel_name
,
attrs
=
attrs
,
dump_c
c
e
=
True
,
tuning
=
t
)
kernel_name
=
kernel_name
,
attrs
=
attrs
,
dump_c
od
e
=
True
,
tuning
=
t
)
if
t
:
cur_deriv
,
output
,
pre_deriv
,
prediction
,
target
=
gen_data
(
attrs
,
dtype
,
shape
)
return
mod
,
cur_deriv
,
(
pre_deriv
,
prediction
,
target
,
output
)
...
...
@@ -36,7 +36,7 @@ def kldiv_loss_grad_run(shape, dtype, kernel_name="kldiv_loss_grad", attrs=None)
return
mod
else
:
mod
=
utils
.
op_build_test
(
kldiv_loss_grad
.
kldiv_loss_grad
,
[
shape
,
shape
,
shape
],
[
dtype
,
dtype
,
dtype
],
kernel_name
=
kernel_name
,
attrs
=
attrs
,
dump_c
c
e
=
True
)
kernel_name
=
kernel_name
,
attrs
=
attrs
,
dump_c
od
e
=
True
)
cur_deriv
,
output
,
pre_deriv
,
prediction
,
target
=
gen_data
(
attrs
,
dtype
,
shape
)
output
=
utils
.
mod_launch
(
mod
,
(
pre_deriv
,
prediction
,
target
,
output
),
expect
=
cur_deriv
)
return
(
pre_deriv
,
prediction
,
target
),
output
,
cur_deriv
,
compare_tensor
(
output
,
cur_deriv
,
rtol
=
0.005
,
...
...
tests/common/test_run/l1_loss_grad_run.py
浏览文件 @
8f9af74f
...
...
@@ -28,7 +28,7 @@ def l1_loss_grad_run(shape, dtype, kernel_name="l1_loss_grad", attrs=None):
t
=
attrs
.
get
(
"tuning"
,
False
)
kernel_name
=
attrs
.
get
(
"kernel_name"
,
False
)
mod
=
utils
.
op_build_test
(
l1_loss_grad
.
l1_loss_grad
,
[
shape
,
shape
,
shape
],
[
dtype
,
dtype
,
dtype
],
kernel_name
=
kernel_name
,
attrs
=
attrs
,
dump_c
c
e
=
True
,
tuning
=
t
)
kernel_name
=
kernel_name
,
attrs
=
attrs
,
dump_c
od
e
=
True
,
tuning
=
t
)
if
t
:
dloss
,
expect
,
output
,
prediction
,
target
=
gen_data
(
dtype
,
shape
)
return
mod
,
expect
,
(
dloss
,
prediction
,
target
,
output
)
...
...
@@ -36,7 +36,7 @@ def l1_loss_grad_run(shape, dtype, kernel_name="l1_loss_grad", attrs=None):
return
mod
else
:
mod
=
utils
.
op_build_test
(
l1_loss_grad
.
l1_loss_grad
,
[
shape
,
shape
,
shape
],
[
dtype
,
dtype
,
dtype
],
kernel_name
=
kernel_name
,
attrs
=
attrs
,
dump_c
c
e
=
True
)
kernel_name
=
kernel_name
,
attrs
=
attrs
,
dump_c
od
e
=
True
)
dloss
,
expect
,
output
,
prediction
,
target
=
gen_data
(
dtype
,
shape
)
output
=
utils
.
mod_launch
(
mod
,
(
dloss
,
prediction
,
target
,
output
),
expect
=
expect
)
return
(
dloss
,
prediction
,
target
),
output
,
expect
,
compare_tensor
(
output
,
expect
,
rtol
=
0.001
,
atol
=
0.001
)
...
...
tests/common/test_run/matmul_run_mansch.py
浏览文件 @
8f9af74f
...
...
@@ -45,7 +45,7 @@ def matmul_run_mansch(MatrixShape, l1_tiling, l0_tiling, kernel_name, attrs=None
# launch the kernel
mod
=
matmul_mansch
.
gemm_dsl
(
MatrixShape
,
l1_tiling
,
l0_tiling
,
kernel_name
)
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
utils
.
create_c
c
e
(
kernel_name
,
"."
,
source_code
)
utils
.
create_c
od
e
(
kernel_name
,
"."
,
source_code
)
res
=
utils
.
mod_launch
(
mod
,
[
A
,
B
,
out_data
])
# transform numpy data to compute benchMark
...
...
tests/common/test_run/maxpool_ad_run.py
浏览文件 @
8f9af74f
...
...
@@ -44,14 +44,14 @@ def maxpool_ad_run(shape, kernel, stride, pad, dtype, optimized, polyhedral=Fals
else
:
mod
=
utils
.
op_build_test
(
maxpool_ad_no_custom_diff_poly_all_max
,
[
head
.
shape
,
shape
],
[
dtype
,
dtype
],
kernel_name
=
"maxpool_ad_no_custom_diff_poly_all_max"
,
op_attrs
=
[
kernel
,
stride
,
pad
],
attrs
=
attrs
,
log_cce
=
False
,
dump_c
c
e
=
True
,
polyhedral
=
polyhedral
)
op_attrs
=
[
kernel
,
stride
,
pad
],
attrs
=
attrs
,
log_cce
=
False
,
dump_c
od
e
=
True
,
polyhedral
=
polyhedral
)
output
=
utils
.
mod_launch
(
mod
,
[
head
,
input
,
output
],
expect
=
expect
)
else
:
if
optimized
:
if
first_max
:
mod
=
utils
.
op_build_test
(
maxpool_ad
,
[
head
.
shape
,
shape
,
forward
.
shape
,
mask
.
shape
],
[
dtype
,
dtype
,
dtype
,
dtype
],
kernel_name
=
"maxpool_ad_first_max"
,
op_attrs
=
[
kernel
,
stride
,
pad
],
attrs
=
attrs
,
log_cce
=
False
,
dump_c
c
e
=
True
,
polyhedral
=
polyhedral
)
op_attrs
=
[
kernel
,
stride
,
pad
],
attrs
=
attrs
,
log_cce
=
False
,
dump_c
od
e
=
True
,
polyhedral
=
polyhedral
)
output
=
utils
.
mod_launch
(
mod
,
[
head
,
input
,
forward
,
mask
,
output
],
expect
=
expect
)
else
:
mod
=
maxpool_ad_manual_schedule_all_max
(
shape
,
kernel
,
stride
,
pad
,
dtype
,
attrs
=
attrs
,
polyhedral
=
polyhedral
)
...
...
@@ -62,7 +62,7 @@ def maxpool_ad_run(shape, kernel, stride, pad, dtype, optimized, polyhedral=Fals
else
:
mod
=
utils
.
op_build_test
(
maxpool_ad_no_custom_diff_manual_schedule_all_max
,
[
head
.
shape
,
shape
],
[
dtype
,
dtype
],
kernel_name
=
"maxpool_ad_no_custom_diff_manual_schedule_all_max"
,
op_attrs
=
[
kernel
,
stride
,
pad
],
attrs
=
attrs
,
log_cce
=
False
,
dump_c
c
e
=
True
,
polyhedral
=
polyhedral
)
op_attrs
=
[
kernel
,
stride
,
pad
],
attrs
=
attrs
,
log_cce
=
False
,
dump_c
od
e
=
True
,
polyhedral
=
polyhedral
)
output
=
utils
.
mod_launch
(
mod
,
[
head
,
input
,
output
],
expect
=
expect
)
if
'tuning'
in
attrs
.
keys
():
...
...
tests/common/test_run/maxpool_grad_run.py
浏览文件 @
8f9af74f
...
...
@@ -100,7 +100,7 @@ def maxpool_grad_run(shape, kernel, stride, pad, dtype, attrs):
mod
=
utils
.
op_build_test
(
maxpool_grad
.
maxpool_grad
,
[
shape
,
y_shape
,
y_shape
],
[
dtype
,
dtype
,
dtype
],
op_attrs
=
[
kernel
,
stride
,
pad
],
kernel_name
=
kernel_name
,
attrs
=
attrs
,
dump_c
c
e
=
True
,
tuning
=
t
)
kernel_name
=
kernel_name
,
attrs
=
attrs
,
dump_c
od
e
=
True
,
tuning
=
t
)
if
t
:
dy
,
expect
,
output
,
x
,
y
=
\
gen_data
(
dtype
,
kernel
,
pad
,
shape
,
stride
,
y_shape
)
...
...
@@ -111,7 +111,7 @@ def maxpool_grad_run(shape, kernel, stride, pad, dtype, attrs):
mod
=
utils
.
op_build_test
(
maxpool_grad
.
maxpool_grad
,
[
shape
,
y_shape
,
y_shape
],
[
dtype
,
dtype
,
dtype
],
op_attrs
=
[
kernel
,
stride
,
pad
],
kernel_name
=
'maxpool_grad'
,
attrs
=
attrs
,
dump_c
c
e
=
True
)
kernel_name
=
'maxpool_grad'
,
attrs
=
attrs
,
dump_c
od
e
=
True
)
dy
,
expect
,
output
,
x
,
y
=
\
gen_data
(
dtype
,
kernel
,
pad
,
shape
,
stride
,
y_shape
)
output
=
utils
.
mod_launch
(
mod
,
(
x
,
y
,
dy
,
output
),
expect
=
expect
)
...
...
tests/common/test_run/maxpool_grad_with_argmax_run.py
浏览文件 @
8f9af74f
...
...
@@ -31,7 +31,7 @@ def maxpool_grad_with_argmax_run(shape, kernel, stride, pad, dtype, polyhedral=F
mod
=
utils
.
op_build_test
(
maxpool_grad_with_argmax
,
[
head
.
shape
,
mask
.
shape
],
[
dtype
,
dtype
],
kernel_name
=
"maxpool_grad_with_argmax"
,
op_attrs
=
[
shape
,
kernel
,
stride
,
pad
],
attrs
=
attrs
,
log_cce
=
False
,
dump_c
c
e
=
True
,
polyhedral
=
polyhedral
)
log_cce
=
False
,
dump_c
od
e
=
True
,
polyhedral
=
polyhedral
)
if
t
:
return
mod
,
expect
,
(
head
,
mask
,
output
)
else
:
...
...
@@ -43,7 +43,7 @@ def maxpool_grad_with_argmax_run(shape, kernel, stride, pad, dtype, polyhedral=F
mod
=
utils
.
op_build_test
(
maxpool_grad_with_argmax
,
[
head
.
shape
,
mask
.
shape
],
[
dtype
,
dtype
],
kernel_name
=
"maxpool_grad_with_argmax"
,
op_attrs
=
[
shape
,
kernel
,
stride
,
pad
],
attrs
=
attrs
,
log_cce
=
False
,
dump_c
c
e
=
True
,
polyhedral
=
polyhedral
)
log_cce
=
False
,
dump_c
od
e
=
True
,
polyhedral
=
polyhedral
)
output
=
utils
.
mod_launch
(
mod
,
[
head
,
mask
,
output
],
expect
=
expect
)
rtol
,
atol
=
get_rtol_atol
(
"maxpool_grad_with_argmax"
,
dtype
)
...
...
tests/common/test_run/nms_run.py
浏览文件 @
8f9af74f
...
...
@@ -94,6 +94,6 @@ def nms_run(shape_tensor, thres, dtype, kernel_name, attrs):
output
=
utils
.
mod_launch
(
mod
,
(
anchor
,
output
),
expect
=
expect
)
output
=
np
.
frombuffer
(
output
.
tobytes
(),
np
.
uint16
).
reshape
(
out_shape
)
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
utils
.
create_c
c
e
(
kernel_name
,
"./"
,
source_code
)
utils
.
create_c
od
e
(
kernel_name
,
"./"
,
source_code
)
expect
=
np
.
frombuffer
(
expect
.
tobytes
(),
np
.
uint16
).
reshape
(
out_shape
)
return
anchor
,
output
,
expect
,
np
.
all
(
output
==
expect
)
tests/common/test_run/roipool_run.py
浏览文件 @
8f9af74f
...
...
@@ -32,7 +32,7 @@ def roipool_run(shape, roibox, pooled_shape, dtype, attrs, cce_path="./"):
expect
=
roipool_expect
(
input1
,
shape
,
roibox
,
pooled_shape
)
# source_code = mod.imported_modules[0].get_source()
# utils.create_c
c
e(kernel_name, cce_path, source_code)
# utils.create_c
od
e(kernel_name, cce_path, source_code)
output
=
np
.
full
(
output_shape
,
np
.
nan
,
dtype
)
output
=
utils
.
mod_launch
(
mod
,
(
input1
,
output
),
expect
=
expect
)
...
...
tests/common/test_run/smooth_l1_loss_grad_run.py
浏览文件 @
8f9af74f
...
...
@@ -37,7 +37,7 @@ def smooth_l1_loss_grad_run(shape, dtype, attrs=None, kernel_name="smooth_l1_los
kernel_name
=
attrs
.
get
(
"kernel_name"
,
False
)
mod
=
utils
.
op_build_test
(
smooth_l1_loss_grad
.
smooth_l1_loss_grad
,
[
sample_shape
,
shape
,
shape
,
sample_shape
],
[
dtype
,
dtype
,
dtype
,
anchor_samples_dtype
],
op_attrs
=
[
sigma
,
anchor_sample_correct
],
attrs
=
attrs
,
kernel_name
=
kernel_name
,
dump_c
c
e
=
True
,
tuning
=
t
)
attrs
=
attrs
,
kernel_name
=
kernel_name
,
dump_c
od
e
=
True
,
tuning
=
t
)
if
t
:
anchor_samples
,
dloss
,
expect
,
output
,
prediction
,
prediction_
,
target
,
target_
=
gen_data
(
anchor_sample_correct
,
anchor_samples_dtype
,
dtype
,
sample_shape
,
shape
,
sigma
)
...
...
@@ -50,7 +50,7 @@ def smooth_l1_loss_grad_run(shape, dtype, attrs=None, kernel_name="smooth_l1_los
mod
=
utils
.
op_build_test
(
smooth_l1_loss_grad
.
smooth_l1_loss_grad
,
[
sample_shape
,
shape
,
shape
,
sample_shape
],
[
dtype
,
dtype
,
dtype
,
anchor_samples_dtype
],
op_attrs
=
[
sigma
,
anchor_sample_correct
],
attrs
=
attrs
,
kernel_name
=
kernel_name
,
dump_c
c
e
=
True
)
attrs
=
attrs
,
kernel_name
=
kernel_name
,
dump_c
od
e
=
True
)
output
=
utils
.
mod_launch
(
mod
,
(
dloss
,
prediction
,
target
,
anchor_samples
,
output
),
expect
=
expect
)
return
(
dloss
,
prediction
,
target
,
anchor_samples
),
output
,
expect
,
compare_tensor
(
output
,
expect
,
atol
=
5e-3
,
rtol
=
5e-3
)
...
...
tests/common/test_run/square_difference_run.py
浏览文件 @
8f9af74f
...
...
@@ -35,7 +35,7 @@ def square_difference_run(shape1, shape2, dtype, kernel_name, attrs, cce_path=".
input_types
=
[
dtype
,
dtype
],
kernel_name
=
kernel_name
,
attrs
=
attrs
)
expect
,
input1
,
input2
,
output
=
gen_data
(
dtype
,
shape1
,
shape2
)
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
utils
.
create_c
c
e
(
kernel_name
,
cce_path
,
source_code
)
utils
.
create_c
od
e
(
kernel_name
,
cce_path
,
source_code
)
output
=
utils
.
mod_launch
(
mod
,
(
input1
,
input2
,
output
),
expect
=
expect
)
return
(
input1
,
input2
),
output
,
expect
,
compare_tensor
(
output
,
expect
,
rtol
=
5e-03
,
equal_nan
=
True
)
...
...
tests/common/test_run/strided_slice_grad_run.py
浏览文件 @
8f9af74f
...
...
@@ -81,7 +81,7 @@ def gen_data(begin, begin_mask, dtype, ellipsis_mask, end, end_mask, grad_shape,
# source_code = mod.imported_modules[0].get_source()
# print(source_code)
# kernel_name = "cce_strided_slice_grad_fp16"
# utils.create_c
c
e(kernel_name, './', source_code)
# utils.create_c
od
e(kernel_name, './', source_code)
out_shape
=
input_shape
output
=
np
.
full
(
out_shape
,
0
,
dtype
)
return
expect
,
grad
,
output
...
...
tests/common/test_run/truncatemod_run.py
浏览文件 @
8f9af74f
...
...
@@ -26,7 +26,7 @@ def truncatemod_run(shape1, shape2, dtype, attrs):
t
=
attrs
.
get
(
"tuning"
,
False
)
kernel_name
=
attrs
.
get
(
"kernel_name"
,
False
)
mod
=
utils
.
op_build_test
(
truncatemod
.
truncatemod
,
[
shape1
,
shape2
],
[
dtype
,
dtype
],
kernel_name
=
kernel_name
,
attrs
=
attrs
,
dump_c
c
e
=
True
,
tuning
=
t
)
attrs
=
attrs
,
dump_c
od
e
=
True
,
tuning
=
t
)
if
t
:
expect
,
input1
,
input2
,
output
=
gen_data
(
dtype
,
shape1
,
shape2
)
return
mod
,
expect
,
(
input1
,
input2
,
output
)
...
...
@@ -35,7 +35,7 @@ def truncatemod_run(shape1, shape2, dtype, attrs):
else
:
expect
,
input1
,
input2
,
output
=
gen_data
(
dtype
,
shape1
,
shape2
)
mod
=
utils
.
op_build_test
(
truncatemod
.
truncatemod
,
[
shape1
,
shape2
],
[
dtype
,
dtype
],
kernel_name
=
"truncatemod"
,
attrs
=
attrs
,
dump_c
c
e
=
True
)
attrs
=
attrs
,
dump_c
od
e
=
True
)
output
=
utils
.
mod_launch
(
mod
,
(
input1
,
input2
,
output
),
expect
=
expect
)
rtol
,
atol
=
get_rtol_atol
(
"truncatemod"
,
dtype
)
res
=
compare_tensor
(
output
,
expect
,
rtol
=
rtol
,
atol
=
atol
,
equal_nan
=
True
)
...
...
tests/common/test_run/vector_matmul_run.py
浏览文件 @
8f9af74f
...
...
@@ -145,7 +145,7 @@ def vector_matmul_run(case_index, m, n, k, trans_a, trans_b, read_data, dump_dat
# k = (k+15)//16*16
mod
,
out_shape
=
vector_matmul
.
vector_matmul
(
m
,
n
,
k
,
trans_a
,
trans_b
,
dtype
,
kernel_name
,
attrs
)
utils
.
create_c
c
e
(
kernel_name
,
"./"
,
mod
.
imported_modules
[
0
].
get_source
())
utils
.
create_c
od
e
(
kernel_name
,
"./"
,
mod
.
imported_modules
[
0
].
get_source
())
# Generate data
m_a
,
m_b
,
bench_mark
=
vector_matmul_data
(
case_index
,
m
,
n
,
k
,
trans_a
,
trans_b
,
read_data
,
dump_data
,
dtype
)
...
...
tests/common/test_run/winograd_ad_run.py
浏览文件 @
8f9af74f
...
...
@@ -35,7 +35,7 @@ def winograd_ad_run(filter_shape, tile, dtype, attrs):
t
=
attrs
.
get
(
"tuning"
,
False
)
kernel_name
=
attrs
.
get
(
"kernel_name"
,
False
)
mod
=
utils
.
op_build_test
(
winograd_ad
,
[
head_np
.
shape
,
filter_shape
],
[
dtype
,
dtype
],
kernel_name
=
kernel_name
,
attrs
=
attrs
,
log_cce
=
True
,
dump_c
c
e
=
True
,
tuning
=
t
)
attrs
=
attrs
,
log_cce
=
True
,
dump_c
od
e
=
True
,
tuning
=
t
)
if
t
:
expect
,
input_np
,
output
=
gen_data
(
filter_shape
,
RANGEFILL
,
dtype
)
return
mod
,
expect
,
(
head_np
,
input_np
,
output
)
...
...
@@ -45,7 +45,7 @@ def winograd_ad_run(filter_shape, tile, dtype, attrs):
# scenario 1:
expect
,
input_np
,
output
=
gen_data
(
filter_shape
,
RANGEFILL
,
dtype
)
mod
=
utils
.
op_build_test
(
winograd_ad
,
[
head_np
.
shape
,
filter_shape
],
[
dtype
,
dtype
],
kernel_name
=
"winograd_ad"
,
attrs
=
attrs
,
log_cce
=
True
,
dump_c
c
e
=
True
)
attrs
=
attrs
,
log_cce
=
True
,
dump_c
od
e
=
True
)
output
=
utils
.
mod_launch
(
mod
,
[
head_np
,
input_np
,
output
],
expect
=
expect
)
if
not
compare_tensor
(
output
,
expect
,
atol
=
0.1
):
return
[
head_np
,
input_np
],
output
,
expect
,
compare_tensor
(
output
,
expect
,
rtol
=
5e-03
,
atol
=
5e-03
,
...
...
tests/operators/cube/quant_conv.py
浏览文件 @
8f9af74f
...
...
@@ -403,7 +403,7 @@ def test_CCE_Conv(fmap_shape, filter_shape, pad_, stride_,
mod
=
akg
.
build
(
s
,
[
A
,
B
,
ScaleQ
,
OffsetQ
,
out
],
"cce"
,
name
=
kernel_name
,
attrs
=
attrs
,
attrs
=
{
"dim"
:
info
},
polyhedral
=
True
)
source_code
=
mod
.
imported_modules
[
0
].
get_source
()
# print(source_code)
# utils.create_c
c
e(kernel_name, cce_path, source_code)
# utils.create_c
od
e(kernel_name, cce_path, source_code)
if
run_cce
:
run_conv
(
mod
,
fmap_shape
,
filter_shape
,
pad_
[
0
],
stride_
[
0
],
use_bias
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录