Una red neuronal se ejecuta íntegramente en hardware sin CPU ni sistema operativo
Zakriya Paracha ha logrado implementar una red neuronal totalmente en hardware, lo que permite su operación sin la necesidad de una CPU o un sistema operativo. Este sistema, según reporta Hackster.io, reside enteramente dentro de una FPGA y está diseñado para reconocer dígitos escritos a mano capturados por una cámara.
La solución de Paracha sintetiza el motor de inferencia completo en lógica digital, escrita en Verilog. Esto significa que cada operación, incluidas las multiplicaciones, los accesos a memoria y las decisiones, es ejecutada por circuitos dedicados en lugar de instrucciones procesadas por un microprocesador. De esta manera, la FPGA no actúa como un coprocesador para acelerar tareas de IA, sino que es la propia red neuronal.
El proyecto se basa en una red de alimentación directa (feed-forward) entrenada en PyTorch con el conocido conjunto de datos MNIST de dígitos escritos a mano. El modelo procesa imágenes de 28×28 píxeles a través de una capa oculta de 32 neuronas para producir probabilidades para los diez dígitos posibles. La red entrenada originalmente contenía 25.888 pesos. Para su implementación en el limitado espacio de memoria de una FPGA, los pesos se cuantificaron a enteros de 8 bits, reduciendo el tamaño del modelo de aproximadamente 98 KB a solo 25 KB, con una mínima pérdida de precisión del 0,18%.
La implementación se realiza en una placa Digilent Basys 3 FPGA, que utiliza un chip Artix-7. Una cámara OV7670 se conecta directamente a la FPGA, sin la mediación de un microcontrolador o interfaz USB. La lógica dedicada dentro de la FPGA se encarga de capturar cada fotograma de vídeo, convertirlo a escala de grises, recortar la imagen central, reducir su tamaño a 28×28 píxeles y aplicar un umbralado para que las imágenes se asemejen a las usadas durante el entrenamiento de la red. Posteriormente, un bloque de hardware diferente realiza la inferencia, ejecutando operaciones de multiplicación-acumulación de enteros mediante una máquina de estados finitos.
El sistema es capaz de completar una inferencia en aproximadamente medio milisegundo, mientras simultáneamente visualiza cada etapa del procesamiento en un monitor VGA. Adicionalmente, una pantalla de siete segmentos integrada en la Basys 3 muestra continuamente el dígito reconocido y el nivel de confianza de la red. Si bien este enfoque no es idóneo para modelos de IA modernos de gran tamaño o que evolucionan rápidamente, que son más adecuados para GPU y otros aceleradores programables, demuestra el considerable potencial de las FPGAs para redes neuronales pequeñas y fijas donde la baja latencia y el rendimiento determinista son parámetros críticos.
Datos clave
| Reducción de tamaño del modelo por cuantificación | 98 KB a 25 KB |
|---|---|
| Pérdida de precisión tras cuantificación | 0,18 % |
| Tiempo de inferencia | 0,5 milisegundos |
Fuente original: Hackster.io







