# Como auditar o Lithos Metal no Mac M5 com DSpark

> Published 2026-10-17T01:32:08.004Z on https://www.crazystack.com.br/pt/p/como-auditar-o-lithos-metal-no-mac-m5-com-dspark/
> Source video: https://www.youtube.com/watch?v=KKKAkhphTSg

O Lithos Metal no Mac M5 promete mais de 200 tokens por segundo, mas essa é uma projeção de pico. A única rodada medida no repositório registra 43,188 ms por rodada num M5 Max de 40 núcleos, o que dá cerca de 139 tok/s. O limite físico de banda fica em torno de 38 tok/s para decodificação simples.

## O que é o Lithos Metal no Mac M5 e por que o teto de 38 tok/s existe

O Lithos Metal no Mac M5 é um motor de inferência experimental para Metal, a interface de programação de GPU da Apple. Ele se propõe a decodificar modelos grandes em Macs com Apple Silicon. O teto de aproximadamente 38 tokens por segundo vem da banda de memória, não do poder de cálculo da GPU.

Os pesos são os números que o modelo aprendeu. A versão de 4 bits do Qwen 3.8 de 27 bilhões de parâmetros ocupa cerca de 16,1 GB no formato MLX. A Apple informa que o M5 Max move até 614 GB por segundo entre memória e chip, e essa é uma taxa de pico.

Uma leitura completa dos pesos ocupa aproximadamente 26 ms. Se cada token exigir uma leitura própria, o resultado fica em cerca de 38 tokens por segundo. Essa é a aritmética do próprio vídeo, não um número publicado pela Lithos.

