/cuosqp

Python interface for CUDA implementation of OSQP

Primary LanguageCApache License 2.0Apache-2.0

Python interface for CUDA implementation of OSQP

Python wrapper for CUDA implementation of OSQP.

The OSQP (Operator Splitting Quadratic Program) solver is a numerical optimization package for solving problems in the form

minimize        0.5 x' P x + q' x

subject to      l <= A x <= u

where x in R^n is the optimization variable. The objective function is defined by a positive semidefinite matrix P in S^n_+ and vector q in R^n. The linear constraints are defined by matrix A in R^{m x n} and vectors l in R^m U {-inf}^m, u in R^m U {+inf}^m.

Installation

You need to install the following:

Make sure the environment variable CUDA_PATH is set to the CUDA Toolkit install directory.

Then run the following commands in your terminal:

git clone --recurse-submodules https://github.com/oxfordcontrol/cuosqp
cd cuosqp
python setup.py install

Documentation

The interface is documented here.

Citing

If you use cuosqp for research, please cite our accompanying paper:

@article{cuosqp,
  author  = {Schubiger, M. and Banjac, G. and Lygeros, J.},
  title   = {{GPU} acceleration of {ADMM} for large-scale quadratic programming},
  journal = {Journal of Parallel and Distributed Computing},
  year    = {2020},
  volume  = {144},
  pages   = {55--67},
  doi     = {10.1016/j.jpdc.2020.05.021},
}