Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
magicwindyyd
mindspore
提交
85b1dae5
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看板
提交
85b1dae5
编写于
8月 28, 2020
作者:
M
mindspore-ci-bot
提交者:
Gitee
8月 28, 2020
浏览文件
操作
浏览文件
下载
差异文件
!5441 [MS][LITE][Develop]Refactor arithmetic fp16 kernel
Merge pull request !5441 from sunsuodong/fix_arithmetic
上级
ad638d69
f9907045
变更
2
展开全部
隐藏空白更改
内联
并排
Showing
2 changed file
with
143 addition
and
343 deletion
+143
-343
mindspore/lite/src/runtime/kernel/arm/fp16/arithmetic_fp16.cc
...spore/lite/src/runtime/kernel/arm/fp16/arithmetic_fp16.cc
+124
-331
mindspore/lite/src/runtime/kernel/arm/fp16/arithmetic_fp16.h
mindspore/lite/src/runtime/kernel/arm/fp16/arithmetic_fp16.h
+19
-12
未找到文件。
mindspore/lite/src/runtime/kernel/arm/fp16/arithmetic_fp16.cc
浏览文件 @
85b1dae5
此差异已折叠。
点击以展开。
mindspore/lite/src/runtime/kernel/arm/fp16/arithmetic_fp16.h
浏览文件 @
85b1dae5
...
...
@@ -23,39 +23,46 @@
#include "schema/model_generated.h"
namespace
mindspore
::
kernel
{
class
ArithmeticFP16CPUKernel
:
public
LiteKernel
{
typedef
int
(
*
ArithmeticRun
)(
float16_t
*
input0
,
float16_t
*
input1
,
float16_t
*
output
,
int
element_size
);
typedef
int
(
*
ArithmeticOptRun
)(
float16_t
*
input0
,
float16_t
*
input1
,
float16_t
*
output
,
int
element_size
,
ArithmeticParameter
*
param
);
typedef
int
(
*
ArithmeticFuncFp16
)(
float16_t
*
input0
,
float16_t
*
input1
,
float16_t
*
output
,
int
element_size
);
typedef
int
(
*
ArithmeticOptFuncFp16
)(
float16_t
*
input0
,
float16_t
*
input1
,
float16_t
*
output
,
int
element_size
,
ArithmeticParameter
*
param
);
typedef
struct
{
int
primitive_type_
;
int
activation_type_
;
ArithmeticFuncFp16
func_
;
ArithmeticOptFuncFp16
opt_func_
;
}
ARITHMETIC_FUNC_INFO_FP16
;
class
ArithmeticFP16CPUKernel
:
public
LiteKernel
{
public:
ArithmeticFP16CPUKernel
(
OpParameter
*
parameter
,
const
std
::
vector
<
lite
::
tensor
::
Tensor
*>
&
inputs
,
const
std
::
vector
<
lite
::
tensor
::
Tensor
*>
&
outputs
,
const
lite
::
Context
*
ctx
,
const
mindspore
::
lite
::
PrimitiveC
*
primitive
)
:
LiteKernel
(
parameter
,
inputs
,
outputs
,
ctx
,
primitive
)
{
arithmeticParameter
_
=
reinterpret_cast
<
ArithmeticParameter
*>
(
parameter
);
param
_
=
reinterpret_cast
<
ArithmeticParameter
*>
(
parameter
);
}
~
ArithmeticFP16CPUKernel
()
override
;
~
ArithmeticFP16CPUKernel
()
=
default
;
int
Init
()
override
;
int
ReSize
()
override
;
int
Run
()
override
;
int
DoArithmetic
(
int
task_id
);
int
BroadcastRun
(
float16_t
*
input0
,
float16_t
*
input1
,
float16_t
*
output
,
int
dim
,
int
out_count
,
int
out_thread_stride
);
int
out_thread_stride
);
private:
void
FreeTmpBuffer
();
int
outside_
;
int
break_pos_
;
int
out_thread_stride_
;
int
out_count_
;
bool
is_input0_fp32_
=
false
;
bool
is_input1_fp32_
=
false
;
bool
is_output_fp32_
=
false
;
float16_t
*
input0_fp16_
=
nullptr
;
float16_t
*
input1_fp16_
=
nullptr
;
float16_t
*
output_fp16_
=
nullptr
;
ArithmeticParameter
*
arithmeticParameter
_
=
nullptr
;
Arithmetic
Run
arithmetic_run
_
=
nullptr
;
ArithmeticOpt
Run
arithmetic_opt_run
_
=
nullptr
;
ArithmeticParameter
*
param
_
=
nullptr
;
Arithmetic
FuncFp16
arithmetic_func
_
=
nullptr
;
ArithmeticOpt
FuncFp16
arithmetic_opt_func
_
=
nullptr
;
};
}
// namespace mindspore::kernel
#endif // MINDSPORE_LITE_SRC_RUNTIME_KERNEL_ARM_FP16_ARITHMETIC_FP16_H_
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录