Repository navigation
v1.0.0
🚀 SYMBEX-1: Extreme Edge-AI Inference Engine (v1.0.0)
SymbexLayer es un motor de inferencia neuronal bare-metal diseñado desde cero para microcontroladores con recursos de memoria extremos (SRAM < 2 KB). Permite ejecutar redes neuronales multicapa directamente en silicio mediante cuantización matemática avanzada (1 a 4 bits) y operaciones Bit-slicing (XNOR + Popcount), eliminando por completo la necesidad de punto flotante.
✨ Características Principales
-
Zero-Heap & Zero-VLA: Arquitectura estricta de memoria estática. Cero uso de
malloc,newo arreglos de longitud variable en la pila (Stack-safe). - Compresión Extrema: Reduce la huella en memoria hasta en un 90%+ respecto a modelos FP32, preservando una fidelidad >99% en hardware.
-
Matemática Dinámica: Soporte nativo para resoluciones dinámicas (
$K=1$ hasta$K=4$ bits) y factor de expansión topológica ($M$ ). -
Cableado C++ 100% Automatizado: El compilador de Python (
symbex_compiler.py) diseña la topología, cuantiza los pesos y escribe automáticamente todo el código C++ de inicialización (symbex_weights.h). El usuario solo necesita llamar asymbex_init(). -
Compatibilidad Universal (
architectures=*):-
Familia AVR (8 bits): Usa
PROGMEMdinámicamente para proteger la SRAM (Ej: Arduino Uno, Nano, Mega). - Familia ESP32 / ARM (32 bits): Ejecución a máxima velocidad en RAM sin cuellos de botella (Ej: ESP32-CAM, STM32, RP2040).
-
Familia AVR (8 bits): Usa
🛠️ Actualizaciones de esta versión
- [FIX] Outliers con Signo Cruzado: Implementación matemática perfecta del signo de los valores atípicos cruzando el MSB del núcleo con el bit de entrada mediante lógica XNOR.
-
[UPDATE] Bucle K-Bits Dinámico: El motor C++ ahora itera dinámicamente la resolución
$K$ , evitando punterosNULLy lecturas de memoria de interrupción en AVR. - [NEW] Ping-Pong Buffering: Reutilización de dos buffers estáticos para la propagación de capas ocultas, ahorrando cientos de bytes de SRAM.
-
[NEW] Ejemplos Oficiales:
-
SymbexBenchmark: Demostración completa de integración con pesos auto-generados por Python. -
XOR_Manual: Un ejemplo educativo construido 100% a mano que documenta el uso de padding como bias offset.
-
Autor: Carlos Eden Duarte