[Bugfix] Fix tp and Quantization incompatible for Flux (#2180)
Signed-off-by: Lancer <maruixiang6688@gmail.com>
This commit is contained in:
1 parent
e408fd97aa
commit
055963b3fd
3 files changed
+11
-7
No files matched your search
@@ -248,9 +248,10 @@ class FluxAttention(torch.nn.Module):
|
||||
encoder_hidden_states, hidden_states = hidden_states.split_with_sizes(
|
||||
[encoder_hidden_states.shape[1], hidden_states.shape[1] - encoder_hidden_states.shape[1]], dim=1
|
||||
)
|
||||
hidden_states = self.to_out[0](hidden_states)
|
||||
# Contiguous for FP8 quantization in RowParallelLinear
|
||||
hidden_states = self.to_out[0](hidden_states.contiguous())
|
||||
hidden_states = self.to_out[1](hidden_states)
|
||||
encoder_hidden_states = self.to_add_out(encoder_hidden_states)
|
||||
encoder_hidden_states = self.to_add_out(encoder_hidden_states.contiguous())
|
||||
|
||||
return hidden_states, encoder_hidden_states
|
||||
else:
|
||||
|
||||
@@ -209,9 +209,10 @@ class Flux2Attention(nn.Module):
|
||||
[context_len, hidden_states.shape[1] - context_len],
|
||||
dim=1,
|
||||
)
|
||||
encoder_hidden_states = self.to_add_out(encoder_hidden_states)
|
||||
# Contiguous for FP8 quantization in RowParallelLinear
|
||||
encoder_hidden_states = self.to_add_out(encoder_hidden_states.contiguous())
|
||||
|
||||
hidden_states = self.to_out[0](hidden_states)
|
||||
hidden_states = self.to_out[0](hidden_states.contiguous())
|
||||
hidden_states = self.to_out[1](hidden_states)
|
||||
|
||||
if encoder_hidden_states is not None:
|
||||
|
||||
@@ -255,7 +255,8 @@ class Flux2Attention(nn.Module):
|
||||
[txt_len, hidden_states.shape[1] - txt_len],
|
||||
dim=1,
|
||||
)
|
||||
encoder_hidden_states = self.to_add_out(encoder_hidden_states)
|
||||
# Contiguous for FP8 quantization in RowParallelLinear
|
||||
encoder_hidden_states = self.to_add_out(encoder_hidden_states.contiguous())
|
||||
else:
|
||||
query = torch.cat([encoder_query, query], dim=1)
|
||||
key = torch.cat([encoder_key, key], dim=1)
|
||||
@@ -282,7 +283,8 @@ class Flux2Attention(nn.Module):
|
||||
[context_len, hidden_states.shape[1] - context_len],
|
||||
dim=1,
|
||||
)
|
||||
encoder_hidden_states = self.to_add_out(encoder_hidden_states)
|
||||
# Contiguous for FP8 quantization in RowParallelLinear
|
||||
encoder_hidden_states = self.to_add_out(encoder_hidden_states.contiguous())
|
||||
else:
|
||||
if image_rotary_emb is not None:
|
||||
cos, sin = image_rotary_emb
|
||||
@@ -300,7 +302,7 @@ class Flux2Attention(nn.Module):
|
||||
hidden_states = self.attn(query, key, value, attn_metadata)
|
||||
hidden_states = hidden_states.flatten(2, 3).to(query.dtype)
|
||||
|
||||
hidden_states = self.to_out[0](hidden_states)
|
||||
hidden_states = self.to_out[0](hidden_states.contiguous())
|
||||
hidden_states = self.to_out[1](hidden_states)
|
||||
|
||||
if encoder_hidden_states is not None:
|
||||
|
||||
Reference in new issue
Block a user