Benchmark de Cache KV do Qwen 3.6-35B-A3B: f16 vs q8_0 vs Turbo3 vs Turbo4 no M5 Max com Contexto de até 1M

Um usuário do Reddit realizou uma varredura de profundidade no Qwen 3.6-35B-A3B Q8 usando o fork TurboQuant Metal do TheTom do llama.cpp (GitHub: TheTom/llama-cpp-turboquant, branch feature/turboquant-kv-cache) em um MacBook Pro M5 Max com 128 GB de memória unificada. Eles testaram quatro tipos de cache KV: f16, q8_0, turbo3 (3 bits) e turbo4 (4 bits), K e V simétricos, com flash-attn ativado e mlock ativado, de 0 a 1M tokens de contexto.
Hardware e Build
M5 Max, 128 GB de memória unificada. Compilado com cmake -B build -DGGML_METAL=ON. Usou llama-bench, 3 repetições por célula, flash-attn ativado, mlock ativado. 8 horas de relógio durante a noite.
Throughput de Geração (tok/s)
| Profundidade | f16 | q8_0 | turbo3 | turbo4 |
|---|---|---|---|---|
| 0 | 89,4 | 87,4 | 79,5 | 79,7 |
| 8K | 84,2 | 79,2 | 72,2 | 71,2 |
| 32K | 72,6 | 67,8 | 61,5 | 61,8 |
| 128K | 44,4 | 40,7 | 36,0 | 37,7 |
| 256K | OOM | 26,6 | 22,9 | 25,5 |
| 512K | OOM | OOM | 13,3 | 16,0 |
| 1M | OOM | OOM | 6,5 | OOM |
Throughput de Processamento de Prompt (tok/s)
| Profundidade | f16 | q8_0 | turbo3 | turbo4 |
|---|---|---|---|---|
| 0 | 2962 | 2948 | 2904 | 2854 |
| 8K | 2098 | 1623 | 1653 | 1439 |
| 32K | 1063 | 802 | 784 | 678 |
| 128K | 321 | 245 | 253 | 206 |
| 256K | OOM | 124 | 128 | 101 |
| 512K | OOM | OOM | 66 | 56 |
| 1M | OOM | OOM | 30 | OOM |
Principais Conclusões
- Na profundidade 0, f16 lidera por pouco no prefill; turbo3 é ~10% mais lento no decode.
- Em 128K, prefill do turbo3 (253 tok/s) iguala q8_0 (245 tok/s) — cache menor reduz pressão de largura de banda.
- Em 256K, turbo3 vence prefill +27% sobre turbo4 (128 vs 101), mas turbo4 vence decode +11% (25,5 vs 22,9). Em 512K, diferença no decode aumenta para +20% (turbo4 16,0 vs turbo3 13,3).
- turbo3 é o único tipo de cache que cabe em 1M de contexto (6,5 tok/s decode). Memória em 1M: ~89 GB (37 GB pesos, ~52 GB cache KV).
Recomendações de Carga de Trabalho
- Agentes de codificação (contexto profundo, muitos tokens gerados): turbo4
- RAG / QA em lote (prefill pesado, respostas curtas): turbo3
- Contexto de 1M: apenas turbo3
- Interativo curto (<32K): f16 se couber, senão q8_0
Ressalvas
Este é um único M5 Max. Os pontos de cruzamento provavelmente mudam com largura de banda de memória e núcleos de GPU. Apenas K/V simétrico testado. Combinações assimétricas (ex.: -ctk q8_0 -ctv turbo4) não foram testadas. O fork do TheTom é de nível de pesquisa, não está no upstream do llama.cpp main.
📖 Leia a fonte completa: r/LocalLLaMA
👀 See Also

Super Micro Co-Founder Entre Três Acusados em Caso de Exportação de Tecnologia de IA
Três indivíduos, incluindo o cofundador da Super Micro Computer, Charles Liang, foram acusados pelas autoridades dos EUA de conspirar para exportar ilegalmente tecnologia de IA para a China. O caso envolve supostas violações das leis de controle de exportação.

Cowork pode usar uma instância do Chrome em outra máquina sem que você saiba
Um usuário do Reddit descobriu que o Cowork pode executar tarefas no navegador usando uma instância do Chrome em outra máquina (Windows) pareada via extensão, sinalizada como isLocal: false — algo não documentado.

Modelo de IA Gemini Nano do Chrome consome 4GB de espaço em disco
O Google Chrome baixa automaticamente um arquivo weights.bin de 4 GB para o modelo de IA no dispositivo Gemini Nano, o que pode inflar o armazenamento sem uma notificação clara ao usuário. Desativar a opção 'IA no dispositivo' nas configurações remove o arquivo e impede o download novamente.

Codificação por Vibração vs Engenharia Agêntica: As Fronteiras Estão Ficando Desconfortáveis
Simon Willison reflete como vibe coding e engenharia agentiva estão convergindo em seu próprio fluxo de trabalho, observando que agora ele confia no Claude Code para escrever endpoints de API JSON em produção sem revisar cada linha — e isso parece estranho.