Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción
Lava es un marco de software de código abierto para desarrollar aplicaciones de
inspiración neurológica y mapearlas en hardware neuromórfico. Lava proporciona a los
desarrolladores las herramientas y abstracciones para desarrollar aplicaciones que
explotan al máximo los principios de la computación neuronal. Restringidas de esta
manera, como el cerebro, las aplicaciones de Lava permiten que las plataformas
neuromórficas procesen de manera inteligente, aprendan y respondan a los datos del
mundo real con grandes ganancias en eficiencia energética y velocidad en comparación
con las arquitecturas informáticas convencionales.
La visión detrás de Lava es una base de código abierta y desarrollada por la comunidad
que une la gama completa de enfoques perseguidos por la comunidad informática
neuromórfica. Proporciona una estructura modular, componible y extensible para que
los investigadores integren sus mejores ideas en una biblioteca de algoritmos en
crecimiento, al tiempo que introduce nuevas abstracciones que permiten a otros
construir sobre esas ideas sin tener que reinventarlas.
1. Mensaje basado en canal que pasa entre procesos asincrónicos (el paradigma
de comunicación de procesos secuenciales)
2. Paralelismo hipergranular donde la computación emerge como el resultado
colectivo de las interacciones entre procesos
3. Plataformas de ejecución heterogéneas con componentes tanto
convencionales como neuromórficos
4. Entrenamiento fuera de línea basado en backprop de una amplia gama de
modelos de neuronas y topologías de red
5. Herramientas para generar redes neuronales de picos complejas,
como campos neuronales dinámicos y redes que resuelven problemas de
optimización bien definidos.
6. Integración con marcos de terceros
Para lograr la máxima productividad del desarrollador, Lava combina una interfaz de
Python simple con un rendimiento acelerado utilizando el código C/C++/CUDA
subyacente.
organización de lava
Los procesos son el bloque de construcción fundamental en la arquitectura Lava a partir
de la cual se construyen todos los algoritmos y aplicaciones. Los procesos son objetos
con estado con variables internas, puertos de entrada y salida para la comunicación
basada en mensajes a través de canales y múltiples modelos de comportamiento. Esta
arquitectura está inspirada en el paradigma del proceso secuencial de comunicación
(CSP) para sistemas paralelos asincrónicos que interactúan a través del paso de
mensajes. Los procesos de Lava que implementan la API de CSP se pueden compilar y
ejecutar a través de un compilador multiplataforma y un tiempo de ejecución que admite
la ejecución en HW neuromórfico y convencional de von-Neumann. Juntos, estos
componentes forman la capa de magma de lava de bajo nivel.
Todas las API principales de Lava y los componentes de nivel superior se publican, de
forma predeterminada, con licencias BSD 3 permisivas para fomentar la contribución
comunitaria más amplia posible. Los componentes Magma de nivel inferior necesarios
para mapear procesos a backends neuromórficos generalmente se lanzan con licencias
LGPL-2.1 más restrictivas para desalentar las bifurcaciones comerciales patentadas de
estas tecnologías. Los componentes específicos de Magma necesarios para compilar
procesos específicamente para los chips Intel Loihi siguen siendo propiedad de Intel y
no se proporcionan a través de este sitio de GitHub (consulte a continuación). Es
probable que un código de capa de magma similar para otras futuras plataformas
neuromórficas comerciales también siga siendo propietario.