Unverified Commit eb64ec2a authored by Sangkug Lym's avatar Sangkug Lym Committed by GitHub
Browse files

Add an option for TP-only AMAX reduction (#431)


Signed-off-by: default avatarSangkug Lym <slym@nvidia.com>
parent a150d286
...@@ -326,24 +326,29 @@ class FP8GlobalStateManager: ...@@ -326,24 +326,29 @@ class FP8GlobalStateManager:
return None return None
# Reduce AMAX in DP-domain at an interval. # Reduce AMAX in DP-domain at an interval.
# `NVTE_DP_AMAX_REDUCE_INTERVAL` should be set as an integer value larger than 0. If
# `NVTE_DP_AMAX_REDUCE_INTERVAL` is set to 0, AMAX is reduced only in TP domain.
if cls.dp_amax_reduce_interval is None: if cls.dp_amax_reduce_interval is None:
cls.dp_amax_reduce_interval = int(os.getenv("NVTE_DP_AMAX_REDUCE_INTERVAL", "1")) cls.dp_amax_reduce_interval = int(os.getenv("NVTE_DP_AMAX_REDUCE_INTERVAL", "1"))
tp_amax_reduce = False if cls.dp_amax_reduce_interval == 0:
if forward: tp_amax_reduce = True
if cls.dp_amax_reduce_forward_idx == 0:
reduce_group = fp8_meta["fp8_group"]
else:
tp_amax_reduce = True
cls.dp_amax_reduce_forward_idx = (
(cls.dp_amax_reduce_forward_idx + 1) % cls.dp_amax_reduce_interval)
else: else:
if cls.dp_amax_reduce_backward_idx == 0: tp_amax_reduce = False
reduce_group = fp8_meta["fp8_group"] if forward:
if cls.dp_amax_reduce_forward_idx == 0:
reduce_group = fp8_meta["fp8_group"]
else:
tp_amax_reduce = True
cls.dp_amax_reduce_forward_idx = (
(cls.dp_amax_reduce_forward_idx + 1) % cls.dp_amax_reduce_interval)
else: else:
tp_amax_reduce = True if cls.dp_amax_reduce_backward_idx == 0:
cls.dp_amax_reduce_backward_idx = ( reduce_group = fp8_meta["fp8_group"]
(cls.dp_amax_reduce_backward_idx + 1) % cls.dp_amax_reduce_interval) else:
tp_amax_reduce = True
cls.dp_amax_reduce_backward_idx = (
(cls.dp_amax_reduce_backward_idx + 1) % cls.dp_amax_reduce_interval)
if tp_amax_reduce: if tp_amax_reduce:
if tp_size > 1: if tp_size > 1:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment