在 GPU 和多核 CPU 上求解批量线性规划
摘要
线性规划出现在大量应用中,将其卸载至 GPU 是提升性能的可行方法。现有关于在 GPU 上卸载并求解 LP 的工作表明,性能提升来源于大规模 LP(通常为 500 个约束、500 个变量及以上)。为了在涉及中小规模 LP 的应用中从 GPU 获得性能提升,我们提出并行求解大量 LP 的批量求解方法。在本文中,我们介绍了批量 LP 求解器库的设计与 CUDA 实现,以内存合并访问、降低 CPU-GPU 内存传输延迟和负载均衡为目标。使用开源求解器 GLPK (GNU Linear Programming Kit) 在 CPU 上顺序求解作为基准,对批量 LP 求解器的性能进行了比较。针对三种类型的 LP 评估了性能。第一类是初始基本解为可行的 LP,第二类是初始基本解为不可行的 LP,第三类是可行域为 Hyperbox 的 LP。对于第一类,我们展示了在运行一批规模为 ( 个变量, 个约束)的 个 LP 时,获得了 的最大加速。对于第二类,在求解一批规模为 的 个 LP 时,获得了 的最大加速。对于第三类,我们展示了在求解一批近 万个规模为 5 的 LP 时获得了 的显著加速,在求解 600 万个规模为 28 的 LP 时获得了 的加速。此外,我们表明用于求解线性规划的开源库 GLPK 可以轻松扩展,通过多线程并行求解多个 LP。线程并行的 GLPK 实现在 核 Intel Xeon 处理器上求解一批规模为 的 个 LP 时,运行速度提高了 。我们展示了批量 LP 求解器在控制系统设计数学模型的状态空间探索领域的应用。
引用
@article{arxiv.1609.08114,
title = {Solving Batched Linear Programs on GPU and Multicore CPU},
author = {Amit Gurung and Rajarshi Ray},
journal= {arXiv preprint arXiv:1609.08114},
year = {2016}
}
备注
contains 31 pages in double line spacing, 11 figures with 2 tables. A preliminary work has been accepted in the 8th IEEE International Student Research Symposim on High Performance Computing, HiPC'2015, Bangalore, December 16-19, 2015. http://www.hipc.org/hipc2015/documents/HiPC-SRS-Paper/1570220654.pdf