-
-
Notifications
You must be signed in to change notification settings - Fork 863
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
Some cupyx.scipy.signal
APIs fall back to NumPy
#7761
Comments
Lets add a warning in documentation of these routines regarding device synchronization |
Hi @takagi @ev-br @andfoy I could really pick your brains here regarding the general-matrix eigensolver. Why isn't it possible to rewrite the algorithms such that you generate a Hermitian matrix? What's special here? (Context: On the cuSOLVER side, I learned that there's great hesitation in adding the general solver because there's no serious use case. A lot of |
Thanks @leofang for letting my head up. As for https://en.m.wikipedia.org/wiki/Companion_matrix I suppose we need eigenvalues themselves, not just decomposition, so svd may not work. However, yes, we might use another algorithm for root finding on GPU that does not use eigenvalues. https://hal.science/hal-02129742/file/880a5bc7-2a3d-4a66-a539-9755508a949b-author.pdf Also I’ll look into other lines that use eigvals... |
Some
scipy.signal
APIs depend onnumpy.eigvals
, which computes the eigenvalues of a general matrix. However, cuSolver only provides the eigenvalue solver of a symmetric (Hermitian) matrix but does not the one of a general matrix. Therefore, thecupyx.scipy.signal
counterparts of such APIs are currently implemented by falling back tonumpy.eigvals
ornumpy.roots
, which callsnumpy.eigvals
.Such APIs include:
cupyx.scipy.signal.findfreqs
ENH: add cupyx.signal.{freqs, freqs_zpk, findfreqs} #7641cupyx.scipy.signal.tf2zpk
ENH: cupyx/scipy/signal: add missing LTI format conversions #7652cupyx.scipy.signal.ss2tf
ENH: cupyx/scipy/signal: add missing LTI format conversions #7652See:
cupy/cupyx/scipy/signal/_polyutils.py
Line 8 in ae82162
cupy/cupyx/scipy/signal/_polyutils.py
Line 17 in ae82162
The text was updated successfully, but these errors were encountered: