-
Notifications
You must be signed in to change notification settings - Fork 111
Barrier method for LPs with cuDSS sparse Cholesky / LDLT on the GPU #272
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
Conversation
|
/ok to test 999b690 |
|
As follow-ons we can add any necessary PRs to support this from Python (service, modeler integrations, etc) |
@tmckayus I think the only external change is supporting another value for Method. So we will now have a Method=3 for Barrier. |
|
Note this PR will not build until cuDSS is integrated into the CI To run the new barrier solver, set Method=3. |
|
@chris-maes Observing failure in tests https://github.com/NVIDIA/cuopt/actions/runs/17053466642/job/48347187847?pr=304#step:10:3852 with cudss |
@rgsl888prabhu this is because the concurrent mode with barrier and PDLP both running on the GPU does not work yet. |
…rt from the device to host one
|
/ok to test 22e0421 |
|
/ok to test 03035db |
|
/ok to test 42d4e8e |
|
/ok to test edbf29c |
|
/ok to test |
@chris-maes, there was an error processing your request: See the following link for more information: https://docs.gha-runners.nvidia.com/cpr/e/1/ |
|
/ok to test d3dd52a |
|
/ok to test bc5ef06 |
|
/ok to test fc90fed |
|
/merge |
This PR enables stream concurrency by sharing SM resources between PDLP and Barrier. It fixes compile errors that occured while merging #272 Authors: - Hugo Linsenmaier (https://github.com/hlinsen) Approvers: - Chris Maes (https://github.com/chris-maes) - Bradley Dice (https://github.com/bdice) - Ramakrishnap (https://github.com/rgsl888prabhu) URL: #448
This PR is a follow-up for PR #272 to add documentation and additional tests Authors: - Ramakrishnap (https://github.com/rgsl888prabhu) - Hugo Linsenmaier (https://github.com/hlinsen) - Chris Maes (https://github.com/chris-maes) Approvers: - Ishika Roy (https://github.com/Iroy30) - Trevor McKay (https://github.com/tmckayus) - Chris Maes (https://github.com/chris-maes) URL: #449
This PR adds a barrier (interior-point) method for solving linear programs. cuDSS is used to GPU-accelerate the sparse Cholesky and sparse LDLT solves, cuSparse is used to GPU-accelerate spMv and spMM. This PR also includes routines for the color refinement algorithm (generalized to weighted graphs) and folding a linear program. Crossover is also updated to use hypersparse solves.
Barrier is enabled by default (along with PDLP and dual simplex) in concurrent mode. You may also use barrier by itself.
The following new settings are supported:
--method=3to invoke the new barrier solver--foldingto control whether to fold the LP: (-1) automatic, (0) folding off, (1) folding in--dualizeto control whether to dualize the LP in presolve: (-1) automatic, (0) don't dualize, (1) force dualize--orderingto control whether the ordering for cuDSS: (-1) automatic, (0) cuDSS default (1) AMD--augmentedto control what linear system to solve: (-1) automatic, (0) solve ADAT, (1) solve the augmented system--eliminate-dense-columns, true to eliminate dense columns, false to not--cudss-deterministic, true to use cuDSS deterministic mode, false to use nondeterministic modeCloses #204
Checklist