cuPDLPx is a GPU-accelerated linear programming solver based on a restarted Halpern PDHG method specifically tailored for GPU architectures. It incorporates a Halpern update scheme, an adaptive restart scheme, and a PID-controlled primal weight, resulting in substantial empirical improvements over its predecessor, cuPDLP, on standard LP benchmark suites.
cuPDLPx solves linear programs of the form
Our work is presented in two papers:
-
Computational Paper: cuPDLPx: A Further Enhanced GPU-Based First-Order Solver for Linear Programming details the practical innovations that give cuPDLPx its performance edge.
-
Theoretical Paper: Restarted Halpern PDHG for Linear Programming provides the mathematical foundation for our method.
For installation instructions, examples, solver parameters, and algorithm details, see the cuPDLPx documentation.
| Interface | Description |
|---|---|
| Command line | Solve MPS files from a shell. |
| Python | Build and solve LPs with NumPy and SciPy. |
| Julia | Use cuPDLPx through JuMP and MathOptInterface. |
| C | Embed cuPDLPx in native applications. |
If you use cuPDLPx or the ideas in your work, please cite the source below.
@article{lu2025cupdlpx,
title={cuPDLPx: A Further Enhanced GPU-Based First-Order Solver for Linear Programming},
author={Lu, Haihao and Peng, Zedong and Yang, Jinwen},
journal={arXiv preprint arXiv:2507.14051},
year={2025}
}
@article{lu2024restarted,
title={Restarted Halpern PDHG for linear programming},
author={Lu, Haihao and Yang, Jinwen},
journal={arXiv preprint arXiv:2407.16144},
year={2024}
}cuPDLPx is licensed under the Apache 2.0 License. See the LICENSE file for details.