Novamente sobre Hyper Threading

0

Eu tenho o Asus 1025c com átomo dual-core com hyper-threading ativado. Quando eu jogo jogos, taxa de carga do processador sempre inferior a 25% (1 core). Isso significa que esse jogo (executando um único thread) ocupa apenas metade do poder de um núcleo? Então, se eu desabilitar os aplicativos HT, posso ocupar todo o poder de um núcleo?

E, se estiver certo, como posso fazer isso? BIOS no meu laptop é muito limitado, não há linha para hyper-threading (habilitado), mas não é ativo, então não posso desligá-lo.

    
por ShadowPrince 05.02.2014 / 10:44

2 respostas

2

No Windows XP, (eu acho que o Vista, 7 e 8 também), uma CPU single-core de hyper-threaded executando um único thread a 100% de utilização mostraria 50% de utilização da CPU no gerenciador de tarefas do Windows. Para extrapolar, isso diria que seu computador usando um dual core com HT mostrará 25% quando um único núcleo estiver sendo utilizado 100% por um único encadeamento; ou seja, se o seu jogo é single threaded, seria usado 100% de um core, que é 50% da CPU, mas mostra apenas 25% de utilização.

Se você desativar o HT, o único jogo com threads ainda utilizará um núcleo de 100%, que ainda é 50% da CPU, mas na verdade mostrará 50% de utilização.

Muitos artigos mostraram que ter o HT ativado, em média, aumenta o desempenho, embora haja circunstâncias em que o HT mostra um desempenho reduzido. Dito isto, a maior vantagem de desligar o HT seria para que ele parecesse melhor, porque pareceria que você está usando mais o seu processador. A psicologia diria, através do efeito placebo, que isso pode realmente fazer parecer que há um benefício de desempenho porque você sente que 2 vezes mais do CPU está sendo usado. Enquanto muitos podem discordar, como você percebe que as coisas podem ter mais impacto do que como as coisas realmente são. Se isso acontecer com você, desligue o HT! A diminuição do desempenho seria mínima.

Mas se você quiser ficar com os fatos, então desabilitar o HT diminuiria o desempenho, em média, independentemente do que o medidor da CPU diz, lá você deve deixá-lo ativado.

Para saber se você pode ativar e desativar o HT nesse computador; parece que no manual do usuário do seu laptop não há nada sobre ter opções no BIOS que você pode modificar. Você pode tentar uma atualização do BIOS para ver se isso permite alternar a opção. Fora isso, se você não pode modificar a configuração, você está praticamente sem sorte.

    
por 06.02.2014 / 03:11
1

O Hyper-threading é simplesmente uma maneira que um processador (core) pode canalizar instruções de vários threads para executar ao mesmo tempo no mesmo núcleo quando detecta que as operações são independentes e usando diferentes partes do pipeline . Pense nisso como criar um núcleo virtual que pode ser usado por aplicativos que são executados usando threads paralelos. Tanto quanto um aplicativo está ciente, não há diferença entre um processador de núcleo único, não HT e um processador HT de 8 núcleos.

Para que um aplicativo utilize vários núcleos ou a tecnologia HT, ele deve ser multiencadeado para permitir a execução paralela do código. Esta não é uma tarefa trivial e há muitos problemas que devem ser levados em consideração quando um aplicativo é projetado dessa maneira. Por exemplo, se um encadeamento precisar esperar que outro encadeamento seja concluído, isso deve ser codificado manualmente para todas essas operações. Deve-se, então, ter cuidado para garantir que os threads não acabem em um estado em que estão esperando um pelo outro.

Para coisas como jogos, muitas vezes não vale a pena fazer esse projeto detalhado e muitas das tarefas adequadas para processamento paralelo, como operações matriciais, são transferidas para a GPU, o que é muito mais apropriado para esse tipo de operação. com apenas um único núcleo HT usado no processador principal.

Desativar vários núcleos ou HT é uma opção disponível para suportar aplicativos legados que não são executados corretamente (ou, na verdade, não funcionam) em um ambiente multithread true. No entanto, isso simplesmente tem o efeito de desligar os outros núcleos ou desligar as partes do processador que lida com os recursos do HT. Isso não resultará em qualquer aumento no desempenho. Na verdade, basicamente pode ser garantido diminuir o desempenho, porque mesmo no seu caso em que o jogo está usando apenas um núcleo, outras tarefas em segundo plano ainda podem ser executadas nos outros núcleos. Se você fosse desabilitar isso, seu jogo seria retardado pelo sistema operacional que compartilha o núcleo usado pelo seu jogo com as outras tarefas em segundo plano no sistema.

Editar : veja também esta questão . O agendador de tarefas do Windows basicamente fará com que, se um thread estiver usando um núcleo hyperthreaded, ele não deve agendar muitas tarefas para usar a outra metade virtual do núcleo. Isso, no entanto, ainda aparecerá como 50% de utilização, embora a utilização efetiva possa ser maior.

    
por 05.02.2014 / 12:03