Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
apex
Commits
d38e6fe4
Commit
d38e6fe4
authored
Apr 05, 2020
by
Kexin Yu
Browse files
.item()
parent
a0bf956a
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
9 additions
and
11 deletions
+9
-11
apex/contrib/csrc/optimizers/fused_lamb_cuda_kernel.cu
apex/contrib/csrc/optimizers/fused_lamb_cuda_kernel.cu
+2
-2
apex/contrib/optimizers/fused_lamb.py
apex/contrib/optimizers/fused_lamb.py
+7
-9
No files found.
apex/contrib/csrc/optimizers/fused_lamb_cuda_kernel.cu
View file @
d38e6fe4
...
@@ -41,8 +41,8 @@ struct LAMBStage1Functor
...
@@ -41,8 +41,8 @@ struct LAMBStage1Functor
const
float
epsilon
,
const
float
epsilon
,
adamMode_t
mode
,
adamMode_t
mode
,
const
float
decay
,
const
float
decay
,
float
global_grad_norm
,
const
float
global_grad_norm
,
float
max_global_grad_norm
)
const
float
max_global_grad_norm
)
{
{
// I'd like this kernel to propagate infs/nans.
// I'd like this kernel to propagate infs/nans.
// if(*noop_gmem == 1)
// if(*noop_gmem == 1)
...
...
apex/contrib/optimizers/fused_lamb.py
View file @
d38e6fe4
...
@@ -83,7 +83,6 @@ class FusedLAMB(torch.optim.Optimizer):
...
@@ -83,7 +83,6 @@ class FusedLAMB(torch.optim.Optimizer):
self
.
adam_w_mode
=
1
if
adam_w_mode
else
0
self
.
adam_w_mode
=
1
if
adam_w_mode
else
0
self
.
set_grad_none
=
set_grad_none
self
.
set_grad_none
=
set_grad_none
print
(
"debugging LAMB"
)
def
zero_grad
(
self
):
def
zero_grad
(
self
):
if
self
.
set_grad_none
:
if
self
.
set_grad_none
:
...
@@ -116,23 +115,22 @@ class FusedLAMB(torch.optim.Optimizer):
...
@@ -116,23 +115,22 @@ class FusedLAMB(torch.optim.Optimizer):
g_all_16
.
append
(
p
.
grad
.
data
)
g_all_16
.
append
(
p
.
grad
.
data
)
else
:
else
:
raise
RuntimeError
(
'FusedLAMB only support fp16 and fp32.'
)
raise
RuntimeError
(
'FusedLAMB only support fp16 and fp32.'
)
:
q
!
g_norm_32
,
g_norm_16
=
0.0
,
0.0
g_norm_32
,
g_norm_16
=
0.0
,
0.0
# compute grad norm for two lists
# compute grad norm for two lists
if
len
(
g_all_32
)
>
0
:
if
len
(
g_all_32
)
>
0
:
g_norm_32
,
_
=
multi_tensor_applier
(
self
.
multi_tensor_l2norm
,
g_norm_32
=
multi_tensor_applier
(
self
.
multi_tensor_l2norm
,
self
.
_dummy_overflow_buf
,
self
.
_dummy_overflow_buf
,
[
g_all_32
],
False
)
[
g_all_32
],
False
)
[
0
].
item
()
if
len
(
g_all_16
)
>
0
:
if
len
(
g_all_16
)
>
0
:
g_norm_16
,
_
=
multi_tensor_applier
(
self
.
multi_tensor_l2norm
,
g_norm_16
=
multi_tensor_applier
(
self
.
multi_tensor_l2norm
,
self
.
_dummy_overflow_buf
,
self
.
_dummy_overflow_buf
,
[
g_all_16
],
False
)
[
g_all_16
],
False
)
[
0
].
item
()
# blend two grad norms to get global grad norm
# blend two grad norms to get global grad norm
global_grad_norm
=
math
.
sqrt
(
g_norm_32
*
g_norm_32
+
g_norm_16
*
g_norm_16
)
global_grad_norm
=
math
.
sqrt
(
g_norm_32
*
g_norm_32
+
g_norm_16
*
g_norm_16
)
max_grad_norm
=
self
.
defaults
[
'max_grad_norm'
]
max_grad_norm
=
self
.
defaults
[
'max_grad_norm'
]
print
(
"====global_grad_norm:"
,
global_grad_norm
)
print
(
"====max_grad_norm:"
,
max_grad_norm
)
for
group
in
self
.
param_groups
:
for
group
in
self
.
param_groups
:
bias_correction
=
1
if
group
[
'bias_correction'
]
else
0
bias_correction
=
1
if
group
[
'bias_correction'
]
else
0
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment