Para comprender los puntos principales de los cálculos neuromórficos, necesitamos entrar en el consumo de energía al nivel de los transistores individuales y las compuertas en los chips.
Considere una CPU contemporánea rápida que funciona, por ejemplo, a 4 GHz. Esta CPU enormemente rápida ejecuta código que simula neuronas que conceptualmente se ven así:
- ¿Por qué la longitud desigual del texto es un problema en el procesamiento del lenguaje natural?
- ¿Cuál es el significado real de los pesos en la red neuronal?
- ¿Qué es la mente profunda de Google?
- ¿Cuáles son algunas aplicaciones interesantes de aprendizaje profundo en FinTech?
- ¿Existe algún conjunto de datos disponible públicamente para la clasificación étnica / nacionalidad de los nombres humanos?
Cada neurona suma valores de sus entradas ponderadas por las fuerzas de las conexiones y produce la salida en función del valor calculado. En modelos simples como ReLU, que se usa ampliamente hoy en día, la salida es cero si la suma de entrada está por debajo de un umbral y linealmente proporcional a la entrada si está por encima.
Considere lo que se necesita para que una CPU simule estas acciones. Necesita sumar todas las entradas realizando la multiplicación y adición de punto flotante en un bucle. La longitud del bucle depende del número de conexiones de entrada o sinapsis en el cerebro humano. Esto puede subir hasta 10,000 por neurona.
Para nuestra CPU rápida, se necesitarían alrededor de 50,000 instrucciones de FPU, en una sola FPU, para hacerlo en un circuito cerrado. Un procesador de cuatro núcleos que tiene hipertormentado tendría 8 unidades de este tipo, por lo que obtenemos simulaciones de neuronas 4G / 50K * 8 = 640K por segundo.
El cerebro humano tiene alrededor de 100 mil millones de neuronas, por lo que se necesitarían 100B / 640K o alrededor de 160,000 CPU para llegar a estos cálculos simulados de neuronas. ¡Esos chips quemarían 160K * 100W = 16MW de potencia, que es más que una locomotora poderosa! No hace falta decir que eso tiene mucha potencia y nada cerca del cerebro humano, que consume alrededor de 20W. ¡Estamos aproximadamente a 6 órdenes de magnitud (1,000,000X) de descuento!
La razón principal por la que este cálculo es tan ineficiente es porque solo una pequeña porción de las CPU modernas se dedica a operaciones de coma flotante. El resto se usa para todo tipo de otras cosas, como el almacenamiento en caché, (pre) recuperación, problema y excedencia fuera de orden, predicción de ramas, etc.
Es por eso que los mejores chips de GPU son mucho mejores, ya que tienen un porcentaje mucho mayor del chip dedicado a las operaciones de coma flotante. Por lo general, tienen miles de FPU simples. ¡Podemos reducir dos órdenes de magnitud usando chips GPU especializados, dejándonos todavía 10,000X de descuento!
La pregunta es, entonces, ¿por qué este cálculo simulado sigue siendo tan ineficiente? La respuesta radica en la complejidad de una unidad FPU y la cantidad de transistores que contiene. Por ejemplo, Nvidia GTX 1080 tiene transistores 7.2B y 2560 FPU, o varios millones de transistores por FPU.
En los chips neuromórficos, la idea es utilizar el cálculo analógico de los circuitos de transistores para realizar cálculos neuronales. Aquí hay un ejemplo de circuito de la Universidad de Stanford:
Este circuito realiza un cálculo simulado de neuronas para generar un pico con solo 6 transistores. Todos los transistores funcionan en el modo subliminal, donde la dependencia de la corriente del transistor del voltaje de entrada es exponencial. Este modo es muy eficiente energéticamente.
El circuito funciona aumentando el voltaje en la entrada V_input. Suponiendo que el condensador principal en el medio del circuito se descargó inicialmente, el transistor de entrada comienza a forzar la corriente hacia el condensador, cargándolo y reduciendo el voltaje en el nodo dentro de la celda. Esta disminución provocará la conmutación del inversor representado por los dos transistores inferiores derechos, lo que provocará un pulso de corriente a medida que se conmuta.
Tenga en cuenta que esta corriente se refleja en el espejo de corriente en la parte superior derecha, lo que fuerza una carga más rápida del condensador y actúa en un circuito de retroalimentación positiva donde la carga más rápida del condensador provoca una conmutación más rápida de los dos transistores inferiores y un pulso más corto.
Así que reemplazamos millones de transistores con solo unos pocos, quemando mucha menos energía pero también mucho más lento. También tenemos que tener en cuenta las sinapsis y la suma de entradas, pero eso se puede hacer en la imagen anterior de manera analógica, al tener múltiples transistores de entrada V y realizar la suma analógica sumando sus corrientes.
Para los chips neuromórficos de uso general, como Intel Loihi, la idea es poner tantas neuronas como sea posible en un chip y hacer que todo sea programable, incluido el direccionamiento de las neuronas y sus conexiones. De esto se trata Intel Loihi.