Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
DeepSpeed
提交
5102c4ab
D
DeepSpeed
项目概览
Greenplum
/
DeepSpeed
上一次同步 大约 1 年
通知
10
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
DeepSpeed
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
5102c4ab
编写于
9月 06, 2022
作者:
M
Molly Smith
提交者:
GitHub
9月 06, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fused bias relu unittest (#2297)
上级
c8641032
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
54 addition
and
0 deletion
+54
-0
tests/unit/ops/transformer/inference/test_bias_relu.py
tests/unit/ops/transformer/inference/test_bias_relu.py
+54
-0
未找到文件。
tests/unit/ops/transformer/inference/test_bias_relu.py
0 → 100644
浏览文件 @
5102c4ab
"""
Copyright 2022 The Microsoft DeepSpeed Team
"""
import
pytest
import
torch
import
deepspeed
from
deepspeed.ops.op_builder
import
InferenceBuilder
if
not
deepspeed
.
ops
.
__compatible_ops__
[
InferenceBuilder
.
NAME
]:
pytest
.
skip
(
"Inference ops are not available on this system"
,
allow_module_level
=
True
)
inference_module
=
None
torch_minor_version
=
None
def
allclose
(
x
,
y
):
assert
x
.
dtype
==
y
.
dtype
rtol
,
atol
=
{
torch
.
float32
:
(
5e-4
,
5e-5
),
torch
.
float16
:
(
3e-2
,
2e-3
)}[
x
.
dtype
]
return
torch
.
allclose
(
x
,
y
,
rtol
=
rtol
,
atol
=
atol
)
def
run_bias_relu_reference
(
activations
,
bias
):
# Expected behavior is that of casting to float32 internally
return
torch
.
nn
.
functional
.
relu
(
activations
.
to
(
torch
.
float32
)
+
bias
.
to
(
torch
.
float32
)).
to
(
activations
.
dtype
)
def
run_bias_relu_ds
(
activations
,
bias
):
global
inference_module
if
inference_module
is
None
:
inference_module
=
InferenceBuilder
().
load
()
if
activations
.
dtype
==
torch
.
float16
:
return
inference_module
.
bias_relu_fp16
(
activations
,
bias
)
else
:
return
inference_module
.
bias_relu_fp32
(
activations
,
bias
)
@
pytest
.
mark
.
inference
@
pytest
.
mark
.
parametrize
(
"batch"
,
[
1
,
2
])
@
pytest
.
mark
.
parametrize
(
"sequence"
,
[
1
,
128
,
255
])
@
pytest
.
mark
.
parametrize
(
"channels"
,
[
512
,
1232
,
4096
])
@
pytest
.
mark
.
parametrize
(
"dtype"
,
[
torch
.
float16
,
torch
.
float32
])
def
test_bias_relu
(
batch
,
sequence
,
channels
,
dtype
):
activations_ds
=
torch
.
randn
((
batch
,
sequence
,
channels
),
dtype
=
dtype
,
device
=
'cuda'
)
bias_ds
=
torch
.
randn
((
channels
),
dtype
=
dtype
,
device
=
'cuda'
)
activations_ref
=
activations_ds
.
clone
().
detach
()
bias_ref
=
bias_ds
.
clone
().
detach
()
ds_out
=
run_bias_relu_ds
(
activations_ds
,
bias_ds
)
ref_out
=
run_bias_relu_reference
(
activations_ref
,
bias_ref
)
assert
(
allclose
(
ds_out
,
ref_out
))
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录