A conta ignora o cache de chave e valor, que cresce com o prompt. A Apple também afirma que, depois do primeiro token, a banda de memória limita a geração, e não o cálculo. Você pode conferir as especificações do chip na página de suporte da fabricante: [Apple Support](https://support.apple.com/).

## O que os megakernels Metal fundem de fato e o que fica de fora

Os megakernels Metal fundem apenas o mixer de cada camada, seja o Gated DeltaNet (GDN), que mantém uma memória recorrente, seja a atenção completa. O bloco feed-forward, também chamado de MLP, continua como um kernel separado. A descrição de camada inteira num único programa não corresponde ao código publicado.

O Qwen 3.8 de 27 bilhões tem 64 camadas: 48 usam Gated DeltaNet e 16 usam atenção completa. O padrão se repete 16 vezes, com três camadas GDN seguidas de uma de atenção. Cada camada traz ainda um bloco feed-forward.

O ganho vem de manter no chip o estado recorrente e as somas parciais do softmax em precisão de 32 bits. Um kernel comum lê e escreve o estado completo a cada token. No desenho do Lithos, cada worker cuida de uma fatia das colunas e conserva essa fatia durante um bloco de entrada.

A fusão reduz bolhas de lançamento de kernel e eleva o uso da banda disponível. Ela não altera a quantidade de dados lida: os pesos continuam vindo da memória uma vez por passagem. Por isso, sozinha, a técnica apenas aproxima o motor do teto de 38 tokens por segundo.

## A origem do megakernel: o teste da Hazy Research em H100

A ideia de fundir kernels não nasceu no Lithos. A Hazy Research, laboratório da Universidade Stanford, mediu o efeito em uma H100, a GPU de data center da NVIDIA, e o resultado pertence a esse experimento, não à Apple.

No teste com um modelo Llama de 1 bilhão de parâmetros, os motores vLLM e SGLang dividiam uma passagem pelo modelo em cerca de 100 pequenos programas de GPU. Cada kernel tem preparação e encerramento, e a GPU fica ociosa entre eles. Os dois motores usaram no máximo cerca de 50% da banda de memória.

Um megakernel fundido usou 78% da banda. A Hazy Research relatou cerca de 2,5 vezes a velocidade do vLLM e mais de 1,5 vez a do SGLang. Vale lembrar que esses números descrevem uma H100, e não um Mac.

O Lithos transporta a ideia para o Metal e adiciona um protocolo de progresso. Quando um worker precisa do resultado de outro, o protocolo indica quando o dado está pronto. O detalhe do experimento está no blog da Hazy Research: [Hazy Research](https://hazyresearch.stanford.edu/).

## Como o DSpark usa decodificação especulativa para passar do teto

A decodificação especulativa com o DSpark é a única forma de ultrapassar o teto de banda, porque extrai vários tokens de uma só leitura dos pesos. Um rascunhador pequeno adivinha um bloco de tokens, e o modelo grande verifica todos eles numa passagem única.

A analogia do vídeo ajuda: os pesos são um trajeto de ônibus que precisa ser percorrido inteiro a cada viagem. A decodificação simples manda o ônibus com um passageiro. A especulativa manda vários passageiros na mesma viagem, e cada passageiro é um token.

O DSpark vem de um artigo do DeepSeek AI com a Universidade de Pequim. O rascunhador lê valores internos do modelo grande e adivinha um bloco de uma vez. Uma pequena máscara de baixo posto permite que cada palpite veja o anterior, o que evita a queda na taxa de aceitação ao longo do bloco.

O artigo também descreve uma cabeça de confiança, que estima até onde vale a pena verificar o bloco. O método está no artigo técnico: [DeepSeek-V3.2-Exp](https://github.com/deepseek-ai/DeepSeek-V3.2-Exp).

## Os números auditados: 200, 168 e 139 tok/s não provam a mesma coisa

Os números do Lithos Metal no Mac M5 se dividem em medições e projeções. A rodada medida de 43,188 ms com seis tokens aceitos dá cerca de 139 tokens por segundo. O teto de oito tokens na mesma rodada daria cerca de 185 tokens por segundo.

As figuras de 168 tokens por segundo em contexto de 128 tokens e 27 tokens por segundo em 32K são projeções. Elas partem de seis tokens aceitos por passagem de oito linhas e excluem redação, verificação, processamento de aceitação e rewind de estado. O próprio README afirma que não são taxas medidas ponta a ponta.

A figura acima de 200 tokens por segundo aparece no texto de divulgação, sem contexto, sem prompt e sem taxa de aceitação declarada. Isso explica a diferença em relação aos 168 do README.

O README ainda compara o motor com o MLX e o Ollama em contextos curtos, com razão entre 1,8 e 2 vezes. O texto chama esses valores de projeções de alvo de cálculo, e cada backend mede um trabalho diferente.

## O que a auditoria aritmética revela sobre velocidade e memória

A auditoria aritmética mostra que 200 tokens por segundo exigiriam uma rodada de cerca de 30 ms com seis tokens. Só a leitura dos pesos mais a etapa de rascunho já consomem aproximadamente esse tempo no papel. O número de 200 é um pico sem contexto declarado.

O repositório também registra que os 512 tokens gerados em quatro prompts curtos coincidem com a referência BF16, um formato numérico de 16 bits. Isso indica equivalência de saída nesses quatro prompts. Não mede velocidade nem diz nada sobre outros prompts.

O README menciona ainda que a etapa padrão de fusão altera o arredondamento de números de 16 bits. O número medido e a projeção não são a mesma coisa.

O repositório não publica uma ablação, o teste de cada truque isolado. Sem ela, não dá para saber quanto do ganho vem do megakernel e quanto vem do DSpark em hardware Apple.

## O custo de prefill em prompts longos e os limites de compatibilidade

O prefill é o tempo que o modelo leva para ler o prompt antes do primeiro token, e ele cresce junto com o contexto. Em um M5 Max de 40 núcleos com 48 GB, um prompt de 30 mil tokens espera cerca de 53 segundos antes da primeira resposta.

Os números do pull request mesclado em 7 de outubro de 2026 mostram essa evolução em três tamanhos: 6,6 segundos para 4K tokens (antes 13,0), 26,9 segundos para 17K tokens (antes 39,1) e 53,3 segundos para 30K tokens (antes 71,3). Você acompanha as mudanças no repositório: [lithos-metal](https://github.com/lithos-ai/lithos-metal).

A compatibilidade é organizada em degraus. O M5 Max de 40 núcleos tem receitas medidas para modelos grandes. O M5 Pro tem kernels medidos apenas para modelos menores. O M5 Max de 32 núcleos e o M4 Pro caem num caminho nativo sem medição, sem fusão automática de megakernel e com o acelerador de tensores desligado.

O motor roda uma geração por vez, tem licença Apache 2.0 e exige macOS 26 ou superior. Ele suporta uma família de modelos e um modelo experimental de mistura de especialistas com cerca de 35 bilhões de parâmetros.

## Comparação: Lithos Metal, MLX e Ollama no M5 Max

A escolha entre os motores depende do que você mede. A tabela reúne o que cada fonte declara e separa fato medido, projeção de fabricante e ausência de dado.

| Aspecto | Lithos Metal | MLX | Ollama |
| --- | --- | --- | --- |
| O que é | Motor experimental para Metal, com megakernels e DSpark | Framework de inferência da Apple para Apple Silicon | Executador local de modelos com camada de conveniência |
| Evidência de velocidade | 43,188 ms por rodada medida; projeções de 168 e 127 tok/s | Não publicada no material analisado | Não publicada no material analisado |
| Uso de memória | 16,1 GB de pesos em 4 bits, mais 1,136 GB de rascunhador | Depende da quantização escolhida | Depende do modelo e da quantização |
| Compatibilidade | M5 Max de 40 núcleos; fallback sem medição em outros chips | Apple Silicon em geral | Apple Silicon em geral |
| Limite declarado | Uma geração por vez; macOS 26 ou superior | Não se aplica | Não se aplica |

A razão declarada entre 1,8 e 2 vezes frente ao MLX não tem configuração informada. Se a razão valesse sobre os 168 tokens por segundo, o MLX rodaria perto de 90 tokens por segundo em decodificação simples. Isso ficaria muito acima do teto de 38, o que sugere configurações diferentes ou outra base de comparação.

## Perguntas frequentes sobre o Lithos Metal no Mac M5

- **O Lithos Metal no Mac M5 atinge 200 tokens por segundo?** Não há medição publicada que comprove esse valor. O número aparece no texto de divulgação como pico, sem contexto nem taxa de aceitação. A rodada medida no repositório indica cerca de 139 tokens por segundo.

- **Qual é o teto teórico de decodificação simples?** Cerca de 38 tokens por segundo, segundo a aritmética baseada em 16,1 GB de pesos e 614 GB por segundo de banda de pico. Esse valor assume uma leitura de pesos por token e ignora o cache de chave e valor.

- **O que o DSpark muda em relação a um megakernel sozinho?** O megakernel aproxima o motor do teto ao reduzir bolhas de kernel, mas não passa dele. O DSpark permite verificar até oito linhas por leitura de pesos, o que é a única forma de ultrapassar o limite de banda.

- **Quais Macs têm aceleração completa?** O M5 Max de 40 núcleos é o único com receitas medidas para modelos grandes. O M5 Pro tem kernels medidos para modelos menores, e o M5 Max de 32 núcleos e o M4 Pro usam um caminho nativo sem medição.

- **Quanto tempo um prompt longo espera antes da primeira resposta?** Em um M5 Max de 40 núcleos com 48 GB, um prompt de 30 mil tokens levou 53,3 segundos de prefill após as mudanças de outubro de 2026. A velocidade de decodificação projetada só vale depois dessa espera.

[Source video](https://www.youtube.com/watch?v=KKKAkhphTSg)
