Desempenho
Tempo de CPU, CPI, frequência, rapidez relativa e limites de Amdahl.
Um programa executa 600 milhões de instruções num CPU a 2 GHz, com média de 1,5 ciclos por instrução. Para decidir se outro compilador o acelera, precisamos do tempo da mesma tarefa, mantendo o resultado. A frequência, por si só, não inclui quantas instruções nem quantos ciclos são necessários.
A equação do processador
conta instruções executadas, incluindo repetições; conta ciclos por instrução; é o período do relógio. Como , 2 GHz correspondem a 0,5 ns por ciclo. O tempo de CPU não inclui, por si só, esperas em que o processo não executa. O tempo decorrido também pode incluir espera por I/O ou por outro processo, por isso compara a mesma medida nos dois sistemas.
Se um programa executa 600 milhões de instruções, com CPI 1,5 a 2 GHz:
O novo compilador reduz em 20%, para 480 milhões, mas aumenta o CPI para 1,8. Mantendo os 2 GHz:
A razão de tempos é : a tarefa demora menos 4%. A rapidez relativa é a razão inversa, , um aumento de 4,17%. As percentagens dos fatores não se somam.
Misturas de instruções
Mantém as 600 milhões de instruções do programa. Se 50% são operações ALU de 1 ciclo, 30% são acessos de 2 ciclos e 20% são saltos de 3 ciclos, podemos contar os ciclos por classe:
| Classe | Instruções | Ciclos por instrução | Ciclos totais |
|---|---|---|---|
| ALU | 300 milhões | 1 | 300 milhões |
| Acesso | 180 milhões | 2 | 360 milhões |
| Salto | 120 milhões | 3 | 360 milhões |
São 1020 milhões de ciclos para 600 milhões de instruções, logo e s a 2 GHz. Os saltos são 20% das instruções, mas ocupam dos ciclos. A fração de instruções não é a fração de tempo.
Em geral, se é a fração das instruções da classe :
Uma taxa de faltas por instrução já permite calcular ciclos perdidos por instrução. Se a taxa é por acesso a dados, multiplica-a também pelo número médio de acessos a dados por instrução, como em Políticas de cache.
Latência, taxa e programas finitos
Latência é o tempo de uma operação, desde o início até à conclusão. Throughput é a taxa de operações concluídas. Uma pipeline sobrepõe operações: pode terminar mais por segundo mesmo que cada uma demore mais.
Um fragmento curto paga enchimento e conclusão. Em cinco fases, 12 instruções independentes levam 16 ciclos, dando CPI efetivo . O limite de uma instrução por ciclo só se aproxima em sequências longas. O cronograma da pipeline mostra como contar paragens e distinguir um traço finito do regime repetido.
A lei de Amdahl
Divide o tempo original numa fração acelerável e uma fração inalterada . Se a parte acelerável melhora por fator :
Se 70% do tempo acelera 4 vezes, o novo tempo é do original. A rapidez relativa é 2,105. Mesmo eliminando toda a parte acelerável, o limite seria .
O ganho de rapidez é ; a redução do tempo é . Com , a rapidez aumenta 100% e o tempo reduz 50%. São perguntas diferentes.
Para os mesmos 70% de tempo acelerável, acompanha o tempo que sobra:
| Fator da parte acelerável | Parte inalterada | Parte acelerada | Tempo total relativo | Rapidez relativa |
|---|---|---|---|---|
| 1 | 0,30 | 0,70 | 1 | 1 |
| 2 | 0,30 | 0,35 | 0,65 | 1,538 |
| 4 | 0,30 | 0,175 | 0,475 | 2,105 |
| 8 | 0,30 | 0,0875 | 0,3875 | 2,581 |
| Sem tempo na parte acelerável | 0,30 | 0 | 0,30 | 3,333 |
Duplicar de 4 para 8 só retira 0,0875 do tempo original. A parcela de 0,30 mantém-se em todas as linhas e determina o limite.
Para melhorias independentes de partes distintas, soma os seus tempos normalizados: . Se duas melhorias atuam sobre a mesma parte, determina o seu efeito conjunto: contar essa fração duas vezes sobrestima o ganho.
Escolher a medida certa
MIPS mede instruções por segundo, não trabalho útil, por isso pode favorecer um programa que executa mais instruções para a mesma tarefa. A frequência também não considera CPI ou instruções executadas.
Para comparar várias tarefas, calcula a rapidez relativa de cada uma face à mesma referência. Uma média geométrica dessas razões resume o conjunto sem depender da unidade dos tempos. Não substitui a decisão sobre qual tarefa ou carga é relevante.
Exercícios
Comparar compiladores
Um programa tem 400 milhões de instruções, CPI 1,5, CPU 2 GHz. Um compilador reduz instruções 10% e aumenta CPI 20%. Qual é o novo tempo?
Pista
Solução
T=360×10⁶×1,8/(2×10⁹)=0,324 s. O original era 0,300 s, por isso a mudança é mais lenta.
Erros frequentes
Somar −10% e+20% ou usar o tempo original como se a tarefa tivesse diminuído.
Acelerar só uma parte
80% do tempo original melhora 4 vezes; o resto mantém-se. Calcula a rapidez relativa.
Pista
Solução
Tempo relativo 0,4; rapidez 1/0,4=2,5. O limite com aceleração infinita seria 5.
Erros frequentes
Usar 80% de instruções como 80% do tempo sem essa condição.