PDCS: A Primal-Dual Large-Scale Conic Programming Solver with GPU Enhancements
Zhenwei Lin, Zikai Xiong, Dongdong Ge, Yinyu Ye
TL;DR
PDCS introduces a matrix-free primal-dual conic programming solver and its GPU-accelerated implementation cuPDCS to tackle large-scale conic programs, including LPs, SOCPs, exponential cones, and more. It combines adaptive step-size control, adaptive Halpern restarts, restart strategies, primal weight balancing, and diagonal rescaling with specialized projections onto rescaled cones to achieve scalable performance driven by sparse matrix–vector products on GPUs. The approach delivers robust performance and superior scalability on large problems such as Fisher market equilibrium, Lasso, and multi-period portfolio optimization, often outperforming state-of-the-art first-order methods and remaining competitive with interior-point solvers in challenging regimes. The GPU-focused projection strategies and bijection-based cone projections, together with JuMP integration, make cuPDCS a practical, high-performance tool for large-scale conic optimization in applications requiring speed and scalability over ultra-high-accuracy guarantees.
Abstract
In this paper, we introduce the Primal-Dual Conic Programming Solver (PDCS), a large-scale conic programming solver with GPU enhancements. Problems that PDCS currently supports include linear programs, second-order cone programs, convex quadratic programs, and exponential cone programs. PDCS achieves scalability to large-scale problems by leveraging sparse matrix-vector multiplication as its core computational operation, which is both memory-efficient and well-suited for GPU acceleration. The solver is based on the restarted primal-dual hybrid gradient method but further incorporates several enhancements, including adaptive reflected Halpern restarts, adaptive step-size selection, adaptive weight adjustment, and diagonal rescaling. Additionally, PDCS employs a bijection-based method to compute projections onto rescaled cones. Furthermore, cuPDCS is a GPU implementation of PDCS and it implements customized computational schemes that utilize different levels of GPU architecture to handle cones of different types and sizes. Numerical experiments demonstrate that cuPDCS is generally more efficient than state-of-the-art commercial solvers and other first-order methods on large-scale conic program applications, including Fisher market equilibrium problems, Lasso regression, and multi-period portfolio optimization. Furthermore, cuPDCS also exhibits better scalability, efficiency, and robustness compared to other first-order methods on the conic program benchmark dataset CBLIB. These advantages are more pronounced in large-scale, lower-accuracy settings.
