Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
01c26ab2
P
Paddle
项目概览
BaiXuePrincess
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
01c26ab2
编写于
1月 13, 2023
作者:
Y
Yuanle Liu
提交者:
GitHub
1月 13, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix fc kernel diff (#49781)
* fix fc kernel diff * disable fc_elementwise_layernorm_fuse_pass
上级
8a934047
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
11 addition
and
16 deletion
+11
-16
paddle/fluid/inference/api/paddle_pass_builder.cc
paddle/fluid/inference/api/paddle_pass_builder.cc
+2
-1
paddle/fluid/operators/fused/fused_fc_elementwise_layernorm_op.cu
...luid/operators/fused/fused_fc_elementwise_layernorm_op.cu
+6
-9
paddle/phi/kernels/funcs/fc_functor.cu
paddle/phi/kernels/funcs/fc_functor.cu
+3
-6
未找到文件。
paddle/fluid/inference/api/paddle_pass_builder.cc
浏览文件 @
01c26ab2
...
...
@@ -171,8 +171,9 @@ const std::vector<std::string> kGpuLowerPrecisionPasses{
"multi_devices_fused_multi_transformer_decoder_fuse_qkv_pass"
,
"gpu_cpu_map_matmul_v2_to_mul_pass"
,
"gpu_cpu_map_matmul_v2_to_matmul_pass"
,
"gpu_cpu_map_matmul_to_mul_pass"
,
"fc_fuse_pass"
,
"fc_elementwise_layernorm_fuse_pass"
,
//
"fc_elementwise_layernorm_fuse_pass",
"embedding_eltwise_layernorm_fuse_pass"
,
"runtime_context_cache_pass"
,
};
...
...
paddle/fluid/operators/fused/fused_fc_elementwise_layernorm_op.cu
浏览文件 @
01c26ab2
...
...
@@ -276,9 +276,9 @@ __global__ void InplaceAddReluAddLayerNormKernel(const float16* y_data,
half
tmp_0
=
__hdiv
(
__hsub
(
save_ptr
[
save_index
],
mean_i
),
std_i
);
half
tmp_1
=
scale
?
__hmul
(
scale
[
j
],
tmp_0
)
:
tmp_0
;
#else
half
tmp_0
=
static_cast
<
half
>
(
static_cast
<
float
>
(
save_ptr
[
save_index
])
-
static_cast
<
float
>
(
mean_i
)
/
static_cast
<
float
>
(
std_i
));
half
tmp_0
=
static_cast
<
half
>
(
(
static_cast
<
float
>
(
save_ptr
[
save_index
])
-
static_cast
<
float
>
(
mean_i
)
)
/
static_cast
<
float
>
(
std_i
));
half
tmp_1
=
scale
?
static_cast
<
half
>
(
static_cast
<
float
>
(
scale
[
j
])
*
static_cast
<
float
>
(
tmp_0
))
:
tmp_0
;
...
...
@@ -394,19 +394,16 @@ class FusedFCElementwiseLayerNormOpKernel : public framework::OpKernel<T> {
auto
*
out_data
=
dev_ctx
.
template
Alloc
<
T
>(
out
,
out
->
numel
()
*
sizeof
(
T
));
auto
blas
=
phi
::
funcs
::
GetBlas
<
phi
::
GPUContext
,
T
>
(
dev_ctx
);
blas
.
GEMM
(
false
,
false
,
blas
.
GEMM
(
CblasNoTrans
,
CblasNoTrans
,
M
,
N
,
K
,
static_cast
<
T
>
(
1.0
),
x_data
,
K
,
w_data
,
N
,
static_cast
<
T
>
(
0.0
),
out_data
,
N
);
out_data
);
auto
*
y
=
ctx
.
Input
<
framework
::
Tensor
>
(
"Y"
);
auto
*
bias_0
=
ctx
.
Input
<
framework
::
Tensor
>
(
"Bias0"
);
auto
*
bias_1
=
ctx
.
Input
<
framework
::
Tensor
>
(
"Bias1"
);
...
...
paddle/phi/kernels/funcs/fc_functor.cu
浏览文件 @
01c26ab2
...
...
@@ -292,19 +292,16 @@ void FCFunctor<DeviceContext, T>::operator()(const DeviceContext& context,
errors
::
PermissionDenied
(
"Weight padding in fc can not be used in GPU scope."
));
auto
blas
=
phi
::
funcs
::
GetBlas
<
DeviceContext
,
T
>
(
context
);
blas
.
GEMM
(
false
,
false
,
blas
.
GEMM
(
CblasNoTrans
,
CblasNoTrans
,
M
,
N
,
K
,
static_cast
<
T
>
(
1.0
),
X
,
K
,
W
,
N
,
static_cast
<
T
>
(
0.0
),
Y
,
N
);
Y
);
if
(
B
==
NULL
)
{
return
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录