Implementación y evaluación del rendimiento de redes neuronales densas en FPGA para la inferencia rápida, aplicadas a problemas en física y visión artificial (2020)
RESUMEN: En la actualidad diferentes contextos industriales y científicos participan del crecimiento de la producción de datos, lo cual conlleva igualmente a la necesidad de procesarlos de la manera más rápida posible. Dos de estos contextos de particular interés para este trabajo son la física experimental y la visión artificial, donde las técnicas de la inteligencia artificial como las redes neuronales, vienen mostrando precisión y efectividad en ciertas tareas, pero tienen limitaciones en cuanto a la velocidad de su implementación debidas principalmente al hardware con que se implementan. Alternativas de hardware como ASICS, GPUs, y FPGAs compiten en la carrera por acelerar el entrenamiento y la inferencia de redes neuronales. Características como la flexibilidad, bajo consumo de energía, costos asequibles, y velocidad hacen de las FPGAs uno de los competidores más prometedores y aplicables, especialmente en contextos académicos. En el presente trabajo se presentan las bases teóricas y conceptuales que se encuentran en la intersección de la física, el aprendizaje profundo y las FPGAs, se ilustra el proceso de implementación de diferentes redes neuronales en FPGA mediante el uso de la síntesis de alto nivel, y se evalúa el rendimiento de éstas respecto a otros sistemas como GPUs, y CPUs programadas en entornos Python y C, en cuanto a latencia y consumo de recursos, en particular, respecto a los problemas de inferencia de redes neuronales para clasificación de subestructura de jets, y un problema de visión artificial: la clasificación de dígitos escritos a mano. Los resultados muestran la superioridad en cuanto a tiempo de inferencia, de una FPGA de bajo costo respecto a los otros sistemas, en ordenes desde 10.72x hasta 805x veces más rápida sin perder exactitud. Estos resultados validan estos dispositivos como fuertes candidatos para mejorar el rendimiento de las redes neuronales. Finalmente se discuten limitaciones y direcciones futuras.