Skip to content

v1.0.0

Choose a tag to compare

@Eden-sudo Eden-sudo released this 21 Aug 23:57
· 123 commits to master since this release

🚀 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, new o 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 a symbex_init().
  • Compatibilidad Universal (architectures=*):
    • Familia AVR (8 bits): Usa PROGMEM diná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).

🛠️ 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 punteros NULL y 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