OmpSs@FPGA framework for high performance FPGA computing

This paper presents the new features of the OmpSs@FPGA framework. OmpSs is a data-flow programming model that supports task nesting and dependencies to target asynchronous parallelism and heterogeneity. OmpSs@FPGA is the extension of the programming model addressed specifically to FPGAs. OmpSs envir...

Descripción completa

Detalles Bibliográficos
Autores: De Haro Ruiz, Juan Miguel|||0000-0002-7427-9118, Bosch Pons, Jaume|||0000-0002-4040-3416, Filgueras Izquierdo, Antonio|||0000-0001-6071-3254, Vidal, Miquel|||0000-0002-1973-8289, Jiménez González, Daniel|||0000-0001-6064-7883, Álvarez Martínez, Carlos|||0000-0003-0536-5183, Martorell Bofill, Xavier|||0000-0002-0417-3430, Ayguadé Parra, Eduard|||0000-0002-5146-103X, Labarta Mancho, Jesús José|||0000-0002-7489-4727
Tipo de recurso: artículo
Fecha de publicación:2021
País:España
Institución:Universitat Politècnica de Catalunya (UPC)
Repositorio:UPCommons. Portal del coneixement obert de la UPC
Idioma:inglés
OAI Identifier:oai:upcommons.upc.edu:2117/347629
Acceso en línea:https://hdl.handle.net/2117/347629
https://dx.doi.org/10.1109/TC.2021.3086106
Access Level:acceso abierto
Palabra clave:Field programmable gate arrays
Parallel processing (Electronic computers)
Compilers (Computer programs)
FPGA
Reconfigurable hardware
Parallel architectures
Task-based programming models
High-level synthesis
Matrius de portes programables per l'usuari
Processament en paral·lel (Ordinadors)
Compiladors (Programes d'ordinador)
Àrees temàtiques de la UPC::Informàtica::Arquitectura de computadors::Arquitectures paral·leles
Descripción
Sumario:This paper presents the new features of the OmpSs@FPGA framework. OmpSs is a data-flow programming model that supports task nesting and dependencies to target asynchronous parallelism and heterogeneity. OmpSs@FPGA is the extension of the programming model addressed specifically to FPGAs. OmpSs environment is built on top of Mercurium source to source compiler and Nanos++ runtime system. To address FPGA specifics Mercurium compiler implements several FPGA related features as local variable caching, wide memory accesses or accelerator replication. In addition, part of the Nanos++ runtime has been ported to hardware. Driven by the compiler this new hardware runtime adds new features to FPGA codes, such as task creation and dependence management, providing both performance increases and ease of programming. To demonstrate these new capabilities, different high performance benchmarks have been evaluated over different FPGA platforms using the OmpSs programming model. The results demonstrate that programs that use the OmpSs programming model achieve very competitive performance with low to moderate porting effort compared to other FPGA implementations.