Resumen:
|
[ES] El uso de la FPGA aumenta actualmente gracias a sus capacidades, y ya se puede
encontrar en diversas partes como, en la industria, en el campo de la medicina, centro de
datos, etc.
Aunque la FPGA tienden a ser ...[+]
[ES] El uso de la FPGA aumenta actualmente gracias a sus capacidades, y ya se puede
encontrar en diversas partes como, en la industria, en el campo de la medicina, centro de
datos, etc.
Aunque la FPGA tienden a ser complejas en cuanto a su configuración y suele ser
una barrera para su uso. Para ello diversas marcas sacaron herramientas especializas en
la síntesis de código escritos en lenguajes de propósito general, como: C/C++, Java, SystemC. No obstante, el HLS o High Level Synthesis pueda llegar a simplificar el proceso
de diseño, pero aún se necesitan algunos conocimientos para el uso de este, aunque estos
conocimientos serán mucho menos densos.
En este trabajo, nos centraremos en analizar el flujo de diseño en general de la herramienta HLS, para seguidamente centrarnos en el HLS de Xillinx, Vitis HLS. Para así,
analizar su funcionamiento, que restricciones encontramos o que tipo de optimizaciones
nos aporta. Para finalmente realizar un caso practico donde comprobaremos el funcionamiento mediante un código sintetizable e introduciremos distintas optimizaciones para
ver cual nos interesa y porque, en uno de los algoritmos que más popularidad están ganado actualmente por su aplicación en las inteligencias artificiales.
[-]
[EN] The use of FPGA is increasing due to its capabilities, and it can already be found in
various places such as: industry, the field of medicine, data centers, etc.
Although FPGA technology can be complex in terms of ...[+]
[EN] The use of FPGA is increasing due to its capabilities, and it can already be found in
various places such as: industry, the field of medicine, data centers, etc.
Although FPGA technology can be complex in terms of configurations, various companies decided to create a specialized tools that are able to synthetize code wrote in languages like C/C++, Java or SystemC as an input, and from that entry, HLS created a design without adding more complexity to the process. Nevertheless, using HLS tools
requires knowledge about some concepts, but these concepts are less dense.
Firstly, we will analyze the design flow of these tools. Secondly, we will analyze Vitis
HLS and understand how it works, which restrictions there are and which optimization
types there are. Finally, we will present a practical case where we prove how a synthesizable code works and we will use a different optimizations to seek the best solution.
[-]
[CA] L’ús de les FPGA augmenta actualment gràcies a les seues capacitats, i ja es pot trobar
en diversos llocs poden ser: en la indústria, en el camp de la medicina, centre de dades,
etc.
Encara que la tecnologia FPGA ...[+]
[CA] L’ús de les FPGA augmenta actualment gràcies a les seues capacitats, i ja es pot trobar
en diversos llocs poden ser: en la indústria, en el camp de la medicina, centre de dades,
etc.
Encara que la tecnologia FPGA tendeix a ser complexa quant a configuració i sol ser
una barrera per al seu ús. Diverses marques van traure ferramentes especialitzes en la
sintesi de codi escrits en llenguatges de proposit general, com: C/C++, Java, SystemC.
No obstant això, el HLS o High Level Synthesis pot arribar a simplifacar el procés de
disseny, però es necesiten alguns coneixements per a l’ús d’aquest, encara que aquests
coneixements seran molt menys densos.
En aquest treball, ens centrarem en analitzar el flux de disseny en general de la ferramenta HLS, per a seguidament centrar-nos en el HLS de Xillinx, Vitis HLS. Per a despres
poder analitzar el seu funcionament, que restriccions ens imposa o que tipus d’optimitzacions ens aporta. Per a finalment realitzar un cas practic on comprovarem com funcionament a partir de un codi sintetizable y quines optimizacions en interesen pera millorar
el nostre diseny en un dels algorismes que mes popularitat esta guanyant actualment pel
seu la seua aplicació en les intel·ligències artificials.
[-]
|