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.
翻译:本文介绍了一种基于GPU加速的大规模锥规划求解器——原始-对偶锥规划求解器(PDCS)。PDCS当前支持的问题类型包括线性规划、二阶锥规划、凸二次规划和指数锥规划。该求解器以稀疏矩阵-向量乘法作为核心计算操作,既具备内存效率,又非常适合GPU加速,从而实现了对大规模问题的可扩展性。求解器基于重启的原始-对偶混合梯度方法,并进一步整合了多项增强技术,包括自适应反射式Halpern重启、自适应步长选择、自适应权重调整以及对角重缩放。此外,PDCS采用基于双射的方法来计算重缩放锥上的投影。cuPDCS是PDCS的GPU实现版本,它采用了定制的计算方案,利用GPU架构的不同层级来处理不同类型和尺寸的锥。数值实验表明,在大规模锥规划应用(包括Fisher市场均衡问题、Lasso回归和多周期投资组合优化)中,cuPDCS通常比最先进的商业求解器及其他一阶方法更为高效。此外,在锥规划基准数据集CBLIB上,与其他一阶方法相比,cuPDCS也展现出更好的可扩展性、效率和鲁棒性。这些优势在大规模、低精度需求场景下更为显著。