Aula 30: O Modelo Roofline
Na aula anterior conhecemos a intensidade aritmética (FLOPs/byte) e a largura de banda (bytes/segundo), e distinguimos um kernel memory-bound de um compute-bound. O modelo roofline pega essas duas métricas e as coloca em um único gráfico que mostra, de relance, o teto do desempenho. O eixo horizonta
Imagine um gráfico com um telhado: do lado esquerdo o telhado sobe na diagonal (a largura de banda te limita), e do lado direito ele é plano (a velocidade de cálculo te limita). O canto onde a diagonal vira plana é o ponto de crista. Um kernel que cai à esquerda do canto está travado por causa da memória; à direita dele — por causa do cálculo.
- modelo roofline
- Um gráfico de desempenho versus intensidade aritmética, com um telhado inclinado (largura de banda) do lado esquerdo e um telhado plano (FLOPs de pico) do lado direito, mostrando o teto de desempenho.
- ponto de crista
- A intensidade em que o telhado inclinado encontra o telhado plano: FLOPs de pico dividido pela largura de banda. À esquerda dele é memory-bound, à direita é compute-bound.
- teto de largura de banda
- A parte esquerda inclinada da roofline. Sob ela, desempenho = largura de banda vezes intensidade, então os kernels ali são memory-bound.
- teto de cálculo
- A parte direita plana da roofline, no FLOPs de pico do hardware. Os kernels sob ela são compute-bound e não conseguem ultrapassar o teto.