Abstract
The alternating direction method of multipliers (ADMM) is a powerful operator splitting technique for solving structured convex optimization problems. Due to its relatively low per-iteration computational cost and ability to exploit sparsity in the problem data, it is particularly suitable for large-scale optimization. However, the method may still take prohibitively long to compute solutions to very large problem instances. Although ADMM is known to be parallelizable, this feature is rarely exploited in real implementations. In this paper we exploit the parallel computing architecture of a graphics processing unit (GPU) to accelerate ADMM. We build our solver on top of OSQP, a state-of-the-art implementation of ADMM for quadratic programming. Our open-source CUDA C implementation has been tested on many large-scale problems and was shown to be up to two orders of magnitude faster than the CPU implementation.
Highlights
Convex optimization has become a standard tool in many engineering fields including control [GPM89, RM09], signal processing [MB10], statistics [Hub64, Tib96, CWB08], finance [Mar52, CT06, BMOW14, BBD+17], and machine learning [CV95]
All numerical tests were performed on a Linux-based system with an i9-9900K @ 3.6GHz (8 cores) processor and 64 GB of DDR4 3200Mhz RAM, which is equipped with the NVIDIA GeForce RTX 2080 Ti graphics processing unit (GPU) with 11 GB of VRAM
We have explored the possibilities offered by the massive parallelism of GPUs to accelerate solutions to large-scale quadratic programs (QPs) and have managed to solve problems with hundreds of millions nonzero entries in the problem matrices in only a few seconds
Summary
Convex optimization has become a standard tool in many engineering fields including control [GPM89, RM09], signal processing [MB10], statistics [Hub, Tib, CWB08], finance [Mar, CT06, BMOW14, BBD+17], and machine learning [CV95] In some of these applications one seeks solutions to optimization problems whose dimensions can be very large. In the last decade operator splitting methods, such as the proximal gradient method and the alternating direction method of multipliers (ADMM), have gained increasing attention in a wide range of application areas [BPC+11, PB13, BSM+17] These methods scale well with the problem dimensions, can exploit sparsity in the problem data efficiently, and are often parallelizable. Graphics processing units (GPUs) are hardware accelerators that offer an unmatched amount of parallel computational power for their relatively low price They provide far greater memory bandwidths than conventional CPU-based systems, which is especially beneficial in applications that process large amounts of data. The Euclidean projections of x ∈ Rn onto the nonnegative and nonpositive orthants are denoted by x+ := max(x, 0) and x− := min(x, 0), respectively
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.