Flash-MoE: Ejecutando el Modelo Qwen de 397B Parámetros en MacBook Pro con C/Metal Puro

Implementación Técnica
Flash-MoE ejecuta Qwen3.5-397B-A17B, un modelo Mixture-of-Experts de 397 mil millones de parámetros con 60 capas de transformador: 45 GatedDeltaNet (atención lineal) + 15 atención completa estándar. Cada capa tiene 512 expertos, con K=4 activados por token más un experto compartido. La dimensión oculta es 4096.
Benchmarks de Rendimiento
- Expertos de 4 bits, kernel FMA: 4.36 tokens/segundo, calidad excelente, llamadas a herramientas completas, 209 GB en disco (mejor actual)
- Expertos de 4 bits, línea base: 3.90 tokens/segundo, calidad excelente
- Expertos de 2 bits, confiar en el SO: 5.74 tokens/segundo, buena calidad, 120 GB en disco (rompe JSON/llamadas a herramientas)
- Pico de token único de 2 bits: 7.05 tokens/segundo, buena calidad (no apto para uso de herramientas)
Nota: La cuantización de 2 bits produce \nombre\ en lugar de "nombre" en la salida JSON, haciendo que las llamadas a herramientas no sean confiables. La de 4 bits es la configuración de producción.
Requisitos de Hardware
- Máquina: MacBook Pro con Apple M3 Max
- Chip: CPU de 16 núcleos (12P + 4E), GPU de 40 núcleos, ANE de 16 núcleos
- Memoria: 48 GB unificada (~400 GB/s de ancho de banda)
- SSD: 1TB Apple Fabric, 17.5 GB/s lectura secuencial (medido)
- macOS: 26.2 (Darwin 25.2.0)
Técnicas Clave
Transmisión de Expertos desde SSD
Los pesos de los expertos (209 GB a 4 bits) se leen desde el SSD NVMe bajo demanda mediante pread() paralelo con grupos de despacho GCD. Solo se cargan los K=4 expertos activos por capa (~6.75 MB cada uno). La caché de páginas del SO gestiona el almacenamiento en caché sin necesidad de caché personalizada (principio "Confiar en el SO"), logrando ~71% de tasa de aciertos de forma natural.
Kernel de Descuantización Optimizado con FMA
El bucle interno de la multiplicación matriz-vector descuantizada de 4 bits reorganiza las matemáticas de (nibble * escala + sesgo) * x a fma(nibble, escala*x, sesgo*x). Precalcular escala*x y sesgo*x permite que la unidad de multiplicación-suma fusionada de la GPU realice la descuantización+multiplicación en una instrucción, resultando en un rendimiento 12% más rápido que la formulación ingenua.
Sombreadores de Computación Metal
Los kernels Metal escritos a mano incluyen:
- Multiplicación matriz-vector descuantizada de 4 y 2 bits (en mosaico, reducida SIMD, caché de entrada compartida, optimizada FMA)
- Activación SwiGLU fusionada
- Normalización RMS (dos pasos: reducción de suma de cuadrados + aplicación)
- Atención GPU por lotes (Q@K^T, softmax, scores@V) para capas de atención completa
- RoPE en GPU (fusionado con desentrelazado de Q y normalización de K)
- Combinación MoE + residual + compuerta sigmoide (kernel fusionado)
Cómputo de Expertos en GPU Diferido
CMD3 (paso hacia adelante del experto) se envía sin esperar. La GPU lo ejecuta mientras la CPU prepara la siguiente capa. La combinación + residual + normalización también están en la GPU, alimentando directamente las proyecciones de atención de la siguiente capa.
BLAS Acelerado para Atención Lineal
La recurrencia de GatedDeltaNet utiliza cblas_sscal, cblas_sgemv y cblas_sger para la actualización de la matriz de estado de 64 cabezas × 128×128, logrando un rendimiento 64% más rápido que el código escalar.
Rendimiento de la Tubería
Promedio por capa a 4 bits: 4.28 ms
- CMD3(prev) → CMD1: proyecciones de atención + delta-net [1.22 ms GPU]
- CPU: vaciar resultados [0.01 ms CPU]
- CMD2: o_proj + norm + enrutamiento + compartido [0.55 ms GPU]
- CPU: softmax + enrutamiento topK [0.003 ms]
- E/S: pread paralelo K=4 expertos [2.41 ms SSD]
- CMD3: paso hacia adelante del experto + combinación + norm [0.04 ms codificar, DIFERIDO]
Restricciones de Arquitectura
En Apple Silicon, el DMA del SSD y el cómputo de la GPU comparten el mismo controlador de memoria y no se pueden superponer de manera rentable. Los kernels de descuantización de la GPU están saturados de ancho de banda a ~418 GiB/s. Incluso pequeños DMA de SSD en segundo plano causan picos de latencia desproporcionados en la GPU a través del arbitraje del controlador de memoria, requiriendo una tubería en serie.
📖 Leer la fuente completa: HN AI Agents
👀 Ver también

Formateador de Mensajes de Slack: Arregla el Markdown Roto de Claude en Slack
Un desarrollador creó una habilidad que convierte el Markdown generado por Claude a un formato adecuado para Slack, resolviendo problemas donde el texto en negrita aparece como asteriscos, los enlaces se muestran en crudo y las tablas se rompen. La herramienta ofrece tanto una vista previa en el navegador con copiar y pegar de HTML enriquecido como soporte para webhooks API.

OpenClaw 2026.3.23 agrega el proveedor DeepSeek, el modelo de pago por uso Qwen y mejoras en Chrome MCP.
OpenClaw v2026.3.23 presenta un complemento de proveedor DeepSeek, precios de pago por uso de Qwen, precios automáticos de OpenRouter con orden de pensamiento de Anthropic, espera de pestañas de Chrome MCP y correcciones para Discord/Slack/Matrix y la interfaz web.

Lumyr: Generación de Dashboard mediante Claude con Automatización en Python y Streamlit
Lumyr es una herramienta que genera paneles de control en vivo y compartibles a partir de descripciones en inglés sencillo, utilizando Claude para la generación de paneles y automatizando la capa de Python y Streamlit. Los usuarios no necesitan escribir Python, abrir Streamlit, desplegar, configurar alojamiento ni gestionar infraestructura.

Maggy: Una plataforma de ingeniería autónoma en Claude Code con memoria entre sesiones y aprendizaje en equipo P2P
Maggy se sitúa en el Nivel 4 del espectro de herramientas de codificación de IA: orquestación multimodelo, memoria entre sesiones, inteligencia de procesos a partir de CI/revisiones y aprendizaje entre pares del equipo. Los benchmarks muestran una reducción del 83 % en el uso de Claude, mientras detecta 7 problemas de seguridad que el Claude Code de un solo pipeline pasó por alto.