Como a frequência da CPU afeta o desempenho?

1

Como a frequência da CPU afeta o desempenho? Se tivermos duas CPUs com a mesma arquitetura, mas em velocidades diferentes, como elas funcionarão?

1) CPU Core Ivy Bridge de 8 a 2,4 | 2) CPU Core Ivy Bridge de 8 a 2,7

Como posso calcular matematicamente a diferença no desempenho?

Pode-se dizer: 2,7 > 2,4 por 12%. Então, a CPU de 2,4 GHz será mais lenta em 12% do que a de 2,7?

    
por SkyRipper 09.12.2013 / 09:30

2 respostas

2

Você não pode determinar o desempenho com base na frequência no caso geral. Se as CPUs são da mesma família (não apenas a mesma arquitetura) - ou seja, idênticas em todos os aspectos exceto a velocidade do clock - então o desempenho máximo do sistema mais rápido será mais rápido, então sim, no seu exemplo a velocidade MÁXIMA a CPU será 12% mais rápida.

Mas, claro, isso não é nada como a história completa. A maioria dos sistemas será afunilada por outras coisas além da CPU; nesse caso, uma CPU mais rápida não lhe dará aumento de desempenho (por exemplo, se você estiver aguardando disco, rede ou entrada do usuário).

Se as CPUs não são da mesma linha, o melhor que você pode fazer é obter uma estimativa aproximada do desempenho procurando pelo "Passmark" no benchmark da CPU e computação com base nisso. Isso é muito difícil, mas é uma maneira melhor do que comparar a CPU quando você entende como o seu aplicativo lidará com threads. Além disso, comparando o CPU no Intel Ark irá ajudá-lo a verificar se eles são os mesmos em todos os outros aspectos, em seguida, a velocidade do clock. (Por exemplo, mostrando suporte diferente ao conjunto de instruções, cache, etc.)

    
por 09.12.2013 / 09:35
0

Cada instrução da CPU leva um número de ciclos para concluir. O tempo que cada ciclo leva é 1 dividido pela velocidade da CPU.

No entanto, é difícil correlacionar linearmente com o desempenho porque:

  • As instruções da CPU consomem diferentes quantidades de ciclos sob diferentes condições e como são usadas.

  • As CPUs modernas por um longo tempo foram "pipelined" e são "superescalares" - essencialmente significando por ciclo, a CPU pode estar trabalhando em várias partes de várias instruções, ou até múltiplas instruções de uma só vez.

  • Recursos de aceleração que "pré-carregam" o fluxo de instruções antes de onde a CPU está realmente executando podem afetar o desempenho de instruções iminentes - coisas como previsão de ramificação e renomeação de registradores.

  • As CPUs modernas têm um cache de instruções. O que está no cache afeta muito o desempenho. Esperar que as instruções sejam carregadas da RAM consome muitos, muitos ciclos em comparação com a velocidade da CPU.

  • As CPUs modernas têm um cache de dados. Instruções de leitura / gravação de memória, que é algo que uma CPU faz com frequência, são muito afetadas pelo estado desse cache de maneira semelhante.

One can say: 2.7 > 2.4 by 12%. So, will CPU 2.4 GHz be slower by 12% than the 2.7 one?

Você pode dizer que, tecnicamente, é verdade - a CPU A está 12% mais rápida que a CPU B. Mas um aumento de 12% na velocidade da CPU (mesmo com a mesma microarquitetura) não se traduz em um aumento de 12% na execução do código. desempenho.

    
por 09.12.2013 / 12:18