Entrena Transformers en Apple Neural Engine - GitHub ANE
Revolucionario: Entrenamiento de Transformers directamente en el Apple Neural Engine
El Neural Engine (ANE) de Apple ofrece 15.8 TFLOPS de potencia de inferencia en chips M4, ¿pero entrenamiento? Oficialmente imposible. Hasta ahora.
El Avance: Entrenamiento Puro en ANE
ANE Training es una implementación desde cero que ejecuta bucles completos de entrenamiento de transformers - pases hacia adelante Y hacia atrás - directamente en hardware ANE usando APIs privadas ingenierizadas inversamente. Sin APIs de entrenamiento CoreML. Sin shaders Metal. Sin fallback a GPU. Computación pura ANE.
Benchmarks Actuales (M4, dim=768, seq=512): - 9.3 ms/paso - 11.2% utilización ANE (1.78 TFLOPS sostenidos) - 6 despachos de kernels ANE por paso de entrenamiento
Análisis Profundo de la Arquitectura
El sistema orquesta 6 kernels ANE especializados por paso de entrenamiento:
| Kernel | Función | Innovación Clave |
|---|---|---|
| kFwdAttn | RMSNorm + QKV + SDPA | Taps forward evitan recomputación en CPU |
| kFwdFFN | SwiGLU FFN | Fusión ANE RMSNorm |
| kFFNBwd | FFN backward | Layout channel-first |
| kSdpaBwd1/2 | SDPA backward | Fusión Wo^T reduce conteo de kernels |
| kQKVb | QKV backward | Overlap GCD async cblas |
CPU maneja solo: RMSNorm backward, residuales, pérdida, acumulación dW (Accelerate cblas), actualizaciones Adam.
Optimizaciones Clave que Importan
- Layout channel-first - Coincide con ANE IOSurface [1,C,1,S] eliminando overhead de transposición
- vDSP RMSNorm - Aceleración 10x (6.7ms → 0.7ms)
- Fusión ANE RMSNorm - Integrada en kernels forward
- cblas diferido - Máximo solapamiento ANE/CPU
- reinicio exec() - Evade límite de compilación 119
Evolución del rendimiento: 33.5ms → 9.3ms mediante optimización sistemática.
Comienza en Minutos
# macOS 15+ Apple Silicon requerido
xcrun clang -O2 -framework Foundation -framework IOSurface \
-framework CoreML -framework Accelerate -ldl -lobjc \
-o train_large training/train_large.m
./train_large
Cero dependencias más allá de frameworks del sistema.
Resumen de Estructura de Archivos
api_exploration.m- Descubrimiento de API privadainmem_bench.m- Latencia de despacho ANEsram_probe.m- Exploración de ancho de banda SRAMtraining/train_large.m- Entrenador de producción de una sola capa
Limitaciones y Roadmap
✅ Máscara causal vía descomposición ✅ Acumulación de gradientes/checkpointing ✅ Optimizador Adam
🔄 Pipeline multi-capa 🔄 Datasets tokenizados reales 🔄 Entrenamiento de modelo completo
Nota Legal
Usa introspección en tiempo de ejecución de APIs no documentadas para fines de investigación/educativos (DMCA §1201(f)). No se incluye código propietario de Apple.
2.1k estrellas, 362 forks - Únete a la revolución ML de Apple Silicon: https://github.com/maderix/ANE