Efficient FPGA Implementation of Conjugate Gradient Methods for Laplacian System using HLS
Sahithi Rampalli, Natasha Sehgal, Ishita Bindlish, Tanya Tyagi, and, Pawan Kumar

TL;DR
This paper presents an FPGA-based pipelined and superscalar implementation of conjugate gradient methods for solving Laplacian systems, achieving significant latency reductions and speedups over software solutions through novel domain decomposition and parallel stencil operations.
Contribution
The paper introduces a high-level synthesis FPGA design for conjugate gradient methods with optimized 2D domain decomposition, reducing latency and improving speed compared to traditional software implementations.
Findings
FPGA implementation reduces latency significantly.
New 2D domain traversal halves padding latency.
Implementation is 10 times faster than software for large systems.
Abstract
In this paper, we study FPGA based pipelined and superscalar design of two variants of conjugate gradient methods for solving Laplacian equation on a discrete grid; the first version corresponds to the original conjugate gradient algorithm, and the second version corresponds to a slightly modified version of the same. In conjugate gradient method to solve partial differential equations, matrix vector operations are required in each iteration; these operations can be implemented as 5 point stencil operations on the grid without explicitely constructing the matrix. We show that a pipelined and superscalar design using high level synthesis written in C language leads to a significant reduction in latencies for both methods. When comparing these two, we show that the later has roughly two times lower latency than the former given the same degree of superscalarity. These reductions in…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
