Por que os fabricantes de CPU pararam de aumentar a velocidade de clock de seus processadores? [fechadas]

63

Eu li que os fabricantes pararam de se concentrar em velocidades de clock mais altas e agora estão trabalhando em outras coisas para melhorar o desempenho.

Com

  • uma máquina de mesa antiga com processador Intel® Xeon® E3110 com velocidade de clock de 3.0GHz
  • e um novo servidor com o processador AMD Opteron (TM) 6272 com velocidade de clock de 2.1GHz

quando realizada uma comparação simples de criptografia usando (thread único)

 openssl aes256c

a área de trabalho teve um desempenho muito melhor que o servidor.

Portanto, mesmo com a otimização mais recente, por que o processador com a melhor velocidade de clock funciona melhor?

aprendiz
fonte
57
O chip de desktop é um núcleo dual; o servidor é uma CPU de 16 núcleos. O uso de um benchmark de thread único NÃO é apropriado.
MSalters
@learner - Porque a velocidade dos processadores não pode aumentar com o aumento da quantidade de tensão necessária, o que reduz o calor. Concentrando-se no consumo de energia, eles poderão, em teoria, aumentar as velocidades do processador no futuro.
Ramhound
11
Por favor, cite casos reais de 'fabricantes' ou mesmo reduza 'a velocidade do relógio (sem comparar maçãs e laranjas) ou limite o título da sua pergunta a' não aumentar '.
Jan Doggen
8
As velocidades de clock da AMD e da Intel não são uma comparação justa desde os dias do K6 / Pentium. A AMD comercializou os processadores Athlon como 2500+ ou 3000+, quando seus relógios principais pudessem ser 1,8 ou 2,1, respectivamente, mas eles costumavam compará-los, respectivamente, com chips Intel que produziam clock de 2,5 ou 3GHz. Há simplesmente maneira muitas diferenças entre arquiteturas agora para fazer uma comparação simples sobre as taxas de clock.
8113 KeithS

Respostas:

72

A razão pela qual os fabricantes pararam de se concentrar no aumento da velocidade do clock é porque não podemos mais resfriar os processadores com rapidez suficiente para que isso seja viável. Quanto maior a velocidade do clock, mais calor é gerado, e agora atingimos um estágio em que não é mais eficiente aumentar a velocidade do processador devido à quantidade de energia necessária para a refrigeração.

Outra resposta entra em detalhes sobre como uma velocidade de clock mais alta não significa melhor desempenho em todas as áreas.

Paul Hay
fonte
11
+1 Parece que eu comprei minha máquina exatamente quando este muro foi atingido, meu P4 de 8 anos de 3,4 GHz é provavelmente o mais rápido em termos de velocidade do relógio, quando observo a grande maioria do mercado (não OC).
Karthik T
2
note que o consumo de energia também seria um problema. Se você tivesse um núcleo de 16 GHz a 3,0 GHz, isso provavelmente consumiria mais de 200 watts, que as fontes de alimentação mais comuns mal suportam em combinação com o resto do sistema.
Mixxiphoid
9
@ Mixxiphoid Você também precisaria colocar esses 200+ W na CPU de alguma forma, a uma tensão que o circuito possa suportar. Essa é uma tarefa não trivial em si mesma.
um CVn 8/07/2013
11
Não apenas isso, para aumentar o Clock da CPU, eles precisam aumentar o pipeline, mas toda vez que você precisar bifurcar o código, mudar o contexto, pular ou limpar a memória, limpa todo o pipeline e precisa preenchê-lo novamente para fornecer como resultado dessa instrução, é melhor reduzir o pipeline e a frequência da CPU; assim, toda vez que você precisar bifurcar-se, mudar de contexto, pular, não precisará esperar muito tempo para preencher o pipeline novamente.
Lefsler
11
@demonofnight: Seria muito dizer "toda vez que você precisar (...) pular". Ramificações diretas incondicionais não representam risco de controle, portanto não contam entre ramificações condicionais ~ 95% -99% são previstas por várias técnicas (dados baseados em alguns documentos baseados em SPEC). As ramificações diretas representam o problema se o alvo ainda não estiver registrado e houver uma previsão incorreta dele. Não tenho certeza do que você quer dizer com 'bifurcar o código' ou 'limpar a memória', mas as alternâncias de contexto não devem ser executadas com tanta frequência (interrupções e possivelmente E / S).
Maciej Piechotka
37

