Skip to content
GitLab
菜单
项目
群组
代码片段
帮助
帮助
支持
社区论坛
快捷键
?
提交反馈
登录/注册
切换导航
菜单
打开侧边栏
wanggh
apex
提交
9d86158d
未验证
提交
9d86158d
编辑于
8月 31, 2021
作者:
Kexin Yu
提交者:
GitHub
8月 31, 2021
浏览文件
Merge pull request #1148 from azrael417/thorsten-view-fix
wrapper function for flat view creation in _lazy_init_stage2
上级
ed713c84
333da806
变更
1
Hide whitespace changes
Inline
Side-by-side
apex/contrib/optimizers/distributed_fused_lamb.py
浏览文件 @
9d86158d
...
...
@@ -332,6 +332,17 @@ class DistributedFusedLAMB(torch.optim.Optimizer):
self
.
_param_order
.
order
.
reverse
()
def
_get_flat_view
(
param
):
if
param
.
is_contiguous
(
memory_format
=
torch
.
channels_last
):
K
,
C
,
H
,
W
=
param
.
shape
pv
=
param
.
as_strided
(
size
=
(
K
,
H
,
W
,
C
),
stride
=
(
H
*
W
*
C
,
W
*
C
,
C
,
1
))
elif
param
.
is_contiguous
(
memory_format
=
torch
.
channels_last_3d
):
K
,
C
,
D
,
H
,
W
=
param
.
shape
pv
=
param
.
as_strided
(
size
=
(
K
,
D
,
H
,
W
,
C
),
stride
=
(
D
*
H
*
W
*
C
,
H
*
W
*
C
,
W
*
C
,
C
,
1
))
else
:
pv
=
param
return
pv
.
view
(
-
1
)
# re-order model_params, grad_accs, group_properties lists
self
.
_model_params
=
[
self
.
_model_params
[
i
]
for
i
in
self
.
_param_order
.
order
]
self
.
_grad_accs
=
[
self
.
_grad_accs
[
i
]
for
i
in
self
.
_param_order
.
order
]
...
...
@@ -392,7 +403,8 @@ class DistributedFusedLAMB(torch.optim.Optimizer):
grad_offset
=
clipped_start
-
flat_grad_start
grad_length
=
clipped_end
-
clipped_start
shard_offset
=
clipped_start
-
flat_shard_start
model_param_fragment
=
p
.
view
(
-
1
)[
grad_offset
:
grad_offset
+
grad_length
]
pf
=
_get_flat_view
(
p
)
model_param_fragment
=
pf
[
grad_offset
:
grad_offset
+
grad_length
]
new_param_packed_fragment
=
self
.
_new_params_mega_chunks
[
shard_id
][
block_id
][
chunk_id
][
shard_offset
:
shard_offset
+
grad_length
]
if
model_param_fragment
.
dtype
==
torch
.
float16
:
self
.
_packed_flat_to_model_params_fp16
.
append
(
(
new_param_packed_fragment
,
model_param_fragment
)
)
...
...
编辑
预览
Supports
Markdown
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录