Diferenza entre GPU e FPGA
Os rápidos avances na tecnoloxía VLSI nas últimas décadas permitiron a fabricación de miles de millóns de transistores nun só chip. Este avance tecnolóxico levou ao deseño e desenvolvemento de hardware moito máis rápido e eficiente en enerxía. O aumento rápido das velocidades de reloxo e maiores anchos de banda de memoria provocaron un mellor rendemento. E a mellora no rendemento dun núcleo dos procesadores de propósito xeral diminuíu debido á diminución da taxa de aumento das frecuencias operativas. As dúas razóns principais para iso son a crecente brecha entre o procesador e a velocidade da memoria e as limitacións na fonte de alimentación. Para resolver estes problemas, a industria dos microprocesadores pasou aos procesadores multi-core. Outras alternativas viables viñeron á luz, ademais de procesadores multi-núcleo para superar estes pescozos de botella, incluíndo ICs deseñados a medida e FPGAs reprogramables e GPU tamén. Entón, que preferirías para os teus requisitos de computación: GPU ou FPGA?

Que é a GPU?
A Unidade de Procesamento de Gráficos (GPU), máis coñecida como tarxeta gráfica ou tarxeta de vídeo, é un procesador gráfico para o manexo de información gráfica para a saída nunha pantalla. A GPU é un procesador especializado deseñado inicialmente para satisfacer a necesidade de acelerar a representación gráfica, principalmente para aumentar o rendemento gráfico dos xogos nun ordenador. De feito, a maioría das GPU de consumo dedícanse a obter un rendemento gráfico e visuales superiores para permitir un xogo real. Pero as GPU actuais son moito máis que os ordenadores persoais nos que apareceron por primeira vez.
Antes da chegada das GPU, a computación de propósito xeral, tal e como a coñecemos, só era posible coas CPU, que foron as primeiras unidades de procesamento convencionais fabricadas tanto para usos de consumidores como para computación avanzada. A computación da GPU evolucionou drasticamente durante as últimas décadas ata atopar un amplo uso na investigación en torno á aprendizaxe automática, IA e aprendizaxe profunda. A GPU subiu de nivel coa introdución de API de GPU como Compute Unified Device Architecture (CUDA), que abriu o camiño ao desenvolvemento de bibliotecas para redes neuronais profundas.

Que é FPGA?
Field Programmable Gate Array (FPGA) é un animal completamente diferente que levou o rendemento da computadora GPU a un nivel completamente novo, ofrecendo un rendemento superior en aplicacións de redes neuronais profundas (DNN) ao tempo que demostrou un consumo de enerxía mellorado. Os FPGA utilizáronse inicialmente para conectar compoñentes electrónicos xuntos, como controladores de bus ou procesadores, pero co paso do tempo, o seu panorama de aplicacións transformouse drasticamente. Os FPGA son dispositivos semicondutores que se poden programar electrónicamente para converterse en calquera tipo de circuíto ou sistema dixital. Os FPGA ofrecen unha mellor flexibilidade e capacidades de prototipado rápido en comparación cos deseños personalizados. Altera Corporation, con sede en San José, California, é un dos maiores produtores de FPGA e en 2015 a compañía foi adquirida por Intel. Son moi diferentes do hardware baseado en instrucións, como as GPU e a mellor parte é que se poden reconfigurar para que coincidan cos requirimentos de cargas de traballo máis intensivas en datos, como as aplicacións de aprendizaxe automática.
Diferenza entre GPU e FPGA
Tecnoloxía
- A GPU é un circuíto electrónico especializado deseñado inicialmente para atender a necesidade de acelerar a representación gráfica para computación científica e de enxeñaría de propósito xeral. As GPU están deseñadas para funcionar de xeito único con datos de instrución múltiple (SIMD). A GPU descarga algunhas das porcións do código que necesitan moita enerxía acelerando o rendemento das aplicacións que se executan na CPU. Os FPGA, por outra banda, son dispositivos semicondutores que se poden programar electrónicamente para converterse en calquera tipo de circuíto ou sistema dixital que queiras.
Latencia
- As FPGA ofrecen unha menor latencia que as GPU, o que significa que están optimizadas para procesar aplicacións en canto a entrada se dá cun atraso mínimo. A arquitectura do FPGA permítelle acadar unha elevada potencia computacional sen o complexo proceso de deseño, o que o fai ideal para as aplicacións de menor latencia. Logran unha capacidade de cálculo significativamente maior en menos tempo posible en comparación coas GPU, que relativamente teñen que evolucionar para manterse relevantes.
Eficiencia de enerxía
- A eficiencia enerxética foi unha métrica de rendemento importante durante anos e os FPGA tamén sobresaen nisto porque son coñecidos pola súa eficiencia de enerxía. Poden soportar velocidades moi elevadas de rendemento de datos en relación ao procesamento paralelo en circuítos implementados no tecido reconfigurable. O mellor dos FPGA é que se pode reconfigurar, o que lles ofrece unha flexibilidade que lles proporciona unha vantaxe sobre os seus homólogos GPU para certos dominios de aplicación. Moitas das operacións de datos amplamente utilizadas pódense implementar de xeito eficiente en FPGA mediante a programabilidade de hardware. As GPU tamén son eficientes no consumo de enerxía, pero só para fluxos SIMD.
Operacións en coma flotante
- Moitas aplicacións informáticas de alto rendemento, como a aprendizaxe profunda, requiren unha forte dependencia das operacións de punto flotante. Aínda que a arquitectura flexible dos FPGA demostra un excelente potencial en redes escasas, que son un dos temas máis quentes nas aplicacións ML, sofren para acadar velocidades máis altas para aplicacións que fan un uso extensivo das operacións aritméticas de punto flotante. As operacións en coma flotante son algo realmente bo nas GPU. A GPU máis rápida ten un rendemento en punto flotante máximo de 15 TFLOPS.
GPU vs. FPGA: gráfico de comparación

Resumo
En poucas palabras, as GPU permiten un ambiente de desenvolvemento flexible e tempos de entrega máis rápidos, pero as FPGA ofrecen unha flexibilidade moito mellor e capacidades de prototipado rápido. Aínda que as GPU son as mellores cando se trata de aplicacións de computación de alto rendemento que dependen de operacións aritméticas de punto flotante, as FPGA son excelentes para aplicacións que necesitan enerxía e a súa latencia é moito máis determinista porque son procesadores especializados que se poden reconfigurar electrónicamente para converterse en calquera tipo de circuíto ou sistema dixital. Nalgunhas áreas de aplicación, os FPGA son moi difíciles de superar, como aplicacións militares como os sistemas de guía de mísiles, que requiren unha baixa latencia.
- Diferenza entre as fichas funxibles e as non funxibles - 28 de agosto de 2021
- Diferenza entre GitHub e ClearCase - 28 de agosto de 2021
- Diferenza entre visión por computador e procesamento de imaxes - 28 de agosto de 2021