Analysis and modeling of collaborative execution strategies for heterogeneous CPU-FPGA architectures

Sitao Huang, Simon Garcia De Gonzalo, Mohamed El-Hadedy, Li Wen Chang, Juan Gómez-Luna, Dejan Milojicic, Izzat El Hajj, Sai Rahul Chalamalasetti, Onur Mutlu, Deming Chen, Wen Mei Hwu

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Heterogeneous CPU-FPGA systems are evolving towards tighter integration between CPUs and FPGAs for improved performance and energy efficiency. At the same time, programmability is also improving with High Level Synthesis tools (e.g., OpenCL Software Development Kits), which allow programmers to express their designs with high-level programming languages, and avoid time-consuming and error-prone register-transfer level (RTL) programming. In the traditional loosely-coupled accelerator mode, FPGAs work as offload accelerators, where an entire kernel runs on the FPGA while the CPU thread waits for the result. However, tighter integration of the CPUs and the FPGAs enables the possibility of fine-grained collaborative execution, i.e., having both devices working concurrently on the same workload. Such collaborative execution makes better use of the overall system resources by employing both CPU threads and FPGA concurrency, thereby achieving higher performance. In this paper, we explore the potential of collaborative execution between CPUs and FPGAs using OpenCL High Level Synthesis. First, we compare various collaborative techniques (namely, data partitioning and task partitioning), and evaluate the tradeoffs between them. We observe that choosing the most suitable partitioning strategy can improve performance by up to 2×. Second, we study the impact of a common optimization technique, kernel duplication, in a collaborative CPU-FPGA context. We show that the general trend is that kernel duplication improves performance until the memory bandwidth saturates. Third, we provide new insights that application developers can use when designing CPU-FPGA collaborative applications to choose between different partitioning strategies. We find that different partitioning strategies pose different tradeoffs (e.g., task partitioning enables more kernel duplication, while data partitioning has lower communication overhead and better load balance), but they generally outperform execution on conventional CPU-FPGA systems where no collaborative execution strategies are used. Therefore, we advocate even more integration in future heterogeneous CPU-FPGA systems (e.g., OpenCL 2.0 features, such as fine-grained shared virtual memory).

Original languageEnglish (US)
Title of host publicationICPE 2019 - Proceedings of the 2019 ACM/SPEC International Conference on Performance Engineering
PublisherAssociation for Computing Machinery
Pages79-90
Number of pages12
ISBN (Electronic)9781450362399
DOIs
StatePublished - Apr 4 2019
Event10th ACM/SPEC International Conference on Performance Engineering, ICPE 2019 - Mumbai, India
Duration: Apr 7 2019Apr 11 2019

Publication series

NameICPE 2019 - Proceedings of the 2019 ACM/SPEC International Conference on Performance Engineering

Conference

Conference10th ACM/SPEC International Conference on Performance Engineering, ICPE 2019
Country/TerritoryIndia
CityMumbai
Period4/7/194/11/19

Keywords

  • CPU-FPGA architectures
  • Heterogeneous systems
  • OpenCL
  • Performance analysis

ASJC Scopus subject areas

  • Hardware and Architecture
  • Software
  • Computer Science Applications

Fingerprint

Dive into the research topics of 'Analysis and modeling of collaborative execution strategies for heterogeneous CPU-FPGA architectures'. Together they form a unique fingerprint.

Cite this