Flash-MoE: Executando o Modelo Qwen de 397B Parâmetros no MacBook Pro com C/Metal Puro

Implementação Técnica
O Flash-MoE executa o Qwen3.5-397B-A17B, um modelo Mixture-of-Experts com 397 bilhões de parâmetros e 60 camadas de transformer: 45 GatedDeltaNet (atenção linear) + 15 atenção padrão completa. Cada camada possui 512 especialistas, com K=4 ativados por token mais um especialista compartilhado. A dimensão oculta é 4096.
Benchmarks de Desempenho
- Especialistas de 4 bits, kernel FMA: 4,36 tokens/segundo, qualidade excelente, chamada de ferramentas completa, 209GB em disco (melhor atual)
- Especialistas de 4 bits, linha de base: 3,90 tokens/segundo, qualidade excelente
- Especialistas de 2 bits, confiar no SO: 5,74 tokens/segundo, boa qualidade, 120GB em disco (quebra JSON/chamada de ferramentas)
- Pico de token único de 2 bits: 7,05 tokens/segundo, boa qualidade (não adequado para uso de ferramentas)
Observação: a quantização de 2 bits produz \nome\ em vez de "nome" na saída JSON, tornando a chamada de ferramentas não confiável. A configuração de 4 bits é a de produção.
Requisitos de Hardware
- Máquina: MacBook Pro com Apple M3 Max
- Chip: CPU de 16 núcleos (12P + 4E), GPU de 40 núcleos, ANE de 16 núcleos
- Memória: 48 GB unificada (~400 GB/s de largura de banda)
- SSD: 1TB Apple Fabric, leitura sequencial de 17,5 GB/s (medida)
- macOS: 26.2 (Darwin 25.2.0)
Técnicas Principais
Streaming de Especialistas do SSD
Os pesos dos especialistas (209GB em 4 bits) são lidos do SSD NVMe sob demanda via pread() paralelo com grupos de despacho GCD. Apenas os K=4 especialistas ativos por camada são carregados (~6,75MB cada). O cache de página do SO gerencia o cache sem necessidade de cache personalizado (princípio "Confiar no SO"), alcançando ~71% de taxa de acerto naturalmente.
Kernel de Desquantização Otimizado com FMA
O loop interno da multiplicação matriz-vetor desquantizada de 4 bits reorganiza a matemática de (nibble * escala + viés) * x para fma(nibble, escala*x, viés*x). Pré-calcular escala*x e viés*x permite que a unidade de multiplicação-soma fundida da GPU execute desquantização+multiplicação em uma instrução, resultando em desempenho 12% mais rápido que a formulação ingênua.
Shaders de Computação Metal
Os kernels Metal escritos à mão incluem:
- Multiplicação matriz-vetor desquantizada de 4 e 2 bits (em blocos, redução SIMD, cache de entrada compartilhada, otimizada com FMA)
- Ativação SwiGLU fundida
- Normalização RMS (duas passagens: redução de soma de quadrados + aplicação)
- Atenção GPU em lote (Q@K^T, softmax, scores@V) para camadas de atenção completa
- RoPE na GPU (fundida com desintercalação de Q e normalização de K)
- Combinação MoE + residual + porta sigmoide (kernel fundido)
Computação de Especialista na GPU Adiada
O CMD3 (passagem direta do especialista) é enviado sem espera. A GPU o executa enquanto a CPU prepara a próxima camada. A combinação + residual + normalização também estão na GPU, alimentando diretamente as projeções de atenção da próxima camada.
BLAS Acelerado para Atenção Linear
A recorrência do GatedDeltaNet usa cblas_sscal, cblas_sgemv e cblas_sger para a atualização da matriz de estado 64-head × 128×128, alcançando desempenho 64% mais rápido que o código escalar.
Desempenho do Pipeline
Média por camada em 4 bits: 4,28ms
- CMD3(anterior) → CMD1: projeções de atenção + delta-net [1,22ms GPU]
- CPU: liberar resultados [0,01ms CPU]
- CMD2: o_proj + norm + roteamento + compartilhado [0,55ms GPU]
- CPU: softmax + roteamento topK [0,003ms]
- E/S: pread paralelo K=4 especialistas [2,41ms SSD]
- CMD3: passagem direta do especialista + combinação + norm [0,04ms codificar, ADIADO]
Restrições de Arquitetura
No Apple Silicon, o DMA do SSD e a computação da GPU compartilham o mesmo controlador de memória e não podem ser sobrepostos de forma lucrativa. Os kernels de desquantização da GPU estão saturados de largura de banda em ~418 GiB/s. Mesmo pequenos DMAs de SSD em segundo plano causam picos de latência desproporcionais na GPU por meio da arbitragem do controlador de memória, exigindo um pipeline serial.
📖 Leia a fonte completa: HN AI Agents
👀 See Also

Extensão Claude Toolbox adiciona marcadores de nível de mensagem e pesquisa de texto completo
Claude Toolbox é uma extensão para Chrome que permite marcar mensagens individuais, pesquisar em todo o texto das conversas e exportar como TXT ou JSON. O plano gratuito cobre 2 conversas; o pago custa $5/mês ou $49 vitalício.

Referência: MLX vs Ollama Executando Qwen3-Coder-Next 8-Bit no MacBook Pro M5 Max
Um benchmark comparando os backends MLX e Ollama executando a quantização de 8 bits do Qwen3-Coder-Next em um MacBook Pro M5 Max com 128 GB de RAM mostrou que o MLX atingiu aproximadamente 72 tokens por segundo, cerca do dobro da taxa de transferência do Ollama em várias tarefas de programação.

Usando um Smart Pixel Clock para Notificações de Conclusão do Claude AI
Um usuário do Reddit compartilha um método para exibir notificações de conclusão do Claude AI usando um relógio inteligente de pixels ULANZI TC001 com firmware personalizado e um endpoint HTTP.

SmallClaw v1.0.2 adiciona sistema de tarefas em segundo plano para LLMs locais
SmallClaw v1.0.2 apresenta um mecanismo de tarefas em segundo plano que executa fluxos de trabalho de múltiplas etapas de forma autônoma, com verificação de etapas para resolver problemas de confiabilidade de modelos pequenos. A atualização foi testada em modelos da classe 4B como qwen3:4b em máquinas com 8GB de RAM.