SPARK: Sparsity Aware, Low Area, Energy-Efficient, Near-memory Architecture for Accelerating Linear Programming Problems
Siddhartha Raman Sundara Raman, Lizy Kurian John, Jaydeep P. Kulkarni
Abstract
Integer Linear Programming (ILP) is an important mathematical approach for solving time-sensitive real-life optimization problems, including network routing, map routing, traffic scheduling, etc. However, the algorithms for solving ILPs are typically sparse and branch-intensive, and not CPU/GPU friendly. In the paper “What could a million cores do to solve Integer programs”, Koch et al. [40] presented data illustrating that Integer Linear Programming (ILP) applications take tens of hours of execution time even on the largest parallel computers. Long execution time is a problem because many real-life applications need a decision in seconds or minutes. The widely used ILP solvers, like Gurobi (optimized for CPUs), perform software-based optimizations to handle the inherent sparsity in ILPs but still do not meet decision threshold because of the limited throughput of CPUs. GPUs are suited for large-sized dot-product compute, however, GPU-based ILP solvers also do not meet decision thresholds as (i) GPU is not sparsity friendly and (ii) GPU incurs thread divergence for branching, resulting in under-utilization of streaming engines and periodic host-GPU interaction. We propose SPARK, a sparsity-aware, reuse-aware, energy-efficient, reconfigurable, near-cache ILP architecture that (i) re-configures the existing L1 cache present in CPUs to perform near-cache acceleration with easy integration into the baseline CPU pipeline with minimal area overhead ( of a CPU), (ii) performs near-cache sparsity detection and sparsity-aware compute, reducing the number of insignificant computations, and data movement energy overheads, (iii) leverages the computational patterns present in algorithms used for solving ILP to realize a reuse-aware architecture, and (iv) is applicable to solving sparse and dense ILPs and LPs (Linear Programs). We observe , and performance/energy improvement over AMD’s Zen3 CPU, and Nvidia’s Tesla v100 GPU for sparse reallife ILPs in Mixed Integer Programming library (MIPLIB 2017). For sparse LPs (non-integer), SPARK achieves 7-17x/103-250x performance/energy improvement over CPU/ GPU indicating SPARK’s broad applicability.
Ask about this paper
Ask your agent about it.
Lune has read the top-tier papers around this one, so every answer names the papers it rests on.
Related papers
- Hybrid Models for Learning to BranchPrateek Gupta, Maxime Gasse, Elias B. Khalil, Pawan Kumar Mudigonda et al.NeurIPS 2020 · 179 citations
- GNN&GBDT-Guided Fast Optimizing Framework for Large-scale Integer ProgrammingHuigen Ye, Hua Xu, Hongyan Wang, Chengming Wang et al.ICML 2023 · 20 citations
- SACHI: A Stationarity-Aware, All-Digital, Near-Memory, Ising ArchitectureSiddhartha Raman Sundara Raman, Lizy K. John, Jaydeep P. KulkarniHPCA 2024 · 11 citations
- Eagle: Toward Scalable and Near-Optimal Network-Wide Sketch Deployment in Network MeasurementXiang Chen, Qingjiang Xiao, Hongyan Liu, Qun Huang et al.SIGCOMM 2024 · 17 citations
- Light-MILPopt: Solving Large-scale Mixed Integer Linear Programs with Lightweight Optimizer and Small-scale Training DatasetHuigen Ye, Hua Xu, Hongyan WangICLR 2024 · 8 citations
