Optimizando el rendimiento de CNN 3D en dispositivos FPGA
Una nueva herramienta mejora la eficiencia de las CNNs 3D en plataformas FPGA.
― 7 minilectura
Tabla de contenidos
- ¿Qué son las 3D CNNs?
- El Reto de las 3D CNNs
- Reconocimiento de Acciones Humanas (HAR)
- Principales Contribuciones
- Trabajos Anteriores sobre 3D CNNs
- Familia de Modelos X3D
- Interpretación a Nivel de Hardware
- Optimización de Streaming
- Exploración del Espacio de Diseño
- Particionamiento del Modelo 3D CNN
- Modelado de Rendimiento
- Comparación con Trabajos Existentes
- Resultados
- Conclusión
- Fuente original
Las Redes Neuronales Convolucionales Tridimensionales (3D CNNs) son importantes para muchas aplicaciones como vigilancia de video, autos autónomos y monitoreo de acciones humanas. Sin embargo, estas redes necesitan mucha potencia de cómputo y memoria, lo que dificulta su uso en sistemas con recursos limitados. Este artículo habla sobre una nueva herramienta que ayuda a ejecutar mejor las 3D CNNs en dispositivos FPGA, que son flexibles y pueden ofrecer un buen Rendimiento con menos energía.
¿Qué son las 3D CNNs?
Las CNNs bidimensionales se usan comúnmente para tareas como el reconocimiento de imágenes. Con el aumento de aplicaciones en video, hay necesidad de algoritmos que puedan manejar información de tiempo o profundidad. Ahí es donde entran las 3D CNNs. Están diseñadas para aprender patrones de video y datos tridimensionales añadiendo una dimensión extra, lo que les ayuda a captar información útil relacionada con el movimiento o la profundidad.
Las 3D CNNs han mostrado buenos resultados en el Reconocimiento de acciones humanas. Pueden analizar el movimiento a través de diferentes cuadros de video, facilitando el seguimiento de varias actividades humanas sin depender únicamente de métodos centrados en el tiempo como las redes de Memoria a Largo Corto Plazo (LSTM).
El Reto de las 3D CNNs
Aunque las 3D CNNs pueden capturar características relacionadas con el tiempo y la profundidad, también tienen mayores demandas en términos de potencia de procesamiento y memoria en comparación con sus homólogas 2D. Para abordar estos desafíos, se han desarrollado varias opciones de hardware como Unidades de Procesamiento Gráfico (GPUs), FPGAS y Circuitos Integrados de Aplicación Específica (ASICs). Este artículo se centra en el diseño de sistemas que funcionan con FPGAs debido a su adaptabilidad y eficiencia en términos de consumo de energía y rendimiento.
Reconocimiento de Acciones Humanas (HAR)
En el Reconocimiento de Acciones Humanas, un solo clip de video puede generar múltiples clips más pequeños moviendo una ventana de tiempo fija a través del video. Cada uno de estos clips se analiza para determinar la acción que se está realizando. Esto significa que un modelo debe procesar el clip de video varias veces para lograr el rendimiento requerido. Así que, los diseños que se centran en maximizar el rendimiento-cuántos datos se pueden procesar en un cierto tiempo-son cruciales.
Principales Contribuciones
La nueva herramienta presentada en este artículo, conocida como fpgaHART, se centra en optimizar las 3D CNNs para FPGAs. Soporta una amplia gama de modelos y toma en cuenta las características específicas de cada modelo, así como los recursos de hardware disponibles.
La herramienta también mejora un tipo específico de gráfico utilizado en el proceso de mapeo, permitiendo un mejor manejo de modelos complejos comúnmente usados en las 3D CNNs. Se ha llevado a cabo una evaluación exhaustiva en varios dispositivos y modelos para entender su efectividad en aplicaciones del mundo real.
Trabajos Anteriores sobre 3D CNNs
Aunque las 3D CNNs han estado presentes por un tiempo, solo unos pocos estudios han explorado su aceleración en FPGAs. La mayoría de la investigación existente se ha centrado en modelos más antiguos como C3D, que no igualan el rendimiento de modelos más avanzados hoy en día. Algunos investigadores han propuesto arquitecturas de hardware específicamente destinadas a mejorar el rendimiento de las 3D CNNs.
Sin embargo, gran parte de este trabajo previo está limitado a modelos específicos y no aborda las arquitecturas más complejas que se encuentran en los diseños modernos de 3D CNN. El estudio actual tiene como objetivo apoyar estos modelos avanzados que constan de muchas capas y a menudo incluyen estructuras ramificadas.
Familia de Modelos X3D
En 2020, se presentó una serie de modelos 3D CNN eficientes conocidos como X3D. La familia incluye diferentes versiones que van desde pequeñas hasta muy grandes, dependiendo de su complejidad. El modelo más pequeño (X3D-XS) realiza 0.6 mil millones de operaciones de punto flotante (GFLOPs), mientras que el más grande (X3D-XXL) realiza 143.5 GFLOPs.
Los modelos X3D han sido efectivos en varios benchmarks, mostrando un rendimiento sólido en tareas de Reconocimiento de Acciones Humanas. El artículo actual se centra en la versión X3D-M, que encuentra un equilibrio entre carga computacional y precisión.
Interpretación a Nivel de Hardware
Para hacer que las 3D CNNs funcionen de manera eficiente en FPGAs, la nueva herramienta extrae parámetros de la descripción del modelo y los organiza en una estructura de grafo que representa las diferentes capas y sus conexiones. Este grafo ayuda a mapear los componentes de hardware necesarios que realizarán los cálculos requeridos.
La herramienta usa este grafo para estimar cómo se desempeñará cada capa en el hardware, ayudando a asegurar que todo funcione sin problemas. Diferentes tipos de capas, como convoluciones y activaciones, se tratan de maneras que permiten un rendimiento óptimo.
Optimización de Streaming
Uno de los desafíos encontrados fue la capa 3D de Promedio Global, que puede ralentizar el procesamiento debido a su naturaleza de promediar todas las entradas. Para mejorar el rendimiento, la herramienta tiene un método de aproximación que le permite guardar resultados previos en la memoria, reduciendo la necesidad de almacenamiento adicional y ayudando a que la tubería funcione de manera más eficiente.
Exploración del Espacio de Diseño
La herramienta explora cómo diferentes capas del modelo pueden trabajar juntas de manera que maximice el rendimiento. Esto se logra a través de ajustes a los parámetros de estas capas mientras se simulan diferentes configuraciones. Esta exploración ayuda a identificar la mejor configuración para el hardware utilizado.
Particionamiento del Modelo 3D CNN
El proceso de diseño toma dos enfoques principales. Uno implica usar una unidad de procesamiento compartida para todas las capas, mientras que el otro utiliza bloques de hardware dedicados para cada capa, lo que puede ser más eficiente. La flexibilidad de los FPGAs permite crear arquitecturas únicas para diferentes partes del modelo para asegurar un mejor rendimiento.
Esta estrategia de particionamiento tiene como objetivo mejorar el uso de los recursos disponibles, lo que podría llevar a una reducción significativa en la demanda de memoria.
Modelado de Rendimiento
Para evaluar qué tan bien se desempeña un cierto diseño, la herramienta incluye medidas adicionales que evalúan la carga de trabajo de cada capa. Esto ayuda a determinar cuánto tiempo tomará procesar sus entradas cada capa, lo que a su vez ayuda a delinear el tiempo total de ejecución del modelo.
Comparación con Trabajos Existentes
El nuevo enfoque logra resultados prometedores en comparación con métodos existentes. Al centrarse en el rendimiento, muestra que las 3D CNNs pueden implementarse de manera efectiva en FPGAs mientras mantienen un rendimiento competitivo frente a arquitecturas ajustadas manualmente. Esto sugiere que las herramientas automatizadas pueden jugar un papel esencial en el avance del rendimiento de las 3D CNNs.
Resultados
La herramienta fpgaHART ha sido probada en varios dispositivos FPGA, mostrando buenos resultados en términos de velocidad de procesamiento para diferentes modelos de 3D CNN. Cuando se trata de manejar clips de video, la herramienta puede procesar muchos clips rápidamente mientras asegura un alto nivel de precisión en el reconocimiento de acciones humanas.
Los resultados ilustran que la nueva herramienta puede, de hecho, empujar los límites de rendimiento, logrando un alto rendimiento sin sacrificar la precisión.
Conclusión
Este artículo presenta una nueva herramienta automatizada para implementar y optimizar las 3D CNNs en dispositivos FPGA. Al utilizar un enfoque de teoría de grafos específico, la herramienta mapea efectivamente las 3D CNNs al hardware, asegurando flexibilidad y eficiencia. Muestra que es posible soportar una variedad de modelos mientras se logra un rendimiento que es competitivo con sistemas ajustados manualmente.
El trabajo futuro buscará desarrollar aún más las capacidades de la herramienta, abordando requisitos adicionales y potencialmente ampliando sus características de optimización. El objetivo general es seguir mejorando el rendimiento en aplicaciones del mundo real donde se utilizan las 3D CNNs.
Título: fpgaHART: A toolflow for throughput-oriented acceleration of 3D CNNs for HAR onto FPGAs
Resumen: Surveillance systems, autonomous vehicles, human monitoring systems, and video retrieval are just few of the many applications in which 3D Convolutional Neural Networks are exploited. However, their extensive use is restricted by their high computational and memory requirements, especially when integrated into systems with limited resources. This study proposes a toolflow that optimises the mapping of 3D CNN models for Human Action Recognition onto FPGA devices, taking into account FPGA resources and off-chip memory characteristics. The proposed system employs Synchronous Dataflow (SDF) graphs to model the designs and introduces transformations to expand and explore the design space, resulting in high-throughput designs. A variety of 3D CNN models were evaluated using the proposed toolflow on multiple FPGA devices, demonstrating its potential to deliver competitive performance compared to earlier hand-tuned and model-specific designs.
Autores: Petros Toupas, Christos-Savvas Bouganis, Dimitrios Tzovaras
Última actualización: 2023-05-31 00:00:00
Idioma: English
Fuente URL: https://arxiv.org/abs/2305.19896
Fuente PDF: https://arxiv.org/pdf/2305.19896
Licencia: https://creativecommons.org/licenses/by/4.0/
Cambios: Este resumen se ha elaborado con la ayuda de AI y puede contener imprecisiones. Para obtener información precisa, consulte los documentos originales enlazados aquí.
Gracias a arxiv por el uso de su interoperabilidad de acceso abierto.