Curso / Lição 03  ·  English →
Lição 03 · Velocidade

Banda = velocidade

Você não sente os FLOPs da GPU quando conversa com um modelo local — você sente a banda de memória. A velocidade com que o modelo cospe um token depende de quão rápido o hardware consegue ler os pesos da memória, não de quanta conta bruta ele faz. Esta lição mostra por que a banda decide se a caixa parece viva ou parece decodificar através de cimento molhado, por que um MoE de poucos ativos é o casamento perfeito com um Mac, e exatamente onde o seu M5 Max cai nesse mapa.

460–614
GB/s — banda do MacBook Pro M5 Max
3350
GB/s — H100 SXM (3,35 TB/s, o teto)
~7×
quão mais rápida a H100 lê memória vs M5 Max
13B
params ativos/token do DeepSeek-V4-Flash (de 284B)

01 · Decode segue a banda, não o pico de compute

Há dois regimes em toda geração. No prefill, o modelo lê o seu prompt inteiro de uma vez — é um trabalho paralelo, denso, que satura as unidades de cálculo (compute-bound). No decode, ele gera um token de cada vez, e para cada token precisa varrer todos os pesos ativos da memória. É aí que a banda manda. Prompt curto e resposta longa? O decode domina, e a alavanca é banda + batching. Prompt longo e resposta curta? O prefill domina, e a alavanca são os kernels de atenção e o chunked prefill.

Decode speed tracks memory bandwidth more than peak compute. Short prompt → long answer: decode dominates → bandwidth + batching. Long prompt → short answer: prefill dominates → attention kernels + chunked prefill.— Ahmad Osman, "Memory Bandwidth (2026)"
Dois regimes da geração — qual domina decide qual alavanca importa Prompt curto → resposta longa ex.: "escreva 800 linhas de código" prompt t1 t2 t3 t4 t5 t6 … ×N cada token relê TODOS os pesos ativos da RAM memória → unidades de cálculo · repete a cada token DECODE domina ⚙ alavanca: BANDA de memória + batching mais GB/s = mais tokens/s diretos Prompt longo → resposta curta ex.: "resuma este repo de 100k tokens" prompt enorme (lido em paralelo, denso) resp. atenção sobre todos os tokens de uma vez (matrizão) unidades de cálculo saturadas · trabalho O(n²) PREFILL domina ⚙ alavanca: kernels de atenção + chunked prefill compute e kernels, não banda crua

Mesma máquina, dois mundos. O agente de coding típico (prompt curto, resposta longa) vive no lado esquerdo — por isso, para esse uso, banda é destino.

02 · O espectro: vivo ou cimento molhado

Banda não é um número abstrato de datasheet — é a diferença sensorial entre uma caixa que responde na hora e uma que parece estar pensando debaixo d'água. Ahmad coloca o piso do desconforto em ~3 tokens/s: abaixo disso, você espera. O eixo abaixo é a banda de memória; quanto mais à direita, mais "viva" a caixa parece no decode.

Bandwidth decides whether the box feels alive or like it's decoding through wet cement at 3 tokens per second.— Ahmad Osman, "Memory Bandwidth (2026)"
Espectro de "vivacidade" no decode — eixo = banda de memória (GB/s) ⛓ cimento molhado · ~3 tok/s vivo · responde na hora ▸ 0 500 1000 1500 2000 2500 3000 3500 Strix 256 Spark 273 M4 Max 546 M5 Max 460–614 M3 Ultra 819 RTX 5090 / PRO 6000 · 1792 H100 SXM · 3350 Apple não é a mais rápida do eixo — mas todas as classes de Mac aqui estão MUITO acima do piso de cimento molhado.

Posições à escala num eixo 0–3500 GB/s. O M5 Max aparece como uma faixa (460–614) porque a banda varia por SKU/binning; mesmo o piso de 460 está num território folgado e responsivo.

03 · A tabela de banda, à escala

Aqui estão os números crus que alimentam tudo nesta lição, e o mesmo dado desenhado em barras proporcionais. A escala é real: cada pixel de barra é a mesma quantidade de GB/s em todas as linhas (teto = H100, 3350 GB/s).

Banda de memória por classe — barras à escala (0,191 px por GB/s) 1000 2000 3000 0 GB/s H100 SXM datacenter 3350 GB/s · 3,35 TB/s RTX 5090 / PRO 6000 GPU desktop 1792 GB/s Mac Studio M3 Ultra Apple unificada 819 MacBook Pro M5 Max ★ a sua máquina 460–614 (faixa) Mac Studio M4 Max Apple unificada 546 DGX Spark mini-AI 273 Strix Halo / Ryzen AI Max APU x86 256
HardwareClasseBanda de memória
H100 SXMDatacenter3350 GB/s (3,35 TB/s)
RTX 5090 / PRO 6000GPU desktop1792 GB/s
Mac Studio M3 UltraApple unificada819 GB/s
MacBook Pro M5 MaxApple unificada (laptop)460–614 GB/s
Mac Studio M4 MaxApple unificada546 GB/s
DGX SparkMini-AI273 GB/s
Strix Halo / Ryzen AI MaxAPU x86256 GB/s
Leitura rápida: a H100 lê memória ~7× mais rápido que o piso do M5 Max e ~5,5× mais rápido que o topo dele. Mas a H100 tem ~80 GB; o M5 Max tem 128 GB de memória unificada. É exatamente esse trade-off — banda vs quantidade absurda de memória num corpo só — que a próxima seção decide.

