Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
678a3e8f
P
Paddle
项目概览
机器未来
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
678a3e8f
编写于
2月 23, 2021
作者:
L
Leo Chen
提交者:
GitHub
2月 23, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
support adding correct npu op in pybind.h (#31143)
* support adding correct npu op in pybind.h * refine code
上级
85cbd556
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
20 addition
and
2 deletion
+20
-2
cmake/operators.cmake
cmake/operators.cmake
+20
-2
未找到文件。
cmake/operators.cmake
浏览文件 @
678a3e8f
...
...
@@ -213,6 +213,7 @@ function(op_library TARGET)
# The registration of USE_OP, please refer to paddle/fluid/framework/op_registry.h.
# Note that it's enough to just adding one operator to pybind in a *_op.cc file.
# And for detail pybind information, please see generated paddle/pybind/pybind.h.
set
(
ORIGINAL_TARGET
${
TARGET
}
)
file
(
READ
${
TARGET
}
.cc TARGET_CONTENT
)
string
(
REGEX MATCH
"REGISTER_OPERATOR
\\
(.*REGISTER_OPERATOR
\\
("
multi_register
"
${
TARGET_CONTENT
}
"
)
# [ \t\r\n]* is used for blank characters
...
...
@@ -286,9 +287,26 @@ function(op_library TARGET)
if
(
WITH_XPU AND
${
xpu_cc_srcs_len
}
GREATER 0
)
file
(
APPEND
${
pybind_file
}
"USE_OP_DEVICE_KERNEL(
${
TARGET
}
, XPU);
\n
"
)
endif
()
if
(
WITH_XPU AND
${
npu_cc_srcs_len
}
GREATER 0
)
file
(
APPEND
${
pybind_file
}
"USE_OP_DEVICE_KERNEL(
${
TARGET
}
, NPU);
\n
"
)
if
(
WITH_ASCEND_CL AND
${
npu_cc_srcs_len
}
GREATER 0
)
file
(
READ
${
ORIGINAL_TARGET
}
_npu.cc TARGET_NPU_CONTENT
)
# It is different from the logic above, becareful
string
(
REGEX MATCH
"REGISTER_OP_NPU_KERNEL
\\
(.*"
multi_npu_register
"
${
TARGET_NPU_CONTENT
}
"
)
# [ \t\r\n]* is used for blank characters
string
(
REGEX MATCH
"REGISTER_OP_NPU_KERNEL
\\
([
\t\r\n
]*[a-z0-9_]*,"
one_npu_register
"
${
multi_npu_register
}
"
)
if
(
one_npu_register STREQUAL
""
)
string
(
REPLACE
"_op"
""
NPU_TARGET
"
${
TARGET
}
"
)
else
()
string
(
REPLACE
"REGISTER_OP_NPU_KERNEL("
""
NPU_TARGET
"
${
one_npu_register
}
"
)
string
(
REPLACE
","
""
NPU_TARGET
"
${
NPU_TARGET
}
"
)
# [ \t\r\n]+ is used for blank characters.
# Here we use '+' instead of '*' since it is a REPLACE operation.
string
(
REGEX REPLACE
"[
\t\r\n
]+"
""
NPU_TARGET
"
${
NPU_TARGET
}
"
)
endif
()
file
(
APPEND
${
pybind_file
}
"USE_OP_DEVICE_KERNEL(
${
NPU_TARGET
}
, NPU);
\n
"
)
endif
()
# pybind USE_OP_DEVICE_KERNEL for MKLDNN
if
(
WITH_MKLDNN AND
${
mkldnn_cc_srcs_len
}
GREATER 0
)
# Append first implemented MKLDNN activation operator
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录