Una biblioteca de patrones funcionales de síntesis de alto nivel altamente configurable
Autores: Huang, Lan; Gao, Teng; Li, Dalin; Wang, Zihao; Wang, Kangping
Idioma: Inglés
Editor: MDPI
Año: 2021
Acceso abierto
Artículo científico
2021
Una biblioteca de patrones funcionales de síntesis de alto nivel altamente configurable
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería Eléctrica y Electrónica
Palabras clave
Fpga
Síntesis de alto nivel
Hls
Concurrencia
Estructuras de flujo de datos
Patrones funcionales
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 42
Citaciones: Sin citaciones
FPGA ha desempeñado recientemente un papel cada vez más importante en la informática heterogénea, pero los flujos de diseño de nivel de transferencia de registros no solo son ineficientes en el diseño, sino que también requieren que los diseñadores estén familiarizados con la arquitectura del circuito. La síntesis de alto nivel (HLS) permite a los desarrolladores diseñar circuitos FPGA de manera más eficiente con un lenguaje de programación más familiar, un mayor nivel de abstracción y una adaptación automática de las restricciones temporales. Al utilizar herramientas HLS, como Xilinx Vivado HLS, se requieren patrones de diseño específicos y técnicas para crear circuitos de alto rendimiento. Además, diseñar estructuras eficientes de concurrencia y flujo de datos requiere una comprensión profunda del hardware, imponiendo mayores costos de aprendizaje a los programadores. En este documento, proponemos un conjunto de bibliotecas de patrones funcionales basados en el modelo MapReduce, implementado por plantillas de C++, que pueden implementar rápidamente modelos de computación paralela y en serie de alto rendimiento en FPGA con parámetros simples especificados. El uso de esta biblioteca de patrones permite una adaptación flexible de estructuras paralelas y de flujo en algoritmos, lo que mejora en gran medida la eficiencia de codificación. Las contribuciones de este documento son las siguientes. (1) Se definen cuatro operadores funcionales estándar adecuados para la computación paralela de hardware. (2) Se describen patrones de programación concurrente funcional basados en plantillas de C++ y Xilinx HLS. (3) La eficiencia de este paradigma de programación se verifica con dos algoritmos de diferente complejidad.
Descripción
FPGA ha desempeñado recientemente un papel cada vez más importante en la informática heterogénea, pero los flujos de diseño de nivel de transferencia de registros no solo son ineficientes en el diseño, sino que también requieren que los diseñadores estén familiarizados con la arquitectura del circuito. La síntesis de alto nivel (HLS) permite a los desarrolladores diseñar circuitos FPGA de manera más eficiente con un lenguaje de programación más familiar, un mayor nivel de abstracción y una adaptación automática de las restricciones temporales. Al utilizar herramientas HLS, como Xilinx Vivado HLS, se requieren patrones de diseño específicos y técnicas para crear circuitos de alto rendimiento. Además, diseñar estructuras eficientes de concurrencia y flujo de datos requiere una comprensión profunda del hardware, imponiendo mayores costos de aprendizaje a los programadores. En este documento, proponemos un conjunto de bibliotecas de patrones funcionales basados en el modelo MapReduce, implementado por plantillas de C++, que pueden implementar rápidamente modelos de computación paralela y en serie de alto rendimiento en FPGA con parámetros simples especificados. El uso de esta biblioteca de patrones permite una adaptación flexible de estructuras paralelas y de flujo en algoritmos, lo que mejora en gran medida la eficiencia de codificación. Las contribuciones de este documento son las siguientes. (1) Se definen cuatro operadores funcionales estándar adecuados para la computación paralela de hardware. (2) Se describen patrones de programación concurrente funcional basados en plantillas de C++ y Xilinx HLS. (3) La eficiencia de este paradigma de programación se verifica con dos algoritmos de diferente complejidad.