04 · Onde a Apple ganha (e onde perde)

Banda crua não é a única dimensão. A Apple coloca uma quantidade de memória que GPUs de consumo não chegam perto, num único corpo silencioso, sem sharding entre placas. O custo é tokens/s de pico e concorrência. Ahmad resume o trade-off sem rodeios:

A regra do "quando a Apple ganha"

Apple wins when: one box, silence, stupid amounts of memory, no sharding. It loses when raw tokens/sec & concurrency matter most.
— Ahmad Osman, "Inference Engines"

Traduzindo para a sua decisão: se você quer uma caixa, sem barulho de servidor, que carregue um modelo gigante de uma vez e sirva você (não 200 usuários simultâneos), a Apple é imbatível. Se você precisa de throughput máximo agregado e muitos pedidos em paralelo, um cluster NVIDIA ganha. Para um dev local rodando um agente de coding, o primeiro caso é exatamente o seu.

Por que isso importa para banda: com pouca concorrência (um usuário), você não esconde a latência de leitura de memória atrás de batches grandes. O decode de um único stream é puro teste de banda — o que torna os 460–614 GB/s do M5 Max o número mais honesto da sua experiência diária.

05 · Por que um MoE de poucos ativos casa com o Mac

Aqui está o truque que faz tudo se encaixar. Banda limita quantos bytes de peso você lê por token. Então a jogada óbvia é: e se o modelo só precisasse ler uma fração pequena dos seus pesos a cada token? É exatamente o que faz um Mixture-of-Experts (MoE) de poucos ativos. O DeepSeek-V4-Flash tem 284B de parâmetros no total, mas ativa apenas ~13B por token — só ~4,6% do modelo é "aceso" a cada passo.

MoE de poucos ativos — total grande, fração lida por token minúscula DeepSeek-V4-Flash · 284B params totais todos residem na memória — mas NEM todos são lidos por token ▮ ativo ▮ ativo … dezenas de especialistas dormindo (lidos: 0 bytes neste token) Apenas 2 acesos ⇒ só ~13B de 284B são lidos/computados Consequência por token lê ~13B de pesos (não 284B) ⇒ pouca pressão de banda pouco compute por token ⇒ a banda do Mac dá conta = 25–34 tok/s no M5 Max total cabe na memória unificada; só a fração ativa paga banda

Os 284B precisam caber na memória — e aqui os 128 GB do Mac brilham. Mas só os ~13B ativos pagam o pedágio de banda a cada token. Por isso essa classe de MoE mede 25–34 tok/s neste Mac, apesar da banda não ser de datacenter.

Une-se tudo: a fraqueza do Mac é banda crua; a força é memória total. Um MoE de poucos ativos inverte a equação — exige muita memória para residir (✓ força do Mac) e lê pouco por token (✓ contorna a fraqueza). É o casamento exato que a próxima lição aprofunda com quantização, e a Lição 08 transforma na sua config concreta.

Onde o M5 Max cai — e por que é suficiente para este workload ▸ mais banda 0 1000 2000 3000 Strix 256 M4 Max 546 M3 Ultra 819 RTX 1792 H100 3350 460 614 M5 Max · 460–614 GB/s usável para MoE de poucos ativos — lê ~13B/token, não 284B medido: 25–34 tok/s · bem acima do piso de ~3 tok/s não é a barra mais longa do eixo… …mas + 128 GB num corpo só, silencioso, sem sharding = a caixa certa para 1 dev

O M5 Max não vence em banda crua — vence pela combinação banda-suficiente + memória-enorme num laptop silencioso. Para servir um único dev com um MoE de poucos ativos, é o ponto doce.

1. Você manda um prompt curto ("escreva uma função") e o modelo gera uma resposta longa. Qual regime domina, e qual é a alavanca de velocidade?
Correto: b. Prompt curto → resposta longa significa muitos passos de geração token-a-token: o decode domina, e o decode "tracks memory bandwidth more than peak compute". Prompt longo → resposta curta é o caso oposto, dominado por prefill (kernels de atenção + chunked prefill).
2. O DeepSeek-V4-Flash tem 284B de parâmetros totais mas mede 25–34 tok/s no M5 Max, cuja banda (460–614 GB/s) é muito menor que a de uma H100. Por que ele ainda roda rápido?
Correto: c. Os 284B precisam residir na memória (e os 128 GB unificados do Mac dão conta), mas apenas ~13B são "acesos" por token. Banda limita bytes lidos por token; ler ~4,6% do modelo por passo é o que mantém a velocidade alta apesar da banda não ser de datacenter.