Skip to content

Repository files navigation

cuPDLPx: A GPU-Accelerated First-Order LP Solver

License GitHub release PyPI version Documentation arXiv arXiv

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

$$\begin{aligned} \min_{x} \quad & c^\top x \\\ \text{s.t.} \quad & \ell_c \le Ax \le u_c, \\\ & \ell_v \le x \le u_v. \end{aligned}$$

Our work is presented in two papers:

For installation instructions, examples, solver parameters, and algorithm details, see the cuPDLPx documentation.

Interfaces

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.

References

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}
}

License

cuPDLPx is licensed under the Apache 2.0 License. See the LICENSE file for details.