Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
正统之独孤求败
mindspore
提交
dac39a7c
M
mindspore
项目概览
正统之独孤求败
/
mindspore
与 Fork 源项目一致
Fork自
MindSpore / mindspore
通知
1
Star
0
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看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
dac39a7c
编写于
9月 02, 2020
作者:
C
chenjianping
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix slice parallel run bug
上级
089774c6
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
6 addition
and
10 deletion
+6
-10
mindspore/lite/nnacl/fp32/slice.c
mindspore/lite/nnacl/fp32/slice.c
+1
-2
mindspore/lite/nnacl/fp32/slice.h
mindspore/lite/nnacl/fp32/slice.h
+1
-1
mindspore/lite/nnacl/int8/slice_int8.c
mindspore/lite/nnacl/int8/slice_int8.c
+1
-2
mindspore/lite/nnacl/int8/slice_int8.h
mindspore/lite/nnacl/int8/slice_int8.h
+1
-1
mindspore/lite/nnacl/slice_parameter.h
mindspore/lite/nnacl/slice_parameter.h
+0
-1
mindspore/lite/src/runtime/kernel/arm/fp32/slice.cc
mindspore/lite/src/runtime/kernel/arm/fp32/slice.cc
+1
-1
mindspore/lite/src/runtime/kernel/arm/int8/slice_int8.cc
mindspore/lite/src/runtime/kernel/arm/int8/slice_int8.cc
+1
-2
未找到文件。
mindspore/lite/nnacl/fp32/slice.c
浏览文件 @
dac39a7c
...
...
@@ -47,7 +47,7 @@ void PadSliceParameterTo4D(SliceParameter *param) {
param
->
param_length_
=
DIMENSION_4D
;
}
void
DoSlice
(
const
float
*
input
,
float
*
output
,
SliceParameter
*
param
)
{
void
DoSlice
(
const
float
*
input
,
float
*
output
,
SliceParameter
*
param
,
int
thread_id
)
{
int32_t
out_dim1
=
param
->
size_
[
1
];
int32_t
out_dim2
=
param
->
size_
[
2
];
int32_t
out_dim3
=
param
->
size_
[
3
];
...
...
@@ -55,7 +55,6 @@ void DoSlice(const float *input, float *output, SliceParameter *param) {
size_t
out_stride1
=
out_stride2
*
out_dim2
;
size_t
out_stride0
=
out_stride1
*
out_dim1
;
size_t
count_per_thread
=
UP_DIV
(
out_dim1
,
param
->
op_parameter_
.
thread_num_
);
int
thread_id
=
param
->
thread_id_
;
size_t
thread_stride
=
thread_id
*
count_per_thread
;
size_t
copy_size
=
param
->
size_
[
3
]
*
sizeof
(
float
);
size_t
in_stride2
=
param
->
shape_
[
3
];
...
...
mindspore/lite/nnacl/fp32/slice.h
浏览文件 @
dac39a7c
...
...
@@ -23,7 +23,7 @@
extern
"C"
{
#endif
void
PadSliceParameterTo4D
(
SliceParameter
*
param
);
void
DoSlice
(
const
float
*
input
,
float
*
output
,
SliceParameter
*
param
);
void
DoSlice
(
const
float
*
input
,
float
*
output
,
SliceParameter
*
param
,
int
thread_id
);
void
DoSliceNoParallel
(
const
float
*
input
,
float
*
output
,
SliceParameter
*
param
);
#ifdef __cplusplus
}
...
...
mindspore/lite/nnacl/int8/slice_int8.c
浏览文件 @
dac39a7c
...
...
@@ -66,7 +66,7 @@ int SliceInt8NoParallel(const int8_t *input, int8_t *output, SliceParameter *par
return
0
;
}
int
SliceInt8
(
const
int8_t
*
input
,
int8_t
*
output
,
SliceParameter
*
param
)
{
int
SliceInt8
(
const
int8_t
*
input
,
int8_t
*
output
,
SliceParameter
*
param
,
int
thread_id
)
{
double
input_scale
=
param
->
quant_arg_
.
in_args_
.
scale_
;
int
input_zp
=
param
->
quant_arg_
.
in_args_
.
zp_
;
double
output_scale
=
param
->
quant_arg_
.
out_args_
.
scale_
;
...
...
@@ -81,7 +81,6 @@ int SliceInt8(const int8_t *input, int8_t *output, SliceParameter *param) {
int
out_stride1
=
out_stride2
*
out_dim2
;
int
out_stride0
=
out_stride1
*
out_dim1
;
int
count_per_thread
=
UP_DIV
(
out_dim1
,
param
->
op_parameter_
.
thread_num_
);
int
thread_id
=
param
->
thread_id_
;
int
thread_stride
=
thread_id
*
count_per_thread
;
int
unit_size
=
param
->
size_
[
3
]
*
sizeof
(
int8_t
);
int
in_stride2
=
param
->
shape_
[
3
];
...
...
mindspore/lite/nnacl/int8/slice_int8.h
浏览文件 @
dac39a7c
...
...
@@ -23,7 +23,7 @@
extern
"C"
{
#endif
int
SliceInt8NoParallel
(
const
int8_t
*
input
,
int8_t
*
output
,
SliceParameter
*
param
);
int
SliceInt8
(
const
int8_t
*
input
,
int8_t
*
output
,
SliceParameter
*
param
);
int
SliceInt8
(
const
int8_t
*
input
,
int8_t
*
output
,
SliceParameter
*
param
,
int
thread_id
);
#ifdef __cplusplus
}
#endif
...
...
mindspore/lite/nnacl/slice_parameter.h
浏览文件 @
dac39a7c
...
...
@@ -30,7 +30,6 @@ typedef struct SliceParameter {
int32_t
size_
[
SLICE_SHAPE_MAX_SIZE
];
int32_t
shape_
[
SLICE_SHAPE_MAX_SIZE
];
int32_t
param_length_
;
int32_t
thread_id_
;
}
SliceParameter
;
#endif // MINDSPORE_LITE_NNACL_SLICE_PARAMETER_H_
mindspore/lite/src/runtime/kernel/arm/fp32/slice.cc
浏览文件 @
dac39a7c
...
...
@@ -78,7 +78,7 @@ int SliceCPUKernel::SliceParallelRun(int thread_id) {
const
float
*
input_data
=
reinterpret_cast
<
const
float
*>
(
in_tensors_
[
0
]
->
Data
());
float
*
output_data
=
reinterpret_cast
<
float
*>
(
out_tensors_
[
0
]
->
Data
());
SliceParameter
*
param
=
reinterpret_cast
<
SliceParameter
*>
(
op_parameter_
);
DoSlice
(
input_data
,
output_data
,
param
);
DoSlice
(
input_data
,
output_data
,
param
,
thread_id
);
return
RET_OK
;
}
...
...
mindspore/lite/src/runtime/kernel/arm/int8/slice_int8.cc
浏览文件 @
dac39a7c
...
...
@@ -60,8 +60,7 @@ int SliceInt8CPUKernel::DoSlice(int task_id) {
const
int8_t
*
input_data
=
reinterpret_cast
<
const
int8_t
*>
(
in_tensors_
[
0
]
->
Data
());
int8_t
*
output_data
=
reinterpret_cast
<
int8_t
*>
(
out_tensors_
[
0
]
->
Data
());
param_
->
thread_id_
=
task_id
;
auto
ret
=
SliceInt8
(
input_data
,
output_data
,
param_
);
auto
ret
=
SliceInt8
(
input_data
,
output_data
,
param_
,
task_id
);
if
(
ret
!=
RET_OK
)
{
MS_LOG
(
ERROR
)
<<
"SliceInt8 error ,task_id["
<<
task_id
<<
"] error_code["
<<
ret
<<
"]"
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录