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

Read more

Summary

Introduction

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

Problem Description
Optimality and Infeasibility Conditions
OSQP Solver
Termination Criteria
Solving the KKT System
Preconditioning
Parameter Selection
Preconditioned Conjugate Gradient Method
Conjugate Gradient Method
Conjugate directions
Conjugate gradient
GPU Architecture and Programming Strategies
CUDA Architecture
Kernels
Thread hierarchy
Accelerating numerical methods
Segmented reduction
CUDA Libraries
Sparse Matrix Formats
GPU Acceleration of OSQP
OSQP Computational Bottlenecks
Representation of Matrices
Reduced KKT System
Preconditioner
Parameter update
Termination criteria and warm starting
Computing column norms
Matrix post-multiplication
Matrix pre-multiplication
Numerical Results
OSQP Benchmark Problems
MKL Pardiso
Floating-Point Precision
Conclusions

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

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.