FPGA vs. GPU

FPGA vs. GPU para el aprendizaje profundo

Las FPGAs son una opción excelente para las aplicaciones del aprendizaje profundo que requieren baja latencia y flexibilidad.

Beneficios del aprendizaje profundo con FPGA:

  • Las FPGAs ofrecen una flexibilidad y una rentabilidad increíbles con circuitos que se pueden reprogramar para diferentes funcionalidades.

  • En comparación con las GPUs, las FPGAs pueden ofrecer un desempeño superior en las aplicaciones del aprendizaje profundo en las que la baja latencia es fundamental.

  • Las FPGAs se pueden ajustar con precisión para equilibrar la eficiencia energética con los requisitos de desempeño.

author-image

Por

¿Qué es una FPGA?

Las matrices de puertas programables en campo (FPGA) son circuitos integrados con un tejido de hardware programable. A diferencia de las unidades de procesamiento de gráficos (GPUs) o los ASICs, los circuitos dentro de un chip de FPGA no están grabados definitivamente: se los puede reprogramar según sea necesario. Esta capacidad convierte a las FPGAs en una excelente alternativa a los ASICs, cuyo diseño y fabricación requieren un largo tiempo de desarrollo y una inversión significativa.

La industria tecnológica adoptó las FPGAs para el aprendizaje automático y el aprendizaje profundo hace relativamente poco. En 2010, Microsoft Research demostró uno de los primeros casos de uso de IA en las FPGAs como parte de sus esfuerzos por acelerar las búsquedas en la web.1Las FPGAs ofrecían una combinación de velocidad, programabilidad y flexibilidad, y proporcionaban un desempeño sin el costo ni la complejidad de desarrollar circuitos integrados específicos de la aplicación (ASICs) personalizados. Cinco años más tarde, el motor de búsqueda Bing de Microsoft utilizaba las FPGAs en producción, lo que demostraba su valor para las aplicaciones del aprendizaje profundo. Al utilizar las FPGAs para acelerar la clasificación de las búsquedas, Bing consiguió un aumento del 50 % en el rendimiento.1

¿Por qué elegir una FPGA para el aprendizaje profundo?

Las primeras cargas de trabajo de IA, como el reconocimiento de imágenes, dependían en gran medida del paralelismo. Dado que las GPUs se diseñaron específicamente para renderizar video y gráficos, se popularizó su uso para el aprendizaje automático y el aprendizaje profundo. Las GPUs se destacan en el procesamiento paralelo, ya que realizan un gran número de operaciones aritméticas en paralelo. En otras palabras, pueden ofrecer una aceleración increíble en casos en los que la misma carga de trabajo se debe ejecutar muchas veces en rápida sucesión.

Sin embargo, ejecutar IA en las GPUs tiene sus límites. Las GPUs no ofrecen tanto desempeño como un ASIC, un chip diseñado específicamente para una determinada carga de trabajo de aprendizaje profundo.

Las FPGAs ofrecen la personalización de hardware con IA integrada y se pueden programar para ofrecer un comportamiento similar al de una GPU o un ASIC. El carácter reprogramable y reconfigurable de una FPGA se presta bien a un panorama de IA en rápida evolución, lo que permite a los diseñadores probar algoritmos y llegar al mercado con rapidez. Las FPGAs ofrecen varias ventajas para las aplicaciones del aprendizaje profundo y otras cargas de trabajo de IA:

Gran desempeño con alto rendimiento y baja latencia: las FPGAs pueden proporcionar de forma inherente una baja latencia, así como una latencia determinista para aplicaciones en tiempo real, como la transmisión de video, la transcripción y el reconocimiento de acciones mediante la introducción directa de video en la FPGA, sin necesidad de una CPU. Los diseñadores pueden crear una red neuronal desde cero y estructurar la FPGA para que se adapte mejor al modelo.
Excelente relación calidad-precio: las FPGAs se pueden reprogramar para diferentes funcionalidades y tipos de datos, lo que las convierte en una de las opciones de hardware más rentables que existen. Además, las FPGAs se pueden utilizar para algo más que la IA. Al integrar capacidades adicionales en el mismo chip, los diseñadores pueden ahorrar costos y espacio en la placa. Las FPGAs tienen largos ciclos de vida, por lo que los diseños de hardware basados en FPGAs pueden tener una larga vida útil, medida en años o décadas. Esta característica las hace ideales para su uso en los mercados de defensa industrial, de medicina y automotriz.
Bajo consumo de energía: con las FPGAs, los diseñadores pueden ajustar el hardware a la aplicación, lo que ayuda a cumplir los requisitos de eficiencia energética. Las FPGAs también pueden albergar múltiples funciones, lo que aumenta la eficiencia energética del chip. Es posible utilizar una parte de una FPGA para una función, en lugar de todo el chip, lo que permite a la FPGA alojar varias funciones en paralelo. 