A velocidade de processamento é muito maior que a taxa de clock.

  • CPUs diferentes podem realizar quantidades diferentes no mesmo número de ciclos de clock, devido a diferentes variantes no arranjo de tubulações e tendo várias unidades componentes (somadores e assim por diante) em cada núcleo. Embora no seu teste não seja esse o caso, muitas vezes você descobre que um chip "mais lento" pode fazer mais do que um chip rápido (medido apenas pela taxa de clock) devido à capacidade de fazer mais por tick.

  • O teste que você executou pode ser muito sensível às diferenças na arquitetura da CPU: ele pode ser otimizado para uma arquitetura específica; você pode descobrir que o desempenho é diferente não apenas entre os chips Intel e AMD, mas entre os chips Intel (ou AMD) de famílias diferentes. Provavelmente, também está usando um único encadeamento, para não tirar proveito dos múltiplos núcleos das CPUs.

  • Há uma mudança para diminuir as taxas de clock por motivos de gerenciamento de energia e calor: aumentar a taxa de clock não afeta linearmente o uso de energia e a produção de calor.

  • Devido à relação não linear acima, é muito mais eficiente que os requisitos atuais tenham várias unidades de processamento do que aumentar a velocidade de uma unidade cada vez mais. Isso também permite truques inteligentes para economizar energia, como desligar núcleos individuais quando não estiverem em uso e reativá-los à medida que a demanda aumentar novamente. É claro que vários núcleos não ajudam um algoritmo de thread único, é claro, se ajudasse se você executasse duas ou mais instâncias dele ao mesmo tempo.

David Spillett
fonte
Então, qual é a relação entre a freqüência e o uso de energia?
User8207
$ P = CV ^ 2f $. Você também pode querer ler isso .
Zakkak
19

Por que você acha que os fabricantes estão realmente diminuindo a velocidade do relógio comparando apenas dois processadores?

  1. O 6272 tem uma velocidade Turbo de 3Ghz. A velocidade básica mais baixa é apenas para diminuir a potência média e manter um TDP aceitável para uma área de trabalho quando todos os núcleos estão estressados.
  2. O próximo chip de alto desempenho da AMD para desktop, o FX-9590 , atingirá 5 Ghz.

Além disso, a velocidade do relógio não é a mesma que o desempenho por ciclo do relógio. Você pode ter um P4 de 3,8 Ghz vs. um de 3,2 Ghz de um i7-3930K, mas isso não significa que o núcleo do P4 seja mais rápido.

Tudo o que foi dito aqui sobre o consumo de energia também é perfeitamente válido e verdadeiro para um projeto de 16 núcleos, no qual você naturalmente se preocupa mais com os problemas de TDP.

Além disso, seu método de benchmark, apenas testando o openssl, é um pouco simples para fornecer números do mundo real. Talvez você deva tentar qualquer suíte de benchmark de criptografia.

s1lv3r
fonte
3
Apenas para adicionar uma analogia à falácia da velocidade do relógio = desempenho. Imagine uma pessoa dando passos muito pequenos, mas muito rapidamente (alta velocidade do relógio), versus outra pessoa dando passos muito grandes a uma velocidade um pouco mais lenta (frequência do relógio mais baixa). A pessoa que dá grandes passos pode se mover muito mais rapidamente.
Martin Konecny
@MartinKonecny: Ótima visualização!
Zach Latta
2
@MartinKonecny ​​Meu entendimento é que a maioria das instruções do assembler (ADD, MOV, IMUL, etc) são executadas em um único ciclo. Então, com esses novos processadores, várias instruções estão sendo executadas em um único ciclo?
Nialsh
4
@nialsh Isso não é verdade para os computadores CISC (na verdade, uma das coisas que definem o CISC é que as instruções demoram vários ciclos); se todas as instruções demoraram um ciclo, a instrução mais lenta levará a mesma quantidade de tempo para executar como a mais rápida. instrução.
21813 Scott Schaffer,
As CPUs x86 costumavam exigir vários ciclos de clock por instrução, mas hoje em dia eles podem executar várias instruções por ciclo de clock.
Oskar Skog
13

