Traversal caches: a first step towards FPGA acceleration of pointer-based data structures

  • Authors:
  • Greg Stitt;Gaurav Chaudhari;James Coole

  • Affiliations:
  • University of Florida, Gainesville, FL, USA;University of Florida, Gainesville, FL, USA;University of Florida, Gainesville, FL, USA

  • Venue:
  • CODES+ISSS '08 Proceedings of the 6th IEEE/ACM/IFIP international conference on Hardware/Software codesign and system synthesis
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Field-programmable gate arrays (FPGAs) often achieve order of magnitude speedups compared to microprocessors, but typically have been unable to improve the performance of applications with irregular memory access patterns, such as traversals of pointer-based data structures. Due to the common use of these data structures, the applicability and widespread success of FPGAs has been limited. In this paper, we introduce the traversal cache framework - a first step towards improving the performance of FPGA applications that utilize pointer-based data structures. The traversal cache is a local FPGA memory that stores repeated traversals of pointer-based data structures, allowing for these traversals to be efficiently streamed into the FPGA. Although the cache is generally limited to improving applications that exhibit repeated traversals, we show that many applications in fact have this characteristic. Furthermore, we show that few repetitions are needed to achieve performance improvements. We present experimental results showing that FPGA implementations using the traversal cache framework achieve speedups ranging from 7x to 29x compared to pointer-based software on a 3.2 GHz Xeon.