Skip to content
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

Is it possible to add cuDSS as linear solver for SCS ? #308

Open
Franc-Z opened this issue Mar 5, 2025 · 4 comments
Open

Is it possible to add cuDSS as linear solver for SCS ? #308

Franc-Z opened this issue Mar 5, 2025 · 4 comments

Comments

@Franc-Z
Copy link

Franc-Z commented Mar 5, 2025

According to https://docs.nvidia.com/cuda/cudss/, cuDSS is a high performance linear solver for large scale problem. Is it possible to add cuDSS as linear solver for SCS ?

@kalmarek
Copy link
Contributor

kalmarek commented Mar 5, 2025

should be pretty straightforward: these are the functions that need to be implemented:
https://www.cvxgrp.org/scs/linear_solver/index.html#implementing-a-new-linear-solver

Just have a look at what the indirect solver is doing.

(I was even thinking of it in my spare time, but I don't currently have running access to CUDA-12 enabled gpu)

@kalmarek
Copy link
Contributor

@Franc-Z if you feel adventurous and own a cuda-12 gpu you may try this one:
kalmarek#2

most probably it will crash (I have no option to test it), but should not eat your cat 😺 If you try, please report back!

@kalmarek
Copy link
Contributor

kalmarek commented Mar 13, 2025

ok, I rented a gpu ;) for the afternoon and got this working (i.e. it's passing all tests, yay!).
To compile You will need to have

  • libopenblas, liblapack
  • cudss-0.5.0
  • cuda-runtime
  • cuda-blas
  • nvcc
  1. Define CUDA_PATH (defaults to /usr/local/cuda)
  2. Define CUDSS_PATH (mandatory, no default)
  3. run make cudss

This is my first CUDA code, honestly ;)

@bodono I could also open a pull directly here, if you want to review!

@Franc-Z
Copy link
Author

Franc-Z commented Mar 13, 2025

@kalmarek Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants