OpenMP extensions for FPGA accelerators

  • Authors:
  • Daniel Cabrera;Xavier Martorell;Georgi Gaydadjiev;Eduard Ayguade;Daniel Jiménez-González

  • Affiliations:
  • Barcelona Supercomputing Center, Barcelona, Spain and Universitat Politecnica de Catalunya, Barcelona, Spain;Barcelona Supercomputing Center, Barcelona, Spain and Universitat Politecnica de Catalunya, Barcelona, Spain;Delft University of Technology, Delft, The Netherlands;Barcelona Supercomputing Center, Barcelona, Spain and Universitat Politecnica de Catalunya, Barcelona, Spain;Barcelona Supercomputing Center, Barcelona, Spain and Universitat Politecnica de Catalunya, Barcelona, Spain

  • Venue:
  • SAMOS'09 Proceedings of the 9th international conference on Systems, architectures, modeling and simulation
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Reconfigurable computing is one of the paths to explore towards low-power supercomputing. However, programming these reconfigurable devices is not an easy task and still requires significant research and development efforts to make it really productive. In addition, the use of these devices as accelerators in multicore, SMPs and ccNUMA architectures adds an additional level of programming complexity in order to specify the offloading of tasks to reconfigurable devices and the interoperability with current shared-memory programming paradigms such as OpenMP. This paper presents extensions to OpenMP 3.0 that try to address this second challenge and an implementation in a prototype runtime system. With these extensions the programmer can easily express the offloading of an already existing reconfigurable binary code (bitstream) hiding all the complexities related with device configuration, bitstream loading, data arrangement and movement to the device memory. Our current prototype implementation targets the SGI Altix systems with RASC blades (based on the Virtex 4 FPGA). We analyze the overheads introduced in this implementation and propose a hybrid host/device operational mode to hide some of these overheads, significantly improving the performance of the applications. A complete evaluation of the system is done with a matrix multiplication kernel, including an estimation considering different FPGA frequencies.