Javascript must be enabled to continue!
Comparación de enfoques de desarrollo HDL y HLL en FPGA para aplicaciones de procesamiento de imágenes
View through CrossRef
Desde su invención a medidados de los 90, las FPGA han destacado por su gran poder de cómputo, bajo consumo energético y alta flexibilidad al reconfigurar su arquitectura interna para adaptarse a las aplicaciones. Esto convirtió a las FPGA en una excelente alternativa frente a los ASIC que presentaban una arquitectura fija y prolongados tiempos de diseño y fabricación, a pesar que contaban con eficiencia energética y rendimientos superiores a otras tecnologías. Una de las áreas que más se favoreció con la incorporación de FPGA es el procesamiento digital de imágenes, la cual consiste de técnicas y algoritmos computacionales que se aplican sobre una imagen para extraer información de ella o mejorar sus características. A pesar de sus virtudes, las FPGA no tuvieron la aceptación esperada. Los lenguajes tradicionales de descripción de hardware (HDL) para programar FPGA como VHDL y Verilog resultaron poseer demasiadas palabras, ser complejos y propensos a errores. Esto, sumado a la creciente complejidad de los sistemas y los acotados tiempos de mercado, limitaron su uso.% a un grupo reducido de especialistas en hardware. Es por ello que desde el año 2000, los fabricantes comenzaron a ofrecer herramientas de desarrollo de alto nivel (HLS) como Catapult C, Bluespec y Autopilot para aumentar el nivel de abstracción y reducir la complejidad en el desarrollo de sistemas. Las HLS obtienen una descripción HDL del sistema a partir de un diseño en lenguaje de alto nivel (HLL) como C, C++ o System C. Esto permitió a los desarrolladores de software utilizar lenguajes de alto nivel para diseñar sistemas en FPGA y beneficiarse con las ventajas de esta tecnología. A su vez, los fabricantes comenzaron a incorporar núcleos de procesamiento x86 y ARM a las FPGA lo que favoreció aún mas el uso de HLL. Estas arquitecturas heterogeneas denominadas Sistemas en Chip (SoC) permitieron balancear la carga computacional entre software y hardware utilizando el mismo algoritmo de alto nivel. Sin embargo, los HLL fueron creados para desarrollar aplicaciones que ejecuten en procesadores secuenciales, por lo que presentaron algunos inconvenientes al ser utilizados en FPGA de naturaleza concurrente. Como consecuencia, los HLL incorporaron extensiones y directivas para suplir algunas falencias y permitir, entre otras cosas, sintetizar interfaces de comunicación, describir señales de cualquier longitud de bits y ejecutar tareas en forma concurrente. Por otro lado, se impusieron restricciones al lenguaje, por ejemplo, no permitir el uso de memoria dinámica. Por lo tanto, al momento de elegir un lenguaje de programación para FPGAs resulta indispensable conocer sus fortalezas y debilidades. Es por ello que esta investigación tiene como objetivo general comparar los enfoques de desarrollo HDL y HLL en FPGA con respecto a las prestaciones (rendimiento, uso de recursos y esfuerzo de programación) de sus implementaciones para aplicaciones de detección de contornos de imágenes. Para realizar el estudio comparativo, se eligió como caso de estudio un filtro de detección de contornos Sobel, ya que al ser un filtro convolucional, resulta representativo de muchos otros. Luego, se desarrollaron dos implementaciones completas y funcionales siguiendo los enfoques HDL y HLL. Ambas propuestas fueron sometidas a pruebas sobre una plataforma SoC ZYBO usando cuatro imágenes extraídas de repositorios públicos. El diseño, implementación e integración de cada sistema se realizó con las herramientas de Xilinx Vivado 2019.1, Vivado HLS 2019.1 y XSKD 2019.1, sin el uso de librerías de imagen/video, sistema operativo o software adicional. Los resultados obtenidos demostraron que la implementación HDL es levemente superior a la versión HLS en cuando a eficiencia en el uso de recursos y rendimiento. Respecto al primero, la versión HDL empleó menor cantidad de recursos aunque en ninguna de las implementaciones representó una restricción de diseño. En cuanto al rendimiento, la versión HDL obtuvo menor throughput, latencia y tiempo de ejecución. En el caso de este último, la versión en HDL alzanzó una aceleración mayor a 6x en la imagen de 512x512, aunque esa diferencia disminuyó al aumentar el tamaño de las imágenes obteniendo una aceleración de sólo 1.4x en la imagen de tamaño 1920x1080. Sin embargo, el esfuerzo de programación en la implementación de HDL fue significativamente mayor. El diseño en HDL requirió especificaciones de bajo nivel, como la descripción de interfaces AXI4 y el solapamiento de tareas, que complejizaron el algoritmo, a diferencia del diseño de alto nivel que resolvió ambas especificaciones por medio de directivas de compilador. En consecuencia, la descripción en HDL no sólo aumentó el tiempo de desarrollo sino que los diseños tuvieron más líneas de código (SLOC), fue más difícil de programar y menos reutilizable respecto a la versión de alto nivel. Luego del análisis de los resultados obtenidos se concluyó que el esfuerzo de programación requerido por HDL fue significativamente mayor respecto al de HLS y sólo se obtuvo una leve mejora en uso de recursos y rendimiento. En contextos similares a los de este estudio, HDL sólo resultaría conveniente en los diseños donde el uso de recursos y/o el tiempo de respuesta fueran parámetros de diseño sumamente críticos. De otra forma, HLS es una mejor opción que permite reducir significativamente el esfuerzo de programación y el tiempo de desarrollo.
Title: Comparación de enfoques de desarrollo HDL y HLL en FPGA para aplicaciones de procesamiento de imágenes
Description:
Desde su invención a medidados de los 90, las FPGA han destacado por su gran poder de cómputo, bajo consumo energético y alta flexibilidad al reconfigurar su arquitectura interna para adaptarse a las aplicaciones.
Esto convirtió a las FPGA en una excelente alternativa frente a los ASIC que presentaban una arquitectura fija y prolongados tiempos de diseño y fabricación, a pesar que contaban con eficiencia energética y rendimientos superiores a otras tecnologías.
Una de las áreas que más se favoreció con la incorporación de FPGA es el procesamiento digital de imágenes, la cual consiste de técnicas y algoritmos computacionales que se aplican sobre una imagen para extraer información de ella o mejorar sus características.
A pesar de sus virtudes, las FPGA no tuvieron la aceptación esperada.
Los lenguajes tradicionales de descripción de hardware (HDL) para programar FPGA como VHDL y Verilog resultaron poseer demasiadas palabras, ser complejos y propensos a errores.
Esto, sumado a la creciente complejidad de los sistemas y los acotados tiempos de mercado, limitaron su uso.
% a un grupo reducido de especialistas en hardware.
Es por ello que desde el año 2000, los fabricantes comenzaron a ofrecer herramientas de desarrollo de alto nivel (HLS) como Catapult C, Bluespec y Autopilot para aumentar el nivel de abstracción y reducir la complejidad en el desarrollo de sistemas.
Las HLS obtienen una descripción HDL del sistema a partir de un diseño en lenguaje de alto nivel (HLL) como C, C++ o System C.
Esto permitió a los desarrolladores de software utilizar lenguajes de alto nivel para diseñar sistemas en FPGA y beneficiarse con las ventajas de esta tecnología.
A su vez, los fabricantes comenzaron a incorporar núcleos de procesamiento x86 y ARM a las FPGA lo que favoreció aún mas el uso de HLL.
Estas arquitecturas heterogeneas denominadas Sistemas en Chip (SoC) permitieron balancear la carga computacional entre software y hardware utilizando el mismo algoritmo de alto nivel.
Sin embargo, los HLL fueron creados para desarrollar aplicaciones que ejecuten en procesadores secuenciales, por lo que presentaron algunos inconvenientes al ser utilizados en FPGA de naturaleza concurrente.
Como consecuencia, los HLL incorporaron extensiones y directivas para suplir algunas falencias y permitir, entre otras cosas, sintetizar interfaces de comunicación, describir señales de cualquier longitud de bits y ejecutar tareas en forma concurrente.
Por otro lado, se impusieron restricciones al lenguaje, por ejemplo, no permitir el uso de memoria dinámica.
Por lo tanto, al momento de elegir un lenguaje de programación para FPGAs resulta indispensable conocer sus fortalezas y debilidades.
Es por ello que esta investigación tiene como objetivo general comparar los enfoques de desarrollo HDL y HLL en FPGA con respecto a las prestaciones (rendimiento, uso de recursos y esfuerzo de programación) de sus implementaciones para aplicaciones de detección de contornos de imágenes.
Para realizar el estudio comparativo, se eligió como caso de estudio un filtro de detección de contornos Sobel, ya que al ser un filtro convolucional, resulta representativo de muchos otros.
Luego, se desarrollaron dos implementaciones completas y funcionales siguiendo los enfoques HDL y HLL.
Ambas propuestas fueron sometidas a pruebas sobre una plataforma SoC ZYBO usando cuatro imágenes extraídas de repositorios públicos.
El diseño, implementación e integración de cada sistema se realizó con las herramientas de Xilinx Vivado 2019.
1, Vivado HLS 2019.
1 y XSKD 2019.
1, sin el uso de librerías de imagen/video, sistema operativo o software adicional.
Los resultados obtenidos demostraron que la implementación HDL es levemente superior a la versión HLS en cuando a eficiencia en el uso de recursos y rendimiento.
Respecto al primero, la versión HDL empleó menor cantidad de recursos aunque en ninguna de las implementaciones representó una restricción de diseño.
En cuanto al rendimiento, la versión HDL obtuvo menor throughput, latencia y tiempo de ejecución.
En el caso de este último, la versión en HDL alzanzó una aceleración mayor a 6x en la imagen de 512x512, aunque esa diferencia disminuyó al aumentar el tamaño de las imágenes obteniendo una aceleración de sólo 1.
4x en la imagen de tamaño 1920x1080.
Sin embargo, el esfuerzo de programación en la implementación de HDL fue significativamente mayor.
El diseño en HDL requirió especificaciones de bajo nivel, como la descripción de interfaces AXI4 y el solapamiento de tareas, que complejizaron el algoritmo, a diferencia del diseño de alto nivel que resolvió ambas especificaciones por medio de directivas de compilador.
En consecuencia, la descripción en HDL no sólo aumentó el tiempo de desarrollo sino que los diseños tuvieron más líneas de código (SLOC), fue más difícil de programar y menos reutilizable respecto a la versión de alto nivel.
Luego del análisis de los resultados obtenidos se concluyó que el esfuerzo de programación requerido por HDL fue significativamente mayor respecto al de HLS y sólo se obtuvo una leve mejora en uso de recursos y rendimiento.
En contextos similares a los de este estudio, HDL sólo resultaría conveniente en los diseños donde el uso de recursos y/o el tiempo de respuesta fueran parámetros de diseño sumamente críticos.
De otra forma, HLS es una mejor opción que permite reducir significativamente el esfuerzo de programación y el tiempo de desarrollo.
Related Results
PREVENÇÃO DA TROMBOSE VENOSA PROFUNDA NA GRAVIDEZ PELA ENFERMAGEM NA APS
PREVENÇÃO DA TROMBOSE VENOSA PROFUNDA NA GRAVIDEZ PELA ENFERMAGEM NA APS
PREVENÇÃO DA TROMBOSE VENOSA PROFUNDA NA GRAVIDEZ PELA ENFERMAGEM NA APS
Danilo Hudson Vieira de Souza1
Priscilla Bárbara Campos
Daniel dos Santos Fernandes
RESUMO
A gravidez ...
Method of QoS evaluation of FPGA as a service
Method of QoS evaluation of FPGA as a service
The subject of study in this article is the evaluation of the performance issues of cloud services implemented using FPGA technology. The goal is to improve the performance of clou...
Аналіз застосування технологій ПЛІС в складі IoT
Аналіз застосування технологій ПЛІС в складі IoT
The subject of study in this article and work is the modern technologies of programmable logic devices (PLD) classified as FPGA, and the peculiarities of its application in Interne...
Are We Missing the Mark? Understanding Health Literacy in A Rural-Border Hospital
Are We Missing the Mark? Understanding Health Literacy in A Rural-Border Hospital
Low health literacy (LHL) significantly impacts patients’ ability to participate actively in their healthcare. Registered nurses (RNs) play a crucial role in identifying LHL and ad...
Geotechnical properties of hazardous landfill leachate-contaminated sand
Geotechnical properties of hazardous landfill leachate-contaminated sand
AbstractMany industrial activities dispose of their waste in the sand soil of the El-Khatatba region of Egypt. There is a need to reuse the site in building markets and shopping st...
The lipidome and proteome of high-density lipoprotein are altered in menopause
The lipidome and proteome of high-density lipoprotein are altered in menopause
High-density lipoprotein particles (HDL) possess anti-inflammatory, anti-thrombotic, cytoprotective, and anti-oxidative properties, thus protecting against cardiovascular diseases....
ASSA13-16-3 Dyslipidemia in Chinese Elderly Patients with Acute Myocardial Infarction
ASSA13-16-3 Dyslipidemia in Chinese Elderly Patients with Acute Myocardial Infarction
Objective
To investigate lipid levels in Chinese elderly patients with acute myocardial infarction (AMI), subsequently to grasp the characteristics of dyslipidemi...
Estudios embriológicos y de desarrollo de flores e inflorescencias en Barnadesioideae (Asteraceae)
Estudios embriológicos y de desarrollo de flores e inflorescencias en Barnadesioideae (Asteraceae)
La familia Asteraceae es una de las más diversas de las Angiospermas y varios análisis filogenéticos la han ubicado como el grupo hermano de la familia Calyceraceae, en un clado bi...


