Dyn Atten don't synchronize if not slicing

This commit is contained in:
Disty0
2024-02-10 20:02:29 +03:00
parent c528b4b355
commit 0ac2dfbcaa
2 changed files with 3 additions and 3 deletions
+1 -1
View File
@@ -171,7 +171,7 @@ def scaled_dot_product_attention_32_bit(query, key, value, attn_mask=None, dropo
attn_mask=attn_mask[start_idx:end_idx] if attn_mask is not None else attn_mask,
dropout_p=dropout_p, is_causal=is_causal
)
torch.xpu.synchronize(query.device)
else:
return original_scaled_dot_product_attention(query, key, value, attn_mask=attn_mask, dropout_p=dropout_p, is_causal=is_causal)
torch.xpu.synchronize(query.device)
return hidden_states
+2 -2
View File
@@ -90,10 +90,10 @@ def sliced_scaled_dot_product_attention(query, key, value, attn_mask=None, dropo
attn_mask=attn_mask[start_idx:end_idx] if attn_mask is not None else attn_mask,
dropout_p=dropout_p, is_causal=is_causal
)
if devices.backend != "directml":
getattr(torch, query.device.type).synchronize()
else:
return F.scaled_dot_product_attention(query, key, value, attn_mask=attn_mask, dropout_p=dropout_p, is_causal=is_causal)
if devices.backend != "directml":
getattr(torch, query.device.type).synchronize()
return hidden_states