AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1564810
Accepted
Andrey
Andrey
Asked: 2020-06-30 10:48:15 +0800 CST2020-06-30 10:48:15 +0800 CST 2020-06-30 10:48:15 +0800 CST

Por que diferentes cargas de 100% da CPU causam diferentes temperaturas na CPU?

  • 772

Tenho feito testes entre o uso de CPUz e OCCT. Percebi que, se eu configurar o CPUz para estressar a CPU com vários threads, ele nunca ultrapassará 70c. Por outro lado, executando o OCCT para carregar na CPU, ele ultrapassará 75c instantaneamente e, às vezes, até interromperá o teste em 85c.

O que esta acontecendo aqui? Sempre entendi que enquanto as placas de vídeo têm muitos núcleos que precisam ser estressados ​​separadamente, as CPUs são simples. Um loop for básico pode colocar 100% de carga em uma CPU. Um monte de loops for executados em vários threads podem carregar todos os núcleos. Como é que o OCCT está esquentando muito mais minha CPU. O que ele está fazendo que o CPUz não pode?

Algumas informações básicas: A CPU é Intel Core i7-4790k. O turbo boost está ativado, mas acho que fica em 5% quando um dos processos está em execução

cpu temperature
  • 5 5 respostas
  • 7988 Views

5 respostas

  • Voted
  1. Best Answer
    Mokubai
    2020-06-30T11:35:34+08:002020-06-30T11:35:34+08:00

    O uso da CPU é uma medida de quanto recurso a CPU tem disponível, mas há muitos tipos diferentes de instrução que podem ser processados ​​e todos eles têm diferentes requisitos de processamento e memória.

    Uma tarefa que consome muita memória pode fazer com que a CPU pare enquanto ela busca dados da memória e, assim, reduz o rendimento efetivo da instrução enquanto ainda tem a CPU "em uso".

    Além disso, existem muitas partes diferentes da CPU que podem ser saturadas de maneira diferente.

    De Wikichips Sandy Bridge uArch :

    insira a descrição da imagem aqui

    Você pode ver que temos um front-end de decodificador de instrução inicial, que para fluxos de instrução complexos e diversos pode se esforçar para manter o restante do pipeline completo.

    Se você tiver apenas adições inteiras, poderá usar 3 das unidades principais de execução, pois a CPU possui 3 unidades INT ALU. Se você tiver apenas multiplicações de ponto flutuante, poderá usar apenas a unidade única FPU MUL (multiplicação).

    A CPU também opera como um pipeline e, enquanto uma unidade estiver em uso em uma unidade de execução, você poderá agendar uma operação no próximo ciclo. Isso significa que um fluxo de instruções diversificado pode fazer melhor uso dos recursos, pois uma unidade que não está em uso pode ser programada na mesma UE, mas com um tipo de instrução diferente. Instruções diferentes também terão tempos de execução diferentes e conjuntos maiores ou menores de circuitos associados para executar. Uma adição simples pode levar um ou dois ciclos de clock, enquanto uma instrução de ponto flutuante pode levar mais tempo e ter uma quantidade maior de circuitos envolvidos. Levar mais tempo pode significar que ele usa mais energia, assim como uma área maior de circuitos. Alternativamente, a instrução que leva mais tempo pode significar que o circuito de programação do front-end faz uma pausa e usa menos energia brevemente enquanto espera pelas unidades de execução disponíveis, enquanto as instruções menores e mais rápidas usam mais circuitos gerais se você incluir outras partes da CPU.

    Como resultado, para fazer uso total da CPU, você precisa de um fluxo de instruções diversificado, e o que pode exercer uma CPU pode não exercer totalmente outra devido a arranjos e números diferentes de unidades de execução e seus recursos.

    As unidades de execução podem ficar com "baixo consumo de energia" com o método moderno de controle de energia e, como resultado, não contribuem para a saída de calor do dispositivo ou contribuem muito menos.

    Os caches também contribuem para o consumo de energia. Usar o cache significa que instruções e dados podem ser buscados e, como resultado, executados mais rapidamente do que uma rotina com um conjunto de dados na memória que é muito grande para um cache.

    Como resultado, diferentes programas ou fluxos de instruções podem causar diferentes picos de uso de energia e, portanto, diferentes temperaturas.

    Diferenças arquitetônicas entre gerações de processadores e até mesmo na mesma geração em que tamanhos de cache, opções de processador e diferentes disponibilidades de instrução podem ter efeito.

    • 47
  2. harrymc
    2020-06-30T12:19:11+08:002020-06-30T12:19:11+08:00

    Eu entendo que você deseja saber por que a execução de um teste de trituração multi-thread não aquece a CPU tanto quanto um teste mono-thread.

    A explicação simples é que o Turbo Boost é o culpado, pois é desativado quando a CPU está trabalhando igualmente duro em vários núcleos. Ele só é ativado quando um núcleo é muito usado (e apenas um núcleo).

    Quando o turbo boost está ativo, ele desvia mais energia para o núcleo impulsionado, reduzindo a energia para os outros núcleos e, assim, diminuindo sua velocidade.

    O núcleo reforçado então funciona a uma velocidade mais alta e aqueceria mais do que um núcleo não reforçado. Isso é capturado pelo sensor, que relata a temperatura de um núcleo como a de toda a CPU.

    • 12
  3. sawdust
    2020-06-30T15:14:36+08:002020-06-30T15:14:36+08:00

    A "carga" (ou uso) da CPU é um monitor de atividade para indicar qual porcentagem do tempo da CPU é gasta em atividades "úteis" versus tempo "ocioso". O sistema operacional determina o que é atividade "útil" e o que é tempo "ocioso".

    Com carga de CPU de zero por cento, o sistema operacional não está agendando nenhum processo de usuário durante esse intervalo de tempo.
    Com 50% de carga da CPU, o sistema operacional agendou cerca de metade do intervalo de tempo para processos do usuário e a outra metade desse intervalo de tempo foi gasta no loop ocioso. Mesmo que haja apenas um processo de usuário, ele pode não ser capaz de consumir 100% da carga da CPU porque esse processo não exige muito da CPU e deve ser reprogramado enquanto, por exemplo, aguarda a conclusão de uma operação de E/S.
    Com 100% de carga da CPU, o sistema operacional agendou todo o intervalo de tempo para os processos do usuário.

    Observe que a CPU está realmente sempre ocupada (quando ligada), ou seja, sempre executando instruções. Se nenhum processo (do usuário) estiver pronto para ser executado, o escalonador do sistema operacional deverá executar seu loop ocioso.

    A temperatura da CPU é consequência da energia elétrica consumida pelos circuitos da CPU. À medida que ocorrem mais interruptores de transistor, mais energia é necessária e consumida, e a temperatura da CPU aumenta.
    Este consumo de energia não é indicado pela "carga" da CPU, que é apenas um monitor de atividade baseado em tempo.
    Um processo pode manter a CPU "ocupada" (em termos de tempo) simplesmente copiando ou movendo dados (por exemplo, carregar e armazenar instruções) na memória (o que não é uma carga de energia adicional significativa acima do modo inativo).
    Considerando que outro processo computacionalmente intensivo poderia realizar cálculos (por exemplo, instruções de multiplicação e divisão) que utilizam muitos outros circuitos na CPU, como a ALU (unidade aritmética/lógica) e FPU (unidade de ponto flutuante).

    IOW é o mix de instruções (isto é, os tipos de instruções) que o processo executa que determina a potência elétrica consumida e o subseqüente nível de temperatura.
    O sistema operacional não é capaz de medir esse consumo de energia e apenas relata uma medição de atividade baseada em tempo usando a carga da CPU e os sensores de temperatura.

    • 10
  4. Dmitry Grigoryev
    2020-07-02T01:14:21+08:002020-07-02T01:14:21+08:00

    Como observação adicional, a maior parte do calor é gerada quando os bits dentro da CPU oscilam entre 0 e 1, não quando são 'processados'. Empurrar um fluxo de zeros através de um pipeline ALU produzirá muito menos calor do que enviar um fluxo de bits aleatórios. Isso também é o que eu esperaria que acontecesse quando um pipeline está parado: ele será alimentado com valores constantes (não produzindo resultados úteis), mas está 100% ocupado para fins de estimativa de carga da CPU.

    Isso não é necessariamente o que está acontecendo no seu caso (acho que @harrymc acertou em cheio), tudo o que estou dizendo é que a carga da CPU e a potência dissipada são quantidades físicas diferentes que não estão diretamente relacionadas.

    • 4
  5. gnasher729
    2020-07-02T13:49:14+08:002020-07-02T13:49:14+08:00

    Vou te dar um exemplo. Faça duas voltas:

    for (i = 0; i < 1000000000; ++i) {
        x += a [i];
    }
    

    e

    for (i = 0; i < 1000000000; ++i) {
        x += a [i];
        y += a [i];
        z += a [i];
    }
    

    No primeiro loop, o processador precisa esperar que a adição anterior termine antes de iniciar a próxima adição. Se a adição tiver uma latência de 3 ciclos, o processador realizará uma adição a cada 3 ciclos. A carga da CPU é de 100%, mas a CPU não está fazendo tanto trabalho.

    No segundo loop também há uma iteração a cada três ciclos, mas como as adições são independentes, o processador fará 3 adições a cada 3 ciclos, fazendo 3 vezes mais trabalho. A carga da CPU ainda é de 100%, mas 3 vezes mais trabalho produzirá muito mais calor.

    Portanto, você obterá mais calor com o código que usa mais recursos de computação disponíveis em cada ciclo.

    • 1

relate perguntas

  • Velocidade do processador limitada a 0,4 GHz

  • Por que a formatação ganhou 7 computadores para o Windows 10 dobrou sua pontuação no banco de cpu-z?

  • Core i7 executa muito mal? [fechado]

  • O virtualbox requer uma CPU para suportar VT-d para hospedar sistemas operacionais convidados de 64 bits?

  • LGA1151 dimensões físicas?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve