mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Fix mismatched tensor metadata between FakeTensor and Intel XPU concrete tensor when running F.logsigmoid
(#141333)
Fixes https://github.com/pytorch/pytorch/issues/141332 `F.logsigmoid` will return two outputs: `output` and `buffer`. For `F.logsigmoid` cpu path, it will use buffer to store some intermediate values and use them when computing gradients, so it returns a `buffer` tensor with nonzero size. For cuda and xpu paths, buffer is useless, so the `buffer ` tensor size of xpu `F.logsigmoid` will be zero, just like cuda. The root cause of the issue is that the codes in `decompositions.py` (ref:https://github.com/pytorch/pytorch/blob/main/torch/_decomp/decompositions.py#L2803) only handle the cuda cases, when the a fake tensor with device is xpu run to here, it will use the cpu path and return a `buffer` with nonzero size, which is conflict to the implementation of intel xpu concrete tensor. Therefore this pr add conditions to handle xpu cases. Make sure the two returned buffer sizes match each other. Pull Request resolved: https://github.com/pytorch/pytorch/pull/141333 Approved by: https://github.com/guangyey, https://github.com/EikanWang, https://github.com/ezyang
This commit is contained in:
committed by
PyTorch MergeBot
parent
74eb92ed6e
commit
1f3d8896bc
@ -1204,6 +1204,7 @@ def gen_pyi(
|
||||
"_is_view": ["def _is_view(self) -> _bool: ..."],
|
||||
"is_cpu": ["is_cpu: _bool"],
|
||||
"is_cuda": ["is_cuda: _bool"],
|
||||
"is_xpu": ["is_xpu: _bool"],
|
||||
"is_leaf": ["is_leaf: _bool"],
|
||||
"is_nested": ["is_nested: _bool"],
|
||||
"is_sparse": ["is_sparse: _bool"],
|
||||
|
Reference in New Issue
Block a user