TinyML toma grandes modelos de aprendizaje automático (ML) y los hace capaces de ejecutarse en pequeños microcontroladores con recursos limitados. Con el objetivo de operar con bajo consumo de energía durante largos períodos de tiempo, los dispositivos TinyML requieren un hardware extremadamente eficiente y un software optimizado.
TinyML Summit 2023 recientemente puso a disposición del público sus sesiones Summit 2023. Una de esas sesiones provino de STMicroelectronics, donde Danilo Pau, director técnico de ST, brindó una charla titulada «Mejora de las unidades de procesamiento neuronal (NPU) con In-Memory Digital Computing».
Modelo NPU de flujo de datos ST. Captura de pantalla cortesía de STMicroelectronics
En este artículo, analizaremos los méritos de la arquitectura de computación en memoria y los principales beneficios de este estilo de computación para NPU, según ST.
La compensación de TinyML: computación compleja versus potencia
Algunos de los modelos de ML más conocidos se ejecutan en centros de datos masivos con recursos informáticos y de memoria casi infinitos. Tomar la misma funcionalidad de ML pero llevarla a un dispositivo de borde pequeño alimentado por batería presenta un desafío de diseño significativo.
La compensación que existe en el hardware TinyML es lograr la potencia computacional necesaria para los modelos ML mientras se mantiene el consumo de energía al mínimo. Como explica Pau en su intervención, “por un lado, nos gustaría conseguir una potencia de cálculo muy alta, pero por otro lado, nos gustaría consumir energía casi nula y producir el chip lo más barato posible”.
El costo de energía de mover datos. Imagen cortesía de Shi et al.
La computación ML consume enormes cantidades de energía en las arquitecturas informáticas convencionales debido a las cargas de datos que implican estas operaciones. Con potencialmente miles de millones de pesos y parámetros involucrados en un modelo de ML, la computación de estos algoritmos requiere un inmenso movimiento de datos dentro y fuera de la memoria hacia el núcleo de procesamiento.
Este movimiento de datos es una limitación fundamental de las arquitecturas clásicas de von Neumann y da como resultado ineficiencias para el cálculo de ML.
El procesamiento en memoria significa menos movimiento de datos y energía
Para sortear las limitaciones fundamentales de la arquitectura de von Neumann, STMicroelectronics recurre a la computación en memoria como solución. La computación en memoria cambia el paradigma de la computación de uno donde los datos y la computación están espacialmente separados a uno donde ocurren en el mismo lugar.
Pau explica: «Transferir datos dentro y fuera de la memoria a cualquier acelerador de hardware es un punto de diseño muy cuidadoso porque, si bien el acelerador de hardware puede ofrecer una potencia computacional muy alta, en última instancia puede verse limitado por la eficiencia de la transacción con la memoria. Tenemos que romper por el muro de la memoria».
De esta forma, el procesamiento en memoria evita la pérdida de energía asociada con el movimiento de datos y hace que el hardware TinyML sea más eficiente.
El cálculo en memoria elimina el cuello de botella de von Neumann. Imagen cortesía de Coluccio et al.
Además de la computación en memoria, STMicroelectronics también persigue la idea de reducir la precisión computacional para aumentar la eficiencia energética. Esta es la idea detrás de la cuantificación en TinyML: al reducir la precisión de los datos, digamos de FP de 32 bits a INT de 8 bits, los modelos ML pueden operar con una cantidad significativamente menor de datos. Esto reduce significativamente el consumo de energía sin un gran impacto en la precisión del modelo.
Sobre esto, Pau dijo: “Imagínate que pudieras diseñar redes neuronales binarias, con pesos de 1 bit y activación de 1 bit. Desbloquearíamos sistemas muy eficientes, de baja potencia, baja complejidad y alto paralelo, eso sería genial».
ST presenta NPU de bajo consumo para TinyML
Trabajando en estas ideas, STMicroelectronics está desarrollando una nueva NPU experimental de bajo consumo para TinyML.
El chip en sí está construido alrededor de un núcleo de procesamiento Arm Cortex-M4 de 600 MHz y presenta ocho mosaicos SRAM integrados de Digital In-Memory Computing (DIMC). El sistema cuenta con 4 aceleradores CNN; acceso directo a memoria de tensor (DMA), que facilita la transferencia de memoria; y 51 kB de SRAM compartida.
Diagrama de bloques de la NPU de procesamiento en memoria de ST. Captura de pantalla cortesía de STMicroelectronics
Construidos sobre un nodo de 40 nm, los DIMC pueden realizar cálculos binarios en la memoria, lo que da como resultado un aumento espectacular en la eficiencia computacional de las capas binarias. ST validó el sistema ejecutando un algoritmo de detección facial en tiempo real, donde encontraron que el chip de prueba funcionaba con una latencia de 3 ms. Es importante destacar que el subsistema DIMC ha logrado una eficiencia máxima de 100 TOPS/W para cálculos binarios. En general, se ha demostrado que el sistema logra 40 veces el TOPS/W en comparación con las implementaciones tradicionales de NPU.
Con esto, ST demostró los principales beneficios que vienen con el cálculo en memoria y la precisión reducida. Al mejorar la eficiencia energética de la NPU 40 veces, el trabajo de ST podría tener implicaciones significativas para el futuro del hardware TinyML.