Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
magicwindyyd
mindspore
提交
3c317c71
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看板
提交
3c317c71
编写于
4月 17, 2020
作者:
M
mindspore-ci-bot
提交者:
Gitee
4月 17, 2020
浏览文件
操作
浏览文件
下载
差异文件
!395 Fix oplib coddex
Merge pull request !395 from zjun/fix_oplib_codexx
上级
41c969ab
6cc5e871
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
21 addition
and
25 deletion
+21
-25
mindspore/ccsrc/kernel/aicpu/aicpu_kernel_build.cc
mindspore/ccsrc/kernel/aicpu/aicpu_kernel_build.cc
+2
-11
mindspore/ccsrc/kernel/oplib/oplib.cc
mindspore/ccsrc/kernel/oplib/oplib.cc
+15
-11
mindspore/ccsrc/kernel/oplib/oplib.h
mindspore/ccsrc/kernel/oplib/oplib.h
+1
-0
mindspore/ops/op_info_register.py
mindspore/ops/op_info_register.py
+3
-3
未找到文件。
mindspore/ccsrc/kernel/aicpu/aicpu_kernel_build.cc
浏览文件 @
3c317c71
...
...
@@ -39,8 +39,6 @@ namespace mindspore {
namespace
kernel
{
using
FNodeAttrHandle
=
std
::
function
<
void
(
const
std
::
shared_ptr
<
AnfNode
>
&
anf_node
,
mindspore
::
NodeDef
*
proto
)
>
;
const
std
::
vector
<
std
::
string
>
local_framework_op_vec
=
{
kInitData
,
kGetNext
,
kDropoutGenMask
,
kPrint
};
bool
SetIOIputSize
(
const
std
::
shared_ptr
<
AnfNode
>
&
anf_node
,
const
size_t
&
input_num
,
std
::
vector
<
size_t
>
*
input_size_list
)
{
MS_EXCEPTION_IF_NULL
(
anf_node
);
...
...
@@ -298,19 +296,12 @@ KernelModPtr AicpuOpBuild(const std::shared_ptr<AnfNode> &anf_node) {
MS_EXCEPTION_IF_NULL
(
kernel_mod_ptr
);
kernel_mod_ptr
->
SetAnfNode
(
anf_node
);
kernel_mod_ptr
->
SetNodeName
(
op_name
);
auto
iter
=
std
::
find
(
local_framework_op_vec
.
begin
(),
local_framework_op_vec
.
end
(),
op_name
);
if
(
iter
!=
local_framework_op_vec
.
end
())
{
if
(
!
CreateNodeDefBytes
(
anf_node
,
kernel_mod_ptr
))
{
MS_LOG
(
EXCEPTION
)
<<
"Create nodeDefBytes faild!"
;
}
}
else
{
MS_LOG
(
EXCEPTION
)
<<
"Aicpu don't support node ["
<<
op_name
<<
"]"
;
if
(
!
CreateNodeDefBytes
(
anf_node
,
kernel_mod_ptr
))
{
MS_LOG
(
EXCEPTION
)
<<
"Create nodeDefBytes faild!"
;
}
if
(
!
SetIOSize
(
anf_node
,
kernel_mod_ptr
))
{
MS_LOG
(
EXCEPTION
)
<<
"Set input output size list failed."
;
}
return
kernel_mod_ptr
;
}
}
// namespace kernel
...
...
mindspore/ccsrc/kernel/oplib/oplib.cc
浏览文件 @
3c317c71
...
...
@@ -94,6 +94,20 @@ bool OpLib::RegOp(const std::string& json_string, const std::string& impl_path)
return
ret
;
}
void
OpLib
::
DecodeTBESpecificInfo
(
const
nlohmann
::
json
&
obj
,
const
std
::
shared_ptr
<
OpInfo
>&
op_info
)
{
op_info
->
set_async_flag
(
obj
.
at
(
kAsyncFlag
));
op_info
->
set_binfile_name
(
obj
.
at
(
kBinfileName
));
op_info
->
set_compute_cost
(
obj
.
at
(
kComputeCost
));
op_info
->
set_kernel_name
(
obj
.
at
(
kKernelName
));
op_info
->
set_partial_flag
(
obj
.
at
(
kPartialFlag
));
if
(
obj
.
find
(
kOpPattern
)
!=
obj
.
end
())
{
op_info
->
set_op_pattern
(
obj
.
at
(
kOpPattern
));
}
if
(
obj
.
find
(
kDynamicFormat
)
!=
obj
.
end
())
{
op_info
->
set_dynamic_format
(
obj
.
at
(
kDynamicFormat
));
}
}
bool
OpLib
::
DecodeOpInfo
(
const
nlohmann
::
json
&
obj
,
const
mindspore
::
kernel
::
OpImplyType
imply_type
,
const
std
::
string
&
impl_path
)
{
std
::
shared_ptr
<
OpInfo
>
op_info
=
std
::
make_shared
<
OpInfo
>
();
...
...
@@ -103,17 +117,7 @@ bool OpLib::DecodeOpInfo(const nlohmann::json& obj, const mindspore::kernel::OpI
op_info
->
set_imply_type
(
imply_type
);
op_info
->
set_fusion_type
(
obj
.
at
(
kFusionType
));
if
(
imply_type
==
kTBE
)
{
op_info
->
set_async_flag
(
obj
.
at
(
kAsyncFlag
));
op_info
->
set_binfile_name
(
obj
.
at
(
kBinfileName
));
op_info
->
set_compute_cost
(
obj
.
at
(
kComputeCost
));
op_info
->
set_kernel_name
(
obj
.
at
(
kKernelName
));
op_info
->
set_partial_flag
(
obj
.
at
(
kPartialFlag
));
if
(
obj
.
find
(
kOpPattern
)
!=
obj
.
end
())
{
op_info
->
set_op_pattern
(
obj
.
at
(
kOpPattern
));
}
if
(
obj
.
find
(
kDynamicFormat
)
!=
obj
.
end
())
{
op_info
->
set_dynamic_format
(
obj
.
at
(
kDynamicFormat
));
}
DecodeTBESpecificInfo
(
obj
,
op_info
);
}
auto
attrs
=
obj
.
at
(
kAttr
);
for
(
const
auto
&
attr
:
attrs
)
{
...
...
mindspore/ccsrc/kernel/oplib/oplib.h
浏览文件 @
3c317c71
...
...
@@ -40,6 +40,7 @@ class OpLib {
const
std
::
shared_ptr
<
OpInfo
>&
op_info
);
static
bool
DecodeDtypeFormat
(
const
nlohmann
::
json
&
dtype_format
,
const
std
::
shared_ptr
<
OpIOInfo
>&
op_io
,
size_t
index
);
static
void
DecodeTBESpecificInfo
(
const
nlohmann
::
json
&
obj
,
const
std
::
shared_ptr
<
OpInfo
>&
op_info
);
static
bool
DecodeInputOutput
(
const
nlohmann
::
json
&
obj
,
const
OpImplyType
imply_type
,
const
OpIOType
io_type
,
const
std
::
shared_ptr
<
OpInfo
>&
op_info
,
const
nlohmann
::
json
&
dtype_format
);
static
bool
GetRefInfo
(
const
std
::
shared_ptr
<
OpInfo
>&
op_info
);
...
...
mindspore/ops/op_info_register.py
浏览文件 @
3c317c71
...
...
@@ -57,7 +57,7 @@ def op_info_register(op_info):
return
register_decorator
class
RegOp
()
:
class
RegOp
:
"""
Base class for op info register.
...
...
@@ -483,9 +483,9 @@ class TBERegOp(RegOp):
return
self
class
DataType
()
:
class
DataType
:
"""
Various combinations of dtype and format
self
.
Various combinations of dtype and format.
The current list below maybe not completed. If necessary, please add it.
"""
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录