Seu caso de teste (criptografia aes-256) é muito sensível às otimizações específicas do processador.

Existem várias CPUs que possuem instruções especiais destinadas a acelerar as operações de criptografia / descriptografia. Não apenas essas instruções especiais podem estar presentes apenas na sua área de trabalho; também pode ser que a CPU da AMD tenha instruções especiais diferentes. Além disso, o openssl pode suportar essas instruções especiais apenas para a CPU Intel. Você checou se era esse o caso?

Para descobrir qual sistema é mais rápido, tente usar um conjunto de benchmarks "adequado" - ou melhor, use sua carga de trabalho típica.

jakob
fonte
Onde a tradução para essa instrução especial acontece? Não tenho certeza se existem compiladores diferentes para conjuntos de instruções diferentes.
Shubham
Os compiladores têm opções para direcionar diferentes conjuntos de instruções e / ou "funções intrínsecas" especiais que são mapeadas de perto para instruções específicas da CPU. É possível que um único executável verifique em qual família de CPU está executando e selecione um caminho de código diferente com base nisso.
Russell Borogove
10

Simples: o chip da AMD é muito, muito mais rápido porque é um chip de 16 núcleos. Com 115 watts, significa que cada núcleo produz ~ 7 watts. Isso não seria possível se cada núcleo rodasse em 3 Ghz. Para atingir esse número de 7 watts, a AMD reduziu a frequência do relógio. A redução da frequência do relógio em 10% reduz o consumo de energia em 20%, o que, por sua vez, permite colocar 25% de núcleos extras em um chip.

MSalters
fonte
10

Como já foi dito, não podemos mais resfriar efetivamente as CPUs se pressionássemos a tensão necessária para os mesmos aumentos de freqüência relativa no passado. Houve um tempo (era P4 e anterior) em que você podia comprar uma nova CPU e ver um ganho "imediato" de velocidade, porque a taxa de clock aumentou significativamente em comparação à geração anterior. Agora, atingimos uma parede térmica, das sortes.

Cada nova geração moderna de processadores está aumentando ligeiramente a taxa de clock, mas isso também é relativo à capacidade de resfriá-los adequadamente. Fabricantes de chips, como a Intel, estão continuamente se concentrando em reduzir o tamanho da matriz da CPU para torná-los mais eficientes em termos de energia e produzir menos calor nos mesmos relógios. Como observação lateral, esse tamanho de matriz encolhível torna esses processadores modernos mais propensos a morrer devido a sobretensão em vez de superaquecimento. Isso significa que também está limitando a taxa de clock do teto de qualquer CPU de geração atual sem outras otimizações feitas pelo fabricante do chip.

Outra área que está sendo fortemente focada pelos fabricantes de chips está aumentando o número de núcleos no chip. Isso leva a um aumento significativo no poder computacional, mas apenas ao usar software que aproveita vários núcleos. Observe a diferença entre potência computacional e velocidade aqui. Simplificando, a velocidade se refere à rapidez com que um computador pode executar uma única instrução, enquanto a potência computacional se refere a quantas computações um computador pode fazer em um determinado período de tempo. Sistemas de operação modernos e muitos softwares modernos aproveitam vários núcleos. O problema é que a programação simultânea / paralela é mais difícil que o paradigma de programação linear padrão. Isso aumentou o tempo que muitos programas no mercado levaram para aproveitar ao máximo a potência desses processadores mais novos, porque muitos desenvolvedores não estavam acostumados a escrever programas dessa maneira. Atualmente, ainda existem alguns programas no mercado (modernos ou antigos) que não tiram proveito de múltiplos núcleos ou multiencadeamento. O programa de criptografia que você citou é um exemplo.

