Utilización de FPGAs como aceleradores de cálculo

Oliver, Juan Pablo - Pérez Acle, Julio

Resumen:

Si bien las computadoras son cada vez más rápidas, las necesidades de cálculo también se hacen cada vez más pesadas y consumen más tiempo y recursos. Existen varias formas de aumentar la velocidad de un computador: procesador más rápido, varios procesadores trabajando en paralelo que se distribuyan tareas, etc. Este artículo describe experiencias realizadas utilizando otra forma de aumentar la velocidad con el uso de circuitos electrónicos dedicados que realicen cierta parte del trabajo y compartan la tarea con el procesador central de una computadora. Esta alternativa hasta hace poco presentaba un costo tan alto que era impensable su utilización en términos generales, pero con la aparición de chips de gran tamaño programables por el usuario (FPGAs), y la posibilidad de reprogramarlos infinitas veces de acuerdo a las necesidades de la aplicación concreta hacen que sea una opción viable. Para poder usar esta tecnología en forma amplia es necesario resolver varias etapas, principalmente el diseño de los circuitos a programar en los chips así como el diseño de las interfaces hardware - software de aplicación. La arquitectura utilizada se basó en una placa reconfigurable funcionando como un coprocesador en conjunto con un PC, y se realizaron bibliotecas hardware para acelerar ciertos cálculos específicos. Los algoritmos probados han sido de redes neuronales, tratamiento de imágenes, y encriptado.


Although computers are becoming faster all the time, the need for calculation is also heavier and time consuming. There are various ways to increment the speed of a computer: a faster processor, many processors working in parallel and sharing tasks, and so on. This paper describes experiences where a different approach was used to increase speed, using electronic circuits dedicated to do part of the job and collaborate with the main processor of a computer. This alternative was so expensive until recently that its use was unthinkable in general terms. But when big sized user programmable chips (FPGAs) appeared, together with the possibility of infinite reprogramming according to the needs of the given applications, this became a realistic option. To be able to use this technology widely it is necessary to solve many stages, mainly the design of the circuits to be programmed in the chips as well as the designing of the hardware - software interfaces of application. The architecture that was used was based on a reconfigurable board working as a coprocessor together with a PC, and hardware libraries were implemented to accelerate certain specific calculations. The tested algorithms have been artificial neural networks, image processing and data encryption.


Detalles Bibliográficos
2001
FPGA
Lógica programable
Reconfigurable hardware
ELECTRÓNICA
Español
Universidad de la República
COLIBRI
https://hdl.handle.net/20.500.12008/21277
Acceso abierto
Licencia Creative Commons Atribución – No Comercial – Sin Derivadas (CC - By-NC-ND)
Resumen:
Sumario:Si bien las computadoras son cada vez más rápidas, las necesidades de cálculo también se hacen cada vez más pesadas y consumen más tiempo y recursos. Existen varias formas de aumentar la velocidad de un computador: procesador más rápido, varios procesadores trabajando en paralelo que se distribuyan tareas, etc. Este artículo describe experiencias realizadas utilizando otra forma de aumentar la velocidad con el uso de circuitos electrónicos dedicados que realicen cierta parte del trabajo y compartan la tarea con el procesador central de una computadora. Esta alternativa hasta hace poco presentaba un costo tan alto que era impensable su utilización en términos generales, pero con la aparición de chips de gran tamaño programables por el usuario (FPGAs), y la posibilidad de reprogramarlos infinitas veces de acuerdo a las necesidades de la aplicación concreta hacen que sea una opción viable. Para poder usar esta tecnología en forma amplia es necesario resolver varias etapas, principalmente el diseño de los circuitos a programar en los chips así como el diseño de las interfaces hardware - software de aplicación. La arquitectura utilizada se basó en una placa reconfigurable funcionando como un coprocesador en conjunto con un PC, y se realizaron bibliotecas hardware para acelerar ciertos cálculos específicos. Los algoritmos probados han sido de redes neuronales, tratamiento de imágenes, y encriptado.