audio icon indicating copy to clipboard operation
audio copied to clipboard

[rocm] Fix current torch.linalg.lstsq limitation in InverseMelScale module

Open amd-sriram opened this issue 4 months ago • 1 comments

This PR fixes the following error: RuntimeError: torch.linalg.lstsq: only overdetermined systems (input.size(-2) >= input.size(-1)) are allowed on CUDA. Please rebuild with cuSOLVER

Checking the pytorch code https://github.com/ROCm/pytorch/blob/main/aten/src/ATen/native/cuda/linalg/BatchLinearAlgebra.cpp, it calls magma. According to magma documentation, least squares method - magma_sgels_gpu supports only overdetermined systems https://icl.utk.edu/projectsfiles/magma/doxygen/group__magma__gels.html

The proposed temporary solution uses https://docs.pytorch.org/docs/stable/generated/torch.linalg.pinv.html as a replacement for linear least squares. This change can be reverted once torch.linalg.lstsq uses hipSolver for underconstrained systems.

Tested on rocm with pytest test/torchaudio_unittest/transforms/transforms_cuda_test.py -k test_inverse_melscale

amd-sriram avatar Jun 13 '25 10:06 amd-sriram