Essas duas áreas de foco dos fabricantes de chips estão intrinsecamente conectadas. Ao reduzir o tamanho da matriz e o consumo de energia de um chip, eles podem aumentar o número de núcleos no referido chip. Eventualmente, porém, isso também atingirá uma parede, causando outra mudança de paradigma mais drástica.

A razão dessa mudança de paradigma se deve ao fato de nos aproximarmos dos limites do silício como material base para a produção de chips. Isso é algo que a Intel e outros vêm trabalhando na solução há algum tempo. A Intel afirmou que tem uma alternativa ao silício em andamento, e provavelmente começaremos a vê-lo depois de 2017. Além desse novo material, a Intel também está analisando transistores 3D que podem "triplicar efetivamente o poder de processamento". Aqui está um artigo que menciona essas duas idéias: http://apcmag.com/intel-looks-beyond-silicon-for-processors-past-2017.htm

PseudoPsique
fonte
2
  • As perdas de calor são H iguais ao 4º grau de frequência f.

    H ~ f ^ 4

    Portanto, o menor aumento de frequência leva a altas perdas de calor.

  • Mais miniaturização

    Maior frequência leva a uma menor minimização do cristal. No momento, não temos tecnologias para trabalhar efetivamente com materiais à escala de nanômetros e nanômetros são o limite.

Bruxo
fonte
2
-1 A quarta parte do poder não está correta. A energia (calor gerado por segundo) nas CPUs é (aproximadamente) linearmente proporcional à frequência do relógio, como P ~ f CV ^ 2 + P0 ( en.wikipedia.org/wiki/CPU_power_dissipation ). A tensão concedida depende da velocidade do relógio (embora não necessariamente linear). Consulte: physics.stackexchange.com/questions/34766 Bottomline, a energia gerada pela CPU é aproximadamente linear para quadrática na velocidade do relógio na faixa de 1,6 GHz a 5 GHz. (Não prop para f ^ 4).
precisa saber é o seguinte
2

Conforme declarado em algumas outras respostas, os fabricantes de CPU desejam manter a velocidade do relógio baixa para controlar o consumo de energia e a dissipação de calor. Para fazer mais trabalho na mesma velocidade de clock, várias estratégias são usadas.

Os grandes caches de memória no chip podem manter mais dados "próximos" da CPU, disponíveis para serem processados ​​com um atraso mínimo, em oposição à memória principal, que é muito mais lenta para fornecer dados à CPU.

Instruções diferentes da CPU levam diferentes números de ciclos de clock para serem concluídas. Em muitos casos, você pode usar um circuito simples para implementar uma operação em vários ciclos de clock ou um circuito mais complexo para fazê-lo em menos.

O exemplo mais dramático disso na evolução da Intel é o Pentium 4, que foi um grande desvio na velocidade do relógio, mas não teve um desempenho proporcional. As instruções de troca de bits, que nos chips anteriores podiam trocar 32 bits em um único ciclo, usavam um circuito muito mais simples no Pentium 4, que exigia um único ciclo para cada troca de bits. A expectativa era de que a arquitetura Pentium 4 fosse escalável para velocidades de clock muito mais altas devido à sua simplicidade, mas isso não deu certo e o circuito de troca rápido e complexo retornou nas arquiteturas Core e posteriores.

Russell Borogove
fonte
2

Do IEEE:

Então, por que não pressionar o relógio mais rápido? Porque não vale mais o custo em termos de energia consumida e dissipada pelo calor. A Intel chama a troca de velocidade / energia de "teorema fundamental dos processadores multicore" - e é por isso que faz sentido usar duas ou mais áreas de processamento, ou núcleos, em um único chip.

http://spectrum.ieee.org/computing/hardware/why-cpu-frequency-stalled

Azevedo
fonte