[AMD][with CI Fix] support two batch overlapping for mori ep (#19216)
Co-authored-by: Duyi-Wang <duyi.wang@amd.com> Co-authored-by: kkHuang-amd <wunhuang@amd.com> Co-authored-by: Feiyue Zhai <feiyue.zhai@amd.com> Co-authored-by: HAI <hixiao@gmail.com>
This commit is contained in:
co-authored by
Duyi-Wang
kkHuang-amd
Feiyue Zhai
HAI
parent
c4ef33862b
commit
60eeef7370
@@ -953,6 +953,7 @@ class DeepseekV2MoE(nn.Module):
|
||||
and self.alt_stream is not None
|
||||
):
|
||||
torch.cuda.current_stream().wait_event(shared_event)
|
||||
|
||||
if shared_output is not None:
|
||||
x = shared_output
|
||||
# aiter moe call will handle routed_scaling_factor in the function
|
||||
@@ -1056,10 +1057,20 @@ class DeepseekV2MoE(nn.Module):
|
||||
def op_output(self, state):
|
||||
final_hidden_states = state.pop("hidden_states_after_combine")
|
||||
|
||||
if get_moe_a2a_backend().is_mori():
|
||||
num_tokens = state.pop("num_tokens")
|
||||
final_hidden_states = final_hidden_states[:num_tokens]
|
||||
|
||||
if (shared_output := state.pop("shared_output")) is not None:
|
||||
x = shared_output
|
||||
x.add_(final_hidden_states, alpha=self.routed_scaling_factor)
|
||||
if _use_aiter:
|
||||
x.add_(final_hidden_states)
|
||||
else:
|
||||
x.add_(final_hidden_states, alpha=self.routed_scaling_factor)
|
||||
final_hidden_states = x
|
||||
elif _use_aiter:
|
||||
# fused in aiter_biased_grouped_topk so we can skip here
|
||||
pass
|
||||
else:
|
||||
final_hidden_states *= self.routed_scaling_factor
|
||||
|
||||
@@ -2456,6 +2467,8 @@ class DeepseekV2DecoderLayer(nn.Module):
|
||||
state.hidden_states_after_comm_pre_attn, state.residual_after_input_ln = (
|
||||
self.layer_communicator.prepare_attn(hidden_states, residual, forward_batch)
|
||||
)
|
||||
if get_moe_a2a_backend().is_mori():
|
||||
state.num_tokens = hidden_states.shape[0]
|
||||
state.update(
|
||||
dict(
|
||||
forward_batch=forward_batch,
|
||||
|
||||
Reference in New Issue
Block a user