H-J_S
(H-J S)
5월 6, 2023, 7:18오후
1
opened 04:07PM - 21 May 22 UTC
high priority
triage review
triaged
module: complex
module: fft
topic: new feature
module: mps
### 🐛 Describe the bug
# Extra comments
The error happens regardless of whet… her `PYTORCH_ENABLE_MPS_FALLBACK=1` env var is set or not.
# Code to reproduce:
```python
import torch
x = torch.randn(1, 16000, device="mps")
y = torch.fft.rfft(x)
y_abs = y.abs()
```
# Script output message:
```
$ python test2.py
test2.py:4: UserWarning: The operator 'aten::_fft_r2c' is not currently supported on the MPS backend and will fall back to run on the CPU. This may have performance implications. (Triggered internally at /Users/runner/work/pytorch/pytorch/pytorch/aten/src/ATen/mps/MPSFallback.mm:11.)
y = torch.fft.rfft(x)
libc++abi: terminating with uncaught exception of type c10::TypeError: Trying to convert ComplexFloat to the MPS backend but it does not have support for that dtype.
Exception raised from getMPSDataType at /Users/runner/work/pytorch/pytorch/pytorch/aten/src/ATen/native/mps/OperationUtils.mm:124 (most recent call first):
frame #0: at::native::mps::getMPSDataType(c10::ScalarType) + 452 (0x113dc690c in libtorch_cpu.dylib)
frame #1: at::native::mps::mpsGraphRankedPlaceHolder(MPSGraph*, at::Tensor const&) + 60 (0x113dc838c in libtorch_cpu.dylib)
frame #2: invocation function for block in at::native::mps::unary_op(at::Tensor const&, at::Tensor const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, MPSGraphTensor* (MPSGraph*, MPSGraphTensor*) block_pointer) + 96 (0x113e33d84 in libtorch_cpu.dylib)
frame #3: invocation function for block in at::native::mps::MPSGraphCache::CreateCachedGraph(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, at::native::mps::MPSCachedGraph* () block_pointer) + 216 (0x113dd0dec in libtorch_cpu.dylib)
frame #4: _dispatch_client_callout + 20 (0x1984d01b4 in libdispatch.dylib)
frame #5: _dispatch_lane_barrier_sync_invoke_and_complete + 56 (0x1984df414 in libdispatch.dylib)
frame #6: at::native::mps::MPSGraphCache::CreateCachedGraph(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, at::native::mps::MPSCachedGraph* () block_pointer) + 160 (0x113dc8e90 in libtorch_cpu.dylib)
frame #7: at::native::mps::unary_op(at::Tensor const&, at::Tensor const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, MPSGraphTensor* (MPSGraph*, MPSGraphTensor*) block_pointer) + 984 (0x113e33b70 in libtorch_cpu.dylib)
frame #8: at::native::abs_out_mps(at::Tensor const&, at::Tensor&) + 76 (0x113e351a4 in libtorch_cpu.dylib)
frame #9: at::_ops::abs_out::call(at::Tensor const&, at::Tensor&) + 280 (0x110f268e0 in libtorch_cpu.dylib)
frame #10: at::native::abs(at::Tensor const&) + 232 (0x110aadcd4 in libtorch_cpu.dylib)
frame #11: c10::impl::wrap_kernel_functor_unboxed_<c10::impl::detail::WrapFunctionIntoFunctor_<c10::CompileTimeFunctionPointer<at::Tensor (c10::DispatchKeySet, at::Tensor const&), &(torch::autograd::VariableType::(anonymous namespace)::abs(c10::DispatchKeySet, at::Tensor const&))>, at::Tensor, c10::guts::typelist::typelist<c10::DispatchKeySet, at::Tensor const&> >, at::Tensor (c10::DispatchKeySet, at::Tensor const&)>::call(c10::OperatorKernel*, c10::DispatchKeySet, at::Tensor const&) + 968 (0x1125fa24c in libtorch_cpu.dylib)
frame #12: at::_ops::abs::call(at::Tensor const&) + 264 (0x110f25c84 in libtorch_cpu.dylib)
frame #13: torch::autograd::THPVariable_abs(_object*, _object*) + 188 (0x106de8904 in libtorch_python.dylib)
frame #14: method_vectorcall_NOARGS + 136 (0x104e5ee4c in python3.8)
frame #15: call_function + 128 (0x104f859a0 in python3.8)
frame #16: _PyEval_EvalFrameDefault + 19988 (0x104f7c91c in python3.8)
frame #17: _PyEval_EvalCodeWithName + 616 (0x104f75cc8 in python3.8)
frame #18: pyrun_file + 280 (0x104fea0d0 in python3.8)
frame #19: pyrun_simple_file + 448 (0x104fe980c in python3.8)
frame #20: PyRun_SimpleFileExFlags + 120 (0x104fe95ec in python3.8)
frame #21: pymain_run_file + 444 (0x105011040 in python3.8)
frame #22: pymain_run_python + 328 (0x10501040c in python3.8)
frame #23: Py_RunMain + 40 (0x105010268 in python3.8)
frame #24: pymain_main + 52 (0x105011c50 in python3.8)
frame #25: main + 56 (0x104e25a08 in python3.8)
frame #26: start + 520 (0x10534508c in dyld)
[1] 17751 abort python test2.py
```
### Versions
# Env information
```
$ python collect_env.py
Collecting environment information...
PyTorch version: 1.13.0.dev20220521
Is debug build: False
CUDA used to build PyTorch: None
ROCM used to build PyTorch: N/A
OS: macOS 12.4 (arm64)
GCC version: Could not collect
Clang version: 13.1.6 (clang-1316.0.21.2.5)
CMake version: version 3.22.4
Libc version: N/A
Python version: 3.8.13 (default, Mar 28 2022, 06:13:39) [Clang 12.0.0 ] (64-bit runtime)
Python platform: macOS-12.4-arm64-arm-64bit
Is CUDA available: False
CUDA runtime version: No CUDA
GPU models and configuration: No CUDA
Nvidia driver version: No CUDA
cuDNN version: No CUDA
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True
Versions of relevant libraries:
[pip3] k2==1.15.1.dev20220520+cpu.torch1.12.0.dev20220519
[pip3] numpy==1.22.3
[pip3] torch==1.13.0.dev20220521
[pip3] torchaudio==0.11.0
[pip3] torchvision==0.12.0
[conda] k2 1.15.1.dev20220520+cpu.torch1.12.0.dev20220519 pypi_0 pypi
[conda] numpy 1.22.3 py38h25ab29e_0
[conda] numpy-base 1.22.3 py38h974a1f5_0
[conda] torch 1.13.0.dev20220521 pypi_0 pypi
[conda] torchaudio 0.11.0 pypi_0 pypi
[conda] torchvision 0.12.0 pypi_0 pypi
```
cc @ezyang @gchanan @zou3519 @anjali411 @dylanbespalko @mruberry @Lezcano @nikitaved @peterbell10 @kulinseth @albanD @malfet @DenisVieriu97 @razarmehr @abhudev
m1 mac으로 GitHub - neonbjb/tortoise-tts: A multi-voice TTS system trained with an emphasis on quality
voice gen을 test 중 오류를 발견하게 되었습니다.
mps는 복소수 난수 생성 에러가 아직 고쳐지지 않았습니다.
따라서 fft, mel 변환, 퓨리에 변환을 필요로하는 작업을 mps로 작업하시는 것을 추천드리지 않습니다. (ex, ASR, STT, TTS)
General MPS op coverage tracking issue · Issue #77764 · pytorch/pytorch · GitHub - mps 이슈 목록입니다.
23.5.7
pytorch 2.0.0
python 3.9.7
import torch
x = torch.randn(1, 16000, device="mps")
y = torch.fft.rfft(x)
y_abs = y.abs()
NotImplementedError: The operator 'aten::_fft_r2c' is not currently implemented for the MPS device. If you want this op to be added in priority during the prototype phase of this feature, please comment on https://github.com/pytorch/pytorch/issues/77764. As a temporary fix, you can set the environment variable `PYTORCH_ENABLE_MPS_FALLBACK=1` to use the CPU as a fallback for this op. WARNING: this will be slower than running natively on MPS.
1개의 좋아요