Lição 8: O Gargalo — Compute-bound vs Memory-bound
Antes de otimizar — você pergunta: o que está realmente segurando as coisas? Todo kernel é compute-bound (limitado por FLOPs, a GPU computando a todo vapor) ou memory-bound (limitado pela largura de banda de memória, a GPU esperando por dados). Otimizar sem esse diagnóstico é chute. Nesta aula vamos
Compute-bound é um chef rápido que espera porque não há fornos suficientes — o gargalo é o próprio trabalho. Memory-bound é fornos ociosos, mas ingredientes que não chegam do estoque rápido o bastante — o gargalo é a entrega. Cada problema precisa de uma solução diferente.
- Compute-bound
- O kernel é limitado por compute (FLOPs). A GPU está totalmente ocupada; para acelerar — precisão mais baixa ou kernels melhores.
- Memory-bound
- O kernel é limitado pela largura de banda de memória. A GPU espera por dados; para acelerar — fusion e menos tráfego de memória.
- Intensidade aritmética
- A razão de FLOPs por byte lido/escrito. Baixa → memory-bound; alta → compute-bound.