Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MegEngine 天元
MegEngine
提交
c50858ee
MegEngine
项目概览
MegEngine 天元
/
MegEngine
大约 1 年 前同步成功
通知
399
Star
4705
Fork
582
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
MegEngine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c50858ee
编写于
10月 14, 2021
作者:
M
Megvii Engine Team
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(dnn): specialize pow to make it consistent
GitOrigin-RevId: cff3bbbadd28297e6704e19d27b1c1882bd88a66
上级
d898838e
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
26 addition
and
0 deletion
+26
-0
dnn/src/common/elemwise/kern_defs.cuh
dnn/src/common/elemwise/kern_defs.cuh
+26
-0
未找到文件。
dnn/src/common/elemwise/kern_defs.cuh
浏览文件 @
c50858ee
...
@@ -26,6 +26,8 @@
...
@@ -26,6 +26,8 @@
#include <algorithm>
#include <algorithm>
using
std
::
max
;
using
std
::
max
;
using
std
::
min
;
using
std
::
min
;
#define rsqrtf(x) (1.f / sqrt(x))
#endif
#endif
#ifndef MEGDNN_ELEMWISE_MODE_ENABLE
#ifndef MEGDNN_ELEMWISE_MODE_ENABLE
...
@@ -93,6 +95,30 @@ __device__ __host__ inline float gelu_grad(float x, float dy) {
...
@@ -93,6 +95,30 @@ __device__ __host__ inline float gelu_grad(float x, float dy) {
return
dy
*
(
normcdf_v
+
x
*
phi
);
return
dy
*
(
normcdf_v
+
x
*
phi
);
}
}
__device__
__host__
inline
bool
feq
(
float
a
,
float
b
)
{
return
fabsf
(
a
-
b
)
<
1e-6
;
}
__device__
__host__
inline
float
dispatch_powf
(
float
x
,
float
y
)
{
#define CALL_IF(_v, _stmt) \
do { \
if (feq(y, _v)) { \
return _stmt; \
} \
} while (0)
CALL_IF
(
2.
f
,
x
*
x
);
CALL_IF
(
0.5
f
,
sqrtf
(
x
));
CALL_IF
(
-
0.5
f
,
rsqrtf
(
x
));
CALL_IF
(
0.
f
,
1.
f
);
CALL_IF
(
1.
f
,
x
);
CALL_IF
(
3.
f
,
x
*
x
*
x
);
CALL_IF
(
-
1.
f
,
1.
f
/
x
);
CALL_IF
(
-
2.
f
,
1.
f
/
(
x
*
x
));
#undef CALL_IF
return
powf
(
x
,
y
);
}
#include "src/common/elemwise/each_mode.inl"
#include "src/common/elemwise/each_mode.inl"
template
<
megcorePlatform_t
plat
,
uint32_t
mode
,
typename
dtype
>
template
<
megcorePlatform_t
plat
,
uint32_t
mode
,
typename
dtype
>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录