Exploring Thread Coarsening on FPGA
Mostafa Eghbali Zarch, Reece Neff, Michela Becchi

TL;DR
This paper investigates thread coarsening as a compiler optimization for FPGA-based OpenCL code, demonstrating significant performance improvements with minimal resource increase, addressing performance portability issues across architectures.
Contribution
It is the first detailed analysis of thread coarsening effects on FPGA, showing how this technique can improve performance of OpenCL code on FPGA architectures.
Findings
Up to 3-4x speedups achieved with thread coarsening.
Limited resource utilization increase during optimization.
Performance gains observed on microbenchmarks and real applications.
Abstract
Over the past few years, there has been an increased interest in including FPGAs in data centers and high-performance computing clusters along with GPUs and other accelerators. As a result, it has become increasingly important to have a unified, high-level programming interface for CPUs, GPUs and FPGAs. This has led to the development of compiler toolchains to deploy OpenCL code on FPGA. However, the fundamental architectural differences between GPUs and FPGAs have led to performance portability issues: it has been shown that OpenCL code optimized for GPU does not necessarily map well to FPGA, often requiring manual optimizations to improve performance. In this paper, we explore the use of thread coarsening - a compiler technique that consolidates the work of multiple threads into a single thread - on OpenCL code running on FPGA. While this optimization has been explored on CPU and GPU,…
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.
