FPGA: por qué no es lo mismo que una GPU y qué diferencias tiene con un ASIC
A la hora de realizar tareas de cálculo muy complejas, un usuario puede decidirse por emplear diferentes tipos de dispositivos, como un procesador, una GPU, un ASIC o bien, un FPGA. Pero, cuando tenemos en cuenta el costo de este tipo de dispositivos, lo que se suele buscar es que sean lo más baratos posible. Y es en este aspecto donde, tanto el ASIC como el FPGA suelen imponerse a los procesadores y GPU. Y, en ciertas ocasiones, también al ASIC por una característica que posee, y de la que carece el ASIC.
La definición corta de lo que es un FPGA (Field-Programmable Gate Array) sería que es un dispositivo que se ha creado para desarrollar solo una tarea. Pero esa tarea la realiza de una manera extremadamente eficiente. Mucho más que cualquier procesador o GPU.
FPGA se emplean en un gran número de dispositivos, como smartphones, vehículos de conducción autónoma, cámaras y monitores, dispositivos para el procesado de imágenes y sistemas de seguridad. No solo en estos dispositivos, sino también en otros mercados como la industria aeroespacial y de defensa o en equipamiento médico. Y es que una de las virtudes que poseen las FPGA (especialmente las de gama alta) son su enorme rendimiento en operaciones de coma flotante, así como de operaciones integer, que pueden llegar a ser superiores a las que se pueden conseguir empleando un ASIC.
En qué se diferencia un FPGA de un ASIC y una GPU
La principal diferencia este estos dispositivos y una GPU (que también son notables por sus operaciones de coma flotante) es que el FPGA solo está diseñado para hacer una cosa en un determinado momento. Mientras que una GPU posee una enorme versatilidad, inherente a su propio diseño. El hecho que el FPGA sea más sencillo de diseñar y programar es lo que lo hace ser mucho más barato de emplear en todos los campos que hemos mencionado previamente.
Claro que siempre podréis decir que el ASIC (Application Specific Integrated Circtuit) hace más o menos lo mismo que el FPGA y no os faltaría razón. Pero hay una diferencia primordial entre ambos tipos de dispositivos: el ASIC no se puede reprogramar para que haga algo diferente. Es decir, un ASIC que se ha diseñado para realizar minería de criptomonedas, solo va a poder minar criptomonedas durante toda su vida operativa. E incluso, solo podrá minar un tipo específico de criptomoneda. Dicho de otra manera: un ASIC para minar Bitcoin no puede minar Ethereum.
Sin embargo, la gran ventaja que posee el FPGA sobre el ASIC es que puede ser reprogramado internamente para hacer otra tarea completamente diferente a la que estaba haciendo de manera inicial. Esto significa que los algoritmos lógicos del dispositivo se pueden cambiar o incluso, actualizar por nuevas versiones que hagan que el dispositivo realice su tarea, de una manera mucho más eficiente. Y hay que tener en cuenta que los modelos de la gama alta de este tipo de dispositivos pueden contener millones de puertas lógicas.
Esta es una flexibilidad de la que carecen los ASIC. Y es por esto que los FPGA suelen ser preferidos por muchos fabricantes que necesitan un dispositivo más sencillo y barato de fabricar que una CPU/GPU, pero que posea algo de la flexibilidad que caracteriza a estos dos componentes.