Aplicaciones de IA y aprendizaje profundo en FPGAs 

Las FPGAs pueden ofrecer ventajas de desempeño frente a las GPUs cuando la aplicación exige baja latencia y tamaños de lote reducidos; por ejemplo, con el reconocimiento de voz y otras cargas de trabajo de procesamiento del lenguaje natural. Gracias a su interfaz de E/S programable y a su estructura altamente flexible, las FPGAs también son adecuadas para las siguientes tareas:

Superación de cuellos de botella de E/S. Las FPGAs se utilizan a menudo cuando los datos deben atravesar muchas redes diferentes con baja latencia. Son increíblemente útiles para eliminar el almacenamiento en el búfer de memoria y superar los cuellos de botella de E/S, uno de los factores que más limitan el desempeño de los sistemas de IA. Al acelerar la recopilación de datos, las FPGAs pueden acelerar todo el flujo de trabajo de IA.
Integración de IA en las cargas de trabajo. Con las FPGAs, los diseñadores pueden añadir capacidades de IA, como la inspección profunda de paquetes o la detección de fraudes financieros, a las cargas de trabajo existentes.
Habilitación de la fusión de sensores. Las FPGAs se destacan en el manejo de entradas de datos procedentes de varios sensores, como cámaras, LIDAR y sensores de audio. Esta capacidad puede ser muy valiosa en el diseño de vehículos autónomos, robótica y equipos industriales.
Aceleración de clústeres de informática de alto desempeño (HPC). Las FPGAs pueden ayudar a facilitar la convergencia de la IA y la HPC al servir como aceleradores programables para la inferencia. 2
Adición de capacidades adicionales más allá de la IA. Las FPGAs permiten añadir capacidades de seguridad, E/S, redes o de preprocesamiento/postprocesamiento sin necesidad de un chip adicional.

Software y hardware de Intel® FPGA

Uno de los pocos obstáculos que hay que superar al utilizas las FPGAs es que el hardware suele requerir conocimientos especializados de programación. Intel está reduciendo la cantidad de conocimientos necesarios con un modelo de programación basado en software. Este modelo de programación FPGA de nivel superior le permite a un científico de datos o a un desarrollador de modelos crear una red neuronal utilizando un marco común de IA, como TensorFlow o Caffe, e implementarla en una FPGA sin conocer los detalles de la arquitectura FPGA. Intel ha desarrollado varias herramientas que facilitan bastante la programación de las FPGAs:

La Distribución Intel® del kit de herramientas OpenVINO™ les ofrece a los desarrolladores de visión artificial una única herramienta para acelerar los modelos en varias plataformas de hardware, incluidas las FPGAs.
El Paquete Intel® FPGA AI proporciona herramientas y arquitecturas optimizadas para acelerar la inferencia con las FPGAs Intel®. Se interconecta con el kit de herramientas OpenVINO™ y ofrece escalabilidad para admitir redes personalizadas.
Open FPGA Stack (OFS) es una infraestructura de software y hardware de código abierto que proporciona un marco para el desarrollo de cargas de trabajo y plataformas personalizadas basadas en FPGA. Todo el código fuente está disponible en GitHub.

Las soluciones de tecnología de aprendizaje profundo Intel® FPGA abarcan una gama de familias de productos y herramientas de software para ayudar a reducir el tiempo y el costo de desarrollo. Los siguientes productos de hardware son especialmente valiosos para los casos de uso del aprendizaje profundo:

Las FPGAs y los sistemas integrados en chip Intel Agilex® 5 son FPGAs de gama media que cuentan con el primer bloque DSP del sector mejorado con tensores de IA, que ofrece funcionalidades de IA y procesamiento digital de señales (DSP) de alta eficiencia. Esta familia de productos ofrece, en promedio, un 50 % más de desempeño de la estructura y hasta un 42 % menos de consumo total de energía en comparación con la generación anterior de FPGAs Intel®.3

Cartera para inteligencia artificial de Intel

A medida que crece la adopción de la IA, la gama de aplicaciones y entornos en los que se ejecuta, desde los dispositivos de endpoints hasta los servidores de edge y centros de datos, se volverá increíblemente diversa. Ninguna arquitectura, chip o factor de forma estará cualificado para satisfacer los requisitos de todas las aplicaciones de IA. Los arquitectos de infraestructuras deben tener acceso a la arquitectura que deseen.

Intel ofrece cuatro tipos de chips de silicio que permiten la proliferación de la IA: FPGAs, GPUs y ASICs para aceleración, y CPUs para informática de uso general. Cada arquitectura satisface necesidades únicas, de modo que los arquitectos de infraestructura pueden elegir la arquitectura exacta que necesitan para respaldar cualquier aplicación de IA. Con una amplia gama de tipos de informática optimizados en cuanto a energía y desempeño, siempre obtendrán las herramientas adecuadas para el trabajo en cuestión.