-
Notifications
You must be signed in to change notification settings - Fork 66
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MPS Alternatives to Natten #17
Comments
Hi, the most of computing time is from source separation (Demucs), so Demucs should support mps. However, I did a bit search and I guess it's not possible for now sadly 😢 |
Hi @tae-jun, thanks for clarification. The issue seems to be that mps doesn't support complex number operations or any other float than float32... and then it's a matter of finding a right spot and using .to("cpu") function to drag back processing of that particular math operation back to cpu. https://github.com/facebookresearch/demucs/blob/main/demucs/htdemucs.py#L628C1-L634C24
and then https://github.com/facebookresearch/demucs/blob/main/demucs/htdemucs.py#L645
But then we still have cpu doing most of the work. The real solution would be to not use complex numbers at all... if the algorithm can be adopted to use only real number like for example FFT, can be done with or without complex numbers. Are there any other source separation alternatives that we could use instead of Demucs? |
There are many publicly available source separation tools nowadays, such as Spleeter. However, I have not tested all-in-one on other source separation models, and since all-in-one is trained on outputs of Demucs, I can't guarantee its performance. But I think it's worth a try! |
I found this one with MPS support https://github.com/karaokenerds/python-audio-separator It seems like with the latest os Sonoma+ it is possible to get complex numbers working |
For mac users analysing audio files takes a really long time because it's all done on CPU without utilising Metal acceleration. Is there a way to provide alternative kernels for these tasks that have sliding window self-attention, or equivalent algorithm but also have kernel backend compiled for MPS?
The text was updated successfully, but these errors were encountered: