aboutsummaryrefslogtreecommitdiff
path: root/modules/xpu_specific.py
diff options
context:
space:
mode:
authorAUTOMATIC1111 <16777216c@gmail.com>2023-12-14 09:52:23 +0300
committerGitHub <noreply@github.com>2023-12-14 09:52:23 +0300
commitf3cc5f83823cb993eb3dbe4c127fb9a8cd895875 (patch)
treed82a09ca6eb9ff8c7bcd605f62a636cddbb377d4 /modules/xpu_specific.py
parent28bafffdc20c001be687def5ded128154dc4f674 (diff)
parent049d5642e58d572ee8657ac754e72d019eea0e6c (diff)
Merge pull request #14229 from Nuullll/ipex-embedding
[IPEX] Fix embedding and ControlNet
Diffstat (limited to 'modules/xpu_specific.py')
-rw-r--r--modules/xpu_specific.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/modules/xpu_specific.py b/modules/xpu_specific.py
index d933c790..d8da94a0 100644
--- a/modules/xpu_specific.py
+++ b/modules/xpu_specific.py
@@ -48,3 +48,12 @@ if has_xpu:
CondFunc('torch.nn.modules.conv.Conv2d.forward',
lambda orig_func, self, input: orig_func(self, input.to(self.weight.data.dtype)),
lambda orig_func, self, input: input.dtype != self.weight.data.dtype)
+ CondFunc('torch.bmm',
+ lambda orig_func, input, mat2, out=None: orig_func(input.to(mat2.dtype), mat2, out=out),
+ lambda orig_func, input, mat2, out=None: input.dtype != mat2.dtype)
+ CondFunc('torch.cat',
+ lambda orig_func, tensors, dim=0, out=None: orig_func([t.to(tensors[0].dtype) for t in tensors], dim=dim, out=out),
+ lambda orig_func, tensors, dim=0, out=None: not all(t.dtype == tensors[0].dtype for t in tensors))
+ CondFunc('torch.nn.functional.scaled_dot_product_attention',
+ lambda orig_func, query, key, value, attn_mask=None, dropout_p=0.0, is_causal=False: orig_func(query, key.to(query.dtype), value.to(query.dtype), attn_mask, dropout_p, is_causal),
+ lambda orig_func, query, key, value, attn_mask=None, dropout_p=0.0, is_causal=False: query.dtype != key.dtype or query.dtype != value.dtype)