Skip to content

GPU support for steadystate_fourier #462

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

Open
albertomercurio opened this issue May 4, 2025 · 2 comments
Open

GPU support for steadystate_fourier #462

albertomercurio opened this issue May 4, 2025 · 2 comments
Labels
enhancement New feature or request UnitaryHack2025 UnitaryHACK 2025

Comments

@albertomercurio
Copy link
Member

The steadystate_fourier function doesn't support GPU arrays.

The support can be implemented by following the same method as steadystate.

One can take advantage of the following functions

  • _dense_similar: Creates the equivalent dense version of the input array. Uses multiple dispatch to generate a GPU array if necessary.
  • allowed_setindex!: Allows to set the index of an array. Use this only if the operation is done only once.
@albertomercurio albertomercurio added enhancement New feature or request UnitaryHack2025 UnitaryHACK 2025 labels May 4, 2025
@albertomercurio albertomercurio changed the title GPU support for steady state_fourier GPU support for steadystate_fourier May 4, 2025
Fe-r-oz added a commit to Fe-r-oz/QuantumToolbox.jl that referenced this issue May 28, 2025
Fe-r-oz added a commit to Fe-r-oz/QuantumToolbox.jl that referenced this issue May 28, 2025
@aarontrowbridge
Copy link
Contributor

aarontrowbridge commented Jun 6, 2025

if it makes sense, which it looks like it does, to use CUDSS.jl in LinearSolve.jl to do this I'm happy to take a wack at it this weekend

i didn't look at the work @Fe-r-oz did already to see if this approach makes sense or not

@albertomercurio
Copy link
Member Author

Hi @aarontrowbridge,

As far as I know, CUDSS.jl allows to solve direct methods, right?

Here I think that we should use iterative methods, as the matrix is usually large.

If we make it work with iterative methods (which should be easier that using CUDSS.jl I think), then we can think to implement the direct solver, but maybe in another PR.

You can take the steadystate function as an example, and also the last part of this section.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request UnitaryHack2025 UnitaryHACK 2025
Projects
None yet
Development

No branches or pull requests